久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1125|回復: 5
打印 上一主題 下一主題
收起左側

正點原子stm32f103zet6開發板AT24C02讀寫有問題,求大佬指點

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次(中獎概率 30%)
跳轉到指定樓層
樓主
ID:1115386 發表于 2024-11-10 01:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
初學者,寫這個AT24C02,應答信號一直是高電平,寫入失敗,讀的數據一直是255,弄了很久還是出不來,求大佬指點

10.31AT24C02實驗.7z

597.24 KB, 下載次數: 2

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

使用道具 舉報

沙發
ID:57657 發表于 2024-11-10 11:23 | 只看該作者
可能是IO口模式配置有問題,具體用邏輯分析儀檢查。
此類芯片先用51單片機編寫讀寫程序,然后再移植到STM32。
回復

使用道具 舉報

板凳
ID:446156 發表于 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);//一定把時鐘設為低電平再釋放總線等待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);//空閑時保證時鐘線為低
  19.         return 1;
  20. }
復制代碼

檢測應答信號時一定要先把SCL拉低
回復

使用道具 舉報

地板
ID:1115386 發表于 2024-11-14 18:46 | 只看該作者
npn 發表于 2024-11-10 11:23
可能是IO口模式配置有問題,具體用邏輯分析儀檢查。
此類芯片先用51單片機編寫讀寫程序,然后再移植到STM3 ...

51到32又見面了大佬
回復

使用道具 舉報

5#
ID:1136460 發表于 2024-11-14 19:57 | 只看該作者
解決辦法:   我的是模擬i2c ,其他讀寫函數都不用變,只需要改停止信號的的時序即可。  原來的停止信號:  //產生IIC停止信號    //產生IIC停止信號 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;//發送I2C總線結束信號         delay_us(4);                                                                    } 修改后的停止信號時序  //產生IIC停止信號 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);           // 添加延時              IIC_SDA=1;//發送I2C總線結束信號                               }
回復

使用道具 舉報

6#
ID:1136460 發表于 2024-11-14 20:01 | 只看該作者
解決辦法:

代碼如下

我的是模擬i2c ,其他讀寫函數都不用變,只需要改停止信號的的時序即可。

原來的停止信號:

//產生IIC停止信號


//產生IIC停止信號
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;//發送I2C總線結束信號
        delay_us(4);                                                                  
}
修改后的停止信號時序

//產生IIC停止信號
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);           // 添加延時         
    IIC_SDA=1;//發送I2C總線結束信號                              
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费一区二区三区在线视频 | 中文字幕一级毛片视频 | 国产精品毛片久久久久久 | 成人精品一区二区户外勾搭野战 | 久久r久久 | 国产乱码久久久久久一区二区 | 成人在线视频免费观看 | 精品久久精品 | 国产一区二区三区久久 | 国产精品国产亚洲精品看不卡15 | 精品在线99| 精品美女在线观看视频在线观看 | 欧美在线观看网站 | 日本h片在线观看 | 性色av香蕉一区二区 | 综合一区二区三区 | 成人免费区一区二区三区 | 91国内外精品自在线播放 | 欧美a在线观看 | 国产人久久人人人人爽 | 91精品国产91久久久久久吃药 | 视频一区中文字幕 | 欧洲av在线| 国外成人在线视频 | 九九99九九精彩46 | 久久久久国产一区二区三区四区 | 天天插天天射天天干 | 国产精品成人免费 | 操到爽 | 国际精品鲁一鲁一区二区小说 | h视频在线免费 | 亚洲三级在线观看 | 欧美精品日韩精品国产精品 | 福利社午夜影院 | 91精品久久久久久久久 | 成人免费观看视频 | 黄色国产 | 国产精品一区久久久 | 国产精品日韩高清伦字幕搜索 | 日韩免费福利视频 | 久久综合一区二区 |