IIc死鎖的問(wèn)題
首先補(bǔ)充基本的,iic是線與(wire-and)接口,時(shí)鐘線SCL數(shù)據(jù)線SDA在配置時(shí)都會(huì)使用開(kāi)漏輸出
可以靠io拉到0電平,1電平需要硬件設(shè)計(jì)外部上拉電阻。
總線空閑的時(shí)候SCL、SDA都是高電平,
起始信號(hào) 時(shí)鐘線高的時(shí)候,數(shù)據(jù)線由高到低
結(jié)束信號(hào) 時(shí)鐘線高的時(shí)候,數(shù)據(jù)線由低拉高
應(yīng)答 接收方接收完數(shù)據(jù)后,在時(shí)鐘高的時(shí)候,數(shù)據(jù)為低
不應(yīng)答就是不拉低
死鎖
當(dāng)數(shù)據(jù)傳輸時(shí),發(fā)生程序崩潰,bug,硬件故障等問(wèn)題,從設(shè)備發(fā)送低電平的0bit時(shí),從機(jī)不會(huì)釋放總線
會(huì)把數(shù)據(jù)線一直拉低,此時(shí)主機(jī)便無(wú)法停止和重啟,因?yàn)閿?shù)據(jù)線一直被占用
此時(shí)可以手動(dòng)給時(shí)鐘線扣9個(gè)多的時(shí)鐘信號(hào),讓從機(jī)把數(shù)據(jù)發(fā)送出來(lái)釋放總線
當(dāng)主機(jī)檢測(cè)到數(shù)據(jù)線被釋放,就可以發(fā)出停止信號(hào)停止,再重新開(kāi)始iic的進(jìn)行
手動(dòng)扣時(shí)鐘信號(hào)的時(shí)候保持?jǐn)?shù)據(jù)線無(wú)數(shù)據(jù),可能檢測(cè)到應(yīng)答后從機(jī)又會(huì)發(fā)數(shù)據(jù),不應(yīng)答數(shù)據(jù)線便會(huì)處于空閑
posted on 2025-10-23 15:24 腦子疼 閱讀(26) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)