找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1653|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

I2C的讀寫問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:188375 發(fā)表于 2017-4-11 10:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
下面兩個(gè)程序。為什么第一個(gè)程序可以,第二個(gè)程序就不行呢?

第一個(gè)程序:
void Write_A_Byte(uchar b) //向 24C16 中寫一字節(jié)數(shù)據(jù)
{
uchar i;
for(i=0;i<8;i++)
{
b<<=1;
SDA=CY;
_nop_();
SCL=1;
NOP4();
SCL=0;
}
Read_ACK();
}


第二個(gè)程序:
void  Write_A_Byte(uchar dat) //寫一個(gè)字節(jié)
{
  uchar i;
  uchar temp;
  temp=dat;
  SCL=0;   //釋放時(shí)鐘信號(hào)  讓數(shù)據(jù)總線變化
  for(i=0;i<8;i++)
  {
    if(temp&0x80)
      SDA=1;
    else
      SDA=0;  
    SCL=1;
    temp<<=1;
        NOP4();
    SCL=0;
        NOP4();
  }  
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:148552 發(fā)表于 2017-4-11 17:54 | 只看該作者
I2C對(duì)時(shí)序要求特別高,而且你又是IO口模擬的時(shí)序,最好用邏輯分析儀看下時(shí)序?qū)Σ粚?duì),硬看很難看出問題的(如果是時(shí)序問題的話)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表