請教一下i2c總線異常后恢復總線的流程是怎樣的

- 我使用的是ch32v303

- 異常原因一般是環(huán)境干擾導致i2c總線狀態(tài)錯誤,無法繼續(xù)通信

你好,異常之后主機端要STOP總線,重新開始Start才可以釋放總線(sda,scl都為高電平)。


你好,問題不能解決

  1. 出現(xiàn)異常后,調I2C_GenerateSTOP后,I2C_FLAG_BUSY仍然為Set

  2. 將SCL短時間接地很容易復現(xiàn)這個問題




你好,如果你調用I2C_GenerateSTOP后,總線還不釋放,那就是你的從機拉低了SDA線,將從機的SDA斷開再量主機的SDA線,或者想辦法讓從機復位釋放SDA線就行了。


2024-05-17_22-57.png

你好,多謝回復。我嘗試用邏輯分析儀抓總線數(shù)據(jù),如上圖

  1. 從機沒有拉低SDA

  2. 調用I2C_GenerateSTOP()沒有產(chǎn)生STOP,是否調用前有其他要求?


目前我通過重新初始化流程可以恢復總線。不過還是想了解下更輕量的處理方法。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频