已經告訴你了,你上傳的代碼中,你的端口設置是對的,就不要再去找端口的毛病了
SDA和SCL都要加上拉10K電阻!!!!!!!
IIC可以驅動其它的IIC器件也不一定是對的!!!!!
為什么要叫你用24c01,這個器件是標準的IIC,不支持高速IIC的,在它上面運行正常了,在SD3078就能正常了
不要duang!duang!duang!先寫一堆幾千行的代碼,然后就進行驗證,那么多代碼,問題出在哪里你都不一定知道
"先驗證IIC從機地址對不對,先不管數據讀寫,先寫一個驗證代碼,向從機發送地址,看一下有沒有響應,可以用一個LED或者某個端口的電平來進行驗證"
1,什么其它的代碼都不要,只要端口設置和IIC寫入一個字節函數,外加一個延時函數,延時可以設定為1秒2,P0^1=0;//LED這個端口先滅燈
3,寫入從機地址 0x64
4,等待IIC從機應答,如果不應答就是死循環
5,P0^1 = 1;//
while(1);
6,燒錄驗證,不要仿真!!!!!!!!!
以上6步,從P.01端口的電平信號就可以知道從機是否能響應主機的IIC信號了
低電平:說明從機沒有應答
高電平:說明從機已經應答,寫字節的IIC代碼是對的
再不行,把你的所有代碼,原理圖上傳
還是不行,那就放棄吧
|