IIC踩過的坑
讀取IT8563WE時(shí),讀取第一次正確,第二次錯(cuò)誤,第三次正確,第四次錯(cuò)誤。。。。。。

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

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

原來代碼

修改之后

讀過程

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

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



評(píng)論
圖片
表情
