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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1785|回復: 11
收起左側

單片機+AT24C02能讀取不能寫入?附程序

[復制鏈接]
ID:727796 發表于 2023-4-19 17:26 | 顯示全部樓層 |閱讀模式
代碼如下
#include<i2.h>

void Delay10us()                //@11.0592MHz
{
        unsigned char i;

        i=2;
        while (--i);
}

void I2cStart()//I2c開始信號
{
        SCL=1;//SCL在高電平時SDA從高電平轉為低電平就是開始信號
        Delay10us();
        SDA=1;
        Delay10us();//保持狀態時間要大于4.7us以便讀取
        SDA=0;
        Delay10us();//保持狀態時間要大于4us以便讀取
        SCL=0;//結束后恢復初始狀態
        Delay10us();
}

void I2cStop()//I2c結束信號
{
        SCL=1;//SCL在高電平時SDA從低電平轉為高電平就是結束信號
        Delay10us();
        SDA=0;
        Delay10us();//保持狀態時間要大于4.7us以便讀取
        SDA=1;
        Delay10us();//保持狀態時間要大于4us以便讀取
        SCL=0;//結束后恢復初始狀態
        Delay10us();
}
u8 I2cSendBaty(u8 dat)//發送一個字節的數據
{
        
        //SCL在高電平時讀取SDA數據在低電平時允許改變SDA數據改變
        u8 i,j=0,k=0;
        SCL=0;
        for(i=0;i<8;i++)
        {
                j=dat>>(7-i);
                SDA=j%2;
                Delay10us();
                SCL=1;//開始讀取數據
                Delay10us();
                SCL=0;
        }
        SDA=1;//開始檢測從機是否接收完成
        Delay10us();
        SCL=1;
        while(SDA)//判斷SDA狀態(低電平時說明接收完成)
        {
                k++;
                if(k>200)//超時判斷
                {
                        SDA=0;
                        Delay10us();
                        return 0;//返回接收失敗
                }
        }
        SCL=0;
        Delay10us();
        return 1;//返回接收完成
}

u8 I2cReadBaty()//讀取一個字節的數據
{
        u8 i,dat=0;
        SDA=1;
        Delay10us();
        for(i=0;i<8;i++)
        {
                SCL=1;
                Delay10us();
                dat<<=1;
                dat|=SDA;
                Delay10us();
                SCL=0;
                Delay10us();
        }
        return dat;
}

void At24c02Write(u8 Chip_addr,u8 M_addr,u8 dat)//IC芯片寫入數據
{
        I2cStart();//數據寫入開始
        I2cSendBaty(Chip_addr);//發送儲存芯片地址
        I2cSendBaty(M_addr);//發送儲存芯片儲存地址
        I2cSendBaty(dat);//發送儲存數據
        I2cStop();//I2c結束信號
}

u8 At24c02Read(u8 Chip_addr,u8 M_addr,u8 dat)//IC芯片讀取數據
{
        u8 ret=0;
        I2cStart();//數據寫入開始
        I2cSendBaty(Chip_addr);//發送儲存芯片地址
        I2cSendBaty(M_addr);//發送儲存芯片儲存地址
        I2cStart();//數據寫入開始
        I2cSendBaty(Chip_addr+1);//發送儲存芯片地址
        ret= I2cReadBaty();//讀取一個字節的數據
        I2cStop();//I2c結束信號
        return ret;
}
回復

使用道具 舉報

ID:399179 發表于 2023-4-19 20:10 來自手機 | 顯示全部樓層
24C02有個寫保護引腳
回復

使用道具 舉報

ID:123289 發表于 2023-4-20 15:08 | 顯示全部樓層
再仔細閱讀芯片的手冊。
回復

使用道具 舉報

ID:807182 發表于 2023-4-21 19:39 | 顯示全部樓層
引腳沒有拉高
1.png
回復

使用道具 舉報

ID:1073275 發表于 2023-4-21 21:56 來自手機 | 顯示全部樓層
引腳拉高
回復

使用道具 舉報

ID:984048 發表于 2023-4-21 23:35 | 顯示全部樓層
要把引腳拉高
回復

使用道具 舉報

ID:727796 發表于 2023-4-23 21:13 | 顯示全部樓層

能正常讀取數據就是不能寫入,這個有問題的話不是也不能讀取嗎
回復

使用道具 舉報

ID:807182 發表于 2023-4-25 14:11 | 顯示全部樓層
chenl_l_ 發表于 2023-4-23 21:13
能正常讀取數據就是不能寫入,這個有問題的話不是也不能讀取嗎

可能是這個原因啊,因為我看你在寫進去的時候并沒有對SDA引腳配置為輸出模式
回復

使用道具 舉報

ID:807182 發表于 2023-4-25 14:12 | 顯示全部樓層
發送和接收數據時是需要通過改變SDA引腳的輸入輸出模式的
回復

使用道具 舉報

ID:727796 發表于 2023-4-26 18:47 | 顯示全部樓層
暖西夏 發表于 2023-4-25 14:12
發送和接收數據時是需要通過改變SDA引腳的輸入輸出模式的

不是地址最后以為來控制讀寫模式嗎
回復

使用道具 舉報

ID:727796 發表于 2023-4-26 21:53 | 顯示全部樓層
暖西夏 發表于 2023-4-25 14:12
發送和接收數據時是需要通過改變SDA引腳的輸入輸出模式的

知道咋回事兒了,發送寫入24C02數據后從機不會拉低SDA的電平,使SDA處于高電平[img][/img]
回復

使用道具 舉報

ID:727796 發表于 2023-4-26 21:56 | 顯示全部樓層
1.png
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女逼网站 | 亚洲精品在线国产 | 亚洲国产一区在线 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 一道本一区二区 | 91aiai| 久久亚洲一区二区三区四区 | 国产精品一区在线观看 | 欧美精品黄 | 中文字幕一区在线 | 国产特级毛片aaaaaa喷潮 | 精品在线99 | 中午字幕在线观看 | 欧美日韩中文字幕在线 | 中文字幕中文字幕 | 91精品国产日韩91久久久久久 | 日本一区二区三区免费观看 | 中文字幕乱码一区二区三区 | 日本不卡一区 | 成人精品鲁一区一区二区 | av在线天堂 | 成人一区二区在线 | 日本天天操 | 精品久久久久久久久亚洲 | 成人免费视频网址 | 视频在线一区二区 | 欧美精品一区三区 | 国产午夜精品一区二区三区嫩草 | 国内精品久久久久久久 | 综合久久综合久久 | 日本在线播放一区二区 | 久久专区 | 狠狠干天天干 | 成年人网站免费视频 | 综合久 | 国产精品日韩欧美 | 视频在线一区二区 | 日韩精品一区二区三区高清免费 | 久久久成人免费一区二区 | 亚洲综合大片69999 | 久久99国产精品久久99果冻传媒 |