我在使用X033的I2C做主設(shè)備, 跟從設(shè)備通訊時, 經(jīng)常出現(xiàn)卡死在?
while(I2C_GetFlagStatus(I2C1,?I2C_FLAG_BUSY));
經(jīng)過初步診斷, 時鐘配置和I2C配置順序沒有問題, 測量發(fā)現(xiàn)I2C的SDA不知為何被拉低了,
我看數(shù)據(jù)手冊中的說明, 通過置位I2C外設(shè)的SWRST位, 可以復(fù)位I2C模塊:
I2C_SoftwareResetCmd(I2C_TypeDef?*I2Cx,?FunctionalState?NewState);
這個軟件復(fù)位的函數(shù)應(yīng)該何時調(diào)用呢??調(diào)用這個函數(shù)可以解決SDA被拉低的問題么?