IIC踩过的坑

嵌入式Linux

共 606字,需浏览 2分钟

 · 2021-01-29

读取IT8563WE时,读取第一次正确,第二次错误,第三次正确,第四次错误。


看到读取成功之后,SDA信号没有被正确拉高,电平大概只有一半。

再次读取,主机设置读模式时,从机会发送NACK,会将电平拉高。这样第三次读取时,SDA和SCL数据信号线都是高电平。


注意:当第一次读取完毕,SDA没有被完全拉高是,直接将VCC接入SDA脚,SDA仍然不能恢复电平最高,应该是IT8563WE的问题。


临时解决办法:

读取成功后,再次读取,在主机设置读模式时,从机会发送NACK,会将电平拉高


过一段时间再次修改找到根本原因

读取最后一个字节应该是NACk的回包


原来代码


修改之后


读过程


波形图,发送NACK后,再发送STOP,电平恢复高电平



开源地址:


https://github.com/strongercjd/STM32F207VCT6

(提示:公众号不支持外链接,请复制链接到浏览器下载)



推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~




浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报