欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 正點(diǎn)原子stm32f103zet6開(kāi)發(fā)板AT24C02讀寫(xiě)有問(wèn)題,求大佬指點(diǎn) [打印本頁(yè)]

作者: wuqing12345    時(shí)間: 2024-11-10 01:05
標(biāo)題: 正點(diǎn)原子stm32f103zet6開(kāi)發(fā)板AT24C02讀寫(xiě)有問(wèn)題,求大佬指點(diǎn)
初學(xué)者,寫(xiě)這個(gè)AT24C02,應(yīng)答信號(hào)一直是高電平,寫(xiě)入失敗,讀的數(shù)據(jù)一直是255,弄了很久還是出不來(lái),求大佬指點(diǎn)

10.31AT24C02實(shí)驗(yàn).7z

597.24 KB, 下載次數(shù): 2


作者: npn    時(shí)間: 2024-11-10 11:23
可能是IO口模式配置有問(wèn)題,具體用邏輯分析儀檢查。
此類芯片先用51單片機(jī)編寫(xiě)讀寫(xiě)程序,然后再移植到STM32。
作者: qinlu123    時(shí)間: 2024-11-12 13:05
  1. uint8_t Receive_ACK(struct I2C_Device *IIcBus)
  2. {
  3.         uint16_t i;
  4.        
  5.         IIcBus->Set_SCL(0);//一定把時(shí)鐘設(shè)為低電平再釋放總線等待ACK
  6.         IIcBus->Set_SDA(1);//釋放總線
  7. //        IIcBus->delayus(Delay_Time);
  8.         while(IIcBus->Get_SDA()!=0)
  9.         {
  10.                 i++;
  11.                 if(i>10000)
  12.                 {
  13.                         return 0;
  14.                 }
  15.         }
  16.         IIcBus->Set_SCL(1);
  17.         IIcBus->delayus(Delay_Time);
  18.         IIcBus->Set_SCL(0);//空閑時(shí)保證時(shí)鐘線為低
  19.         return 1;
  20. }
復(fù)制代碼

檢測(cè)應(yīng)答信號(hào)時(shí)一定要先把SCL拉低
作者: wuqing12345    時(shí)間: 2024-11-14 18:46
npn 發(fā)表于 2024-11-10 11:23
可能是IO口模式配置有問(wèn)題,具體用邏輯分析儀檢查。
此類芯片先用51單片機(jī)編寫(xiě)讀寫(xiě)程序,然后再移植到STM3 ...

51到32又見(jiàn)面了大佬
作者: yangyang123321    時(shí)間: 2024-11-14 19:57
解決辦法:   我的是模擬i2c ,其他讀寫(xiě)函數(shù)都不用變,只需要改停止信號(hào)的的時(shí)序即可。  原來(lái)的停止信號(hào):  //產(chǎn)生IIC停止信號(hào)    //產(chǎn)生IIC停止信號(hào) void IIC_Stop(void) {         SDA_OUT();//sda線輸出         IIC_SCL=0;         IIC_SDA=0;//STOP:when CLK is high DATA change form low to high          delay_us(4);         IIC_SCL=1;                                                  IIC_SDA=1;//發(fā)送I2C總線結(jié)束信號(hào)         delay_us(4);                                                                    } 修改后的停止信號(hào)時(shí)序  //產(chǎn)生IIC停止信號(hào) void IIC_Stop(void) {     SDA_OUT();//sda線輸出     IIC_SCL=0;     IIC_SDA=0;//STOP:when CLK is high DATA change form low to high      delay_us(4);     IIC_SCL=1;      delay_us(4);           // 添加延時(shí)              IIC_SDA=1;//發(fā)送I2C總線結(jié)束信號(hào)                               }
作者: yangyang123321    時(shí)間: 2024-11-14 20:01
解決辦法:

代碼如下

我的是模擬i2c ,其他讀寫(xiě)函數(shù)都不用變,只需要改停止信號(hào)的的時(shí)序即可。

原來(lái)的停止信號(hào):

//產(chǎn)生IIC停止信號(hào)


//產(chǎn)生IIC停止信號(hào)
void IIC_Stop(void)
{
        SDA_OUT();//sda線輸出
        IIC_SCL=0;
        IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
        delay_us(4);
        IIC_SCL=1;                                        
        IIC_SDA=1;//發(fā)送I2C總線結(jié)束信號(hào)
        delay_us(4);                                                                  
}
修改后的停止信號(hào)時(shí)序

//產(chǎn)生IIC停止信號(hào)
void IIC_Stop(void)
{
    SDA_OUT();//sda線輸出
    IIC_SCL=0;
    IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
     delay_us(4);
    IIC_SCL=1;
    delay_us(4);           // 添加延時(shí)         
    IIC_SDA=1;//發(fā)送I2C總線結(jié)束信號(hào)                              
}





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1