![]() |
注意:MPU_Write_Byte函數(shù)iic操作成功返回0,失敗返回1. 不管iic操作是否成功都要通過MPU_IIC_Stop函數(shù)釋放總線。 估計MPU_IIC_Wait_Ack函數(shù)的作用是100uS內(nèi)有應(yīng)答返回0,無應(yīng)答返回1. 樓主可能習慣把1看成成功,0看成失敗,才有疑問。 |
看不太出來,需要抓波形吧 |
這邊應(yīng)該是沒有應(yīng)答的邏輯控制。 |
IIC屬于半雙工器件,任一時段主機只能和唯一指定的從機通訊。 |
沒有應(yīng)答,就是出現(xiàn)了問題,停止總線,返錯誤代號1. |
你得把MPU_IIC_Stop函數(shù)發(fā)上來看看啊。不過據(jù)我的認識應(yīng)該是主機釋放數(shù)據(jù)總線,把數(shù)據(jù)線拉高,這樣從機應(yīng)答信號才能把數(shù)據(jù)線拉低,主機才能讀到正確的應(yīng)答信號 |
if(MPU_IIC_Wait_Ack())中這個函數(shù)MPU_IIC_Wait_Ack()應(yīng)答成功的話返回值應(yīng)該是0,返回1肯定是應(yīng)答失敗的情況才會執(zhí)行if{}里面的語句退出,并且返回1告訴調(diào)用的地方通信失敗 |
Powered by 單片機教程網(wǎng)