野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17568|回复: 3

关于i2c硬件接收,最后一个字节之前设置为不应答和发送停止信号的问题

[复制链接]
发表于 2017-11-23 17:27:49 | 显示全部楼层 |阅读模式
8火花
我学到i2c硬件通信这边有一个问题想不明白,想问一下单片机硬件自动发送应答信号是在什么时候,是说移位寄存器接收到八个字节的时候就发出,还是读DR时发出。我看例程在接收数据的时候,在倒数第二个字节后,检测最后一个字节有没有接收到之前设置应答为不使能,
如果在设置不使能之前最后一个字节就已经发送过来并且单片机自动应答了呢?
还有设置了应答不使能之后就发送了停止信号,如果最后一个数据还没有来就发送了不就接收不到了吗?
麻烦知道的人解惑,谢谢

回复

使用道具 举报

 楼主| 发表于 2017-11-23 17:31:50 | 显示全部楼层
自己顶上去吧,麻烦知道的人告诉我,非常感谢
回复

使用道具 举报

发表于 2017-11-24 09:10:43 | 显示全部楼层
在接收下一个数据前,要使能stm32发送非应答信号,当它接收到数据的时候,系统就会自动发送
回复

使用道具 举报

 楼主| 发表于 2017-11-27 09:23:36 | 显示全部楼层
flyleaf 发表于 2017-11-24 09:10
在接收下一个数据前,要使能stm32发送非应答信号,当它接收到数据的时候,系统就会自动发送

说是在下一个数据前要使能非应答信号,但是也只是在读了倒数第二个数据之后使能了,会不会这个期间最后一个数据已经收到了移位寄存器中并硬件自动发送了应答信号啊。
还有一个问题是我看了stm32的手册,说在使能了非应答信号之后就要发送停止信号??我看固件库例程也是这样,这样不就收不到了最后一个信号了吗。
另外谢谢你回答我的问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-8 18:44 , Processed in 0.035677 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表