硬件IIC驅(qū)動EEprom

1690170127132139.png

1690170127126661.png

我在你們提供的例程基礎(chǔ)上,寫完一頁加讀會數(shù)據(jù)操作,但是每次程序運行都會卡死在,讀事件的EVENT5事件查詢中,下面是程序附圖,幫忙解答下

您好,在主機(jī)使用I2C_GenerateSTART()函數(shù)發(fā)送START條件后,主機(jī)必須等待事件5(啟動條件已在I2C總線上正確釋放),關(guān)于事件5,主要是對是否發(fā)送起始位(STAR1寄存器位0)、主從模式以及總線是忙還是空閑(STAR2寄存器位0、位1)進(jìn)行判斷,當(dāng)這3位均為1,即已發(fā)送起始位、主模式且總線忙,會跳過while循環(huán)進(jìn)行下一步操作。若卡死在while循環(huán),可以檢查一下以上寄存器3位是否為1。此外,卡死在EVT事件,可按照以下方法試一下能否解決問題:

1、程序中關(guān)閉自動應(yīng)答,不使用I2C_AcknowledgeConfig(I2C2, ENABLE),可以按照這樣試一下

2、在讀之前重新初始化一下IIC或者使能IIC試一下;

3、關(guān)于EV5事件的清除,讀SR1然后將地址寫入DR寄存器將清除該事件,可在程序中按照該流程試一下;

4、可嘗試降低一下通信速度看看是否會有問題;

5、加入超時機(jī)制,當(dāng)卡死在某事件(while循環(huán))一段時間之后,直接跳過該循環(huán),等待下一次操作;

后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通,若方便可將程序發(fā)過來看一下


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

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