標(biāo)題: [求助]IIC讀字節(jié)代碼程序 [打印本頁]
作者: nt06 時(shí)間: 2012-7-18 17:10
標(biāo)題: [求助]IIC讀字節(jié)代碼程序
uchar read_byte()
{
uchar i,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
sda 被拉為1了
K左移
結(jié)果K是不是全是FF
這有在讀數(shù)據(jù)嗎?
無法理解 求高手指點(diǎn)
作者: 青蘋果 時(shí)間: 2012-7-19 08:55
SDA=1;應(yīng)該是讓SDA口做為輸出吧,后面讀取SDA的時(shí)候,就是SDA IO口的狀態(tài)了,不會一直是1的
作者: ahshmj 時(shí)間: 2012-7-26 19:34
由于51單片機(jī)是準(zhǔn)雙向I/O,有讀鎖存器和讀口線(引腳)之分,讀口線之前必須先置I/O鎖存器為1,讀口線才能有正確結(jié)果。所以SDA=1是必須的。
這正是許多初學(xué)者不容易理解并容易出錯(cuò)的地方。而且出錯(cuò)的原因還不容易分析。
[此貼子已經(jīng)被作者于2012-7-26 19:34:43編輯過]
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |