IIC踩過的坑
讀取IT8563WE時,讀取第一次正確,第二次錯誤,第三次正確,第四次錯誤。。。。。。

看到讀取成功之后,SDA信號沒有被正確拉高,電平大概只有一半。
再次讀取,主機設置讀模式時,從機會發(fā)送NACK,會將電平拉高。這樣第三次讀取時,SDA和SCL數(shù)據(jù)信號線都是高電平。
注意:當?shù)谝淮巫x取完畢,SDA沒有被完全拉高是,直接將VCC接入SDA腳,SDA仍然不能恢復電平最高,應該是IT8563WE的問題。
臨時解決辦法:
讀取成功后,再次讀取,在主機設置讀模式時,從機會發(fā)送NACK,會將電平拉高

過一段時間再次修改找到根本原因
讀取最后一個字節(jié)應該是NACk的回包

原來代碼

修改之后

讀過程

波形圖,發(fā)送NACK后,再發(fā)送STOP,電平恢復高電平

開源地址:
https://github.com/strongercjd/STM32F207VCT6
(提示:公眾號不支持外鏈接,請復制鏈接到瀏覽器下載)



評論
圖片
表情
