IIC通信等待ACK的时序问题

2019-07-20 04:47发布

TIM截图20180827170825.jpg
程序中IIC_SCL拉高之后,如果IIC_SDA再变的话就成了起始信号或终止信号了吧,但是图中while()循环却通过检测IIC_SDA的状态来判断是应答还是非应答,这怎么解释?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
1208
1楼-- · 2019-07-20 10:44
 精彩回答 2  元偷偷看……
灰虫子
2楼-- · 2019-07-20 11:39
问题补充:如果IIC_SDA的状态是在IIC_SCL拉高之前变的,那么下面只需用一个if()语句来判断是应答还是非应答就行了吧,即判断应答而不是等待应答
1208
3楼-- · 2019-07-20 13:47
 精彩回答 2  元偷偷看……
灰虫子
4楼-- · 2019-07-20 13:51
1208 发表于 2018-8-27 18:14
起始信号和结束信号要先有sda线输出才行,
READ_SDA置1,就一直产生停止信号,接收应答失败
...

明白了,起始信号和终值信号只能由主机来产生呀,多谢你的帮助
1208
5楼-- · 2019-07-20 15:24
灰虫子 发表于 2018-8-28 10:03
明白了,起始信号和终值信号只能由主机来产生呀,多谢你的帮助

嗯嗯!互帮互助
GAOSIY
6楼-- · 2019-07-20 20:49
 精彩回答 2  元偷偷看……

一周热门 更多>