IIC踩过的坑
讀取IT8563WE時,讀取第一次正確,第二次錯誤,第三次正確,第四次錯誤。。。。。。
看到讀取成功之后,SDA信號沒有被正確拉高,電平大概只有一半。
再次讀取,主機設置讀模式時,從機會發送NACK,會將電平拉高。這樣第三次讀取時,SDA和SCL數據信號線都是高電平。
注意:當第一次讀取完畢,SDA沒有被完全拉高是,直接將VCC接入SDA腳,SDA仍然不能恢復電平最高,應該是IT8563WE的問題。
臨時解決辦法:
讀取成功后,再次讀取,在主機設置讀模式時,從機會發送NACK,會將電平拉高
過一段時間再次修改找到根本原因
讀取最后一個字節應該是NACk的回包
原來代碼
修改之后
讀過程
波形圖,發送NACK后,再發送STOP,電平恢復高電平
開源地址:
https://github.com/strongercjd/STM32F207VCT6
(提示:公眾號不支持外鏈接,請復制鏈接到瀏覽器下載)
推薦閱讀:
專輯|Linux文章匯總
專輯|程序人生
專輯|C語言
我的知識小密圈
關注公眾號,后臺回復「1024」獲取學習資料網盤鏈接。
歡迎點贊,關注,轉發,在看,您的每一次鼓勵,我都將銘記于心~
總結
- 上一篇: 超全!0基础程序员从入门到工作(持续更新
- 下一篇: 解决一个I2C读写问题