OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3003|回复: 2

请教原子哥,24c02写入不成功

[复制链接]

16

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2019-9-1
在线时间
61 小时
发表于 2020-6-28 21:59:41 | 显示全部楼层 |阅读模式
1金钱

        while(1)
        {       
        i=AT24CXX_ReadOneByte(key);
        printf("key=%d,i=%d, \n", key,i);
        LED0=!LED0;//DS0éá˸               
        delay_us(10);
        key++;
        i++;
        AT24CXX_WriteOneByte(key,i);
        delay_ms(20);
        }

请教原子哥这是实验24c02读写主程序部分,key是写入的地址,i是写入的数据,为什么地址变,数据不变,地址和数据都是执行的void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)这个函数,pintf出来的结构请看
key=0,i=27,
key=1,i=0,
key=2,i=0,
key=3,i=0,
key=4,i=0,
key=5,i=0,
key=6,i=0,
key=7,i=0,
key=8,i=0,
key=9,i=0,
key=10,i=0,
key=11,i=0,
key=12,i=0,
key=13,i=0,
key=14,i=0,
key=15,i=0,
key=16,i=255,
key=17,i=255,
key=18,i=255,
key=19,i=255,
key=20,i=255,
key=21,i=255,
key=22,i=255,
key=23,i=255,
key=24,i=255,
key=25,i=255,
key=26,i=255,
key=27,i=255,
key=28,i=255,
key=29,i=255,
key=30,i=255,
key=31,i=255,
key=32,i=255,
key=33,i=255,
key=34,i=255,
key=35,i=255,
key=36,i=255,
key=37,i=255,
key=38,i=255,
key=39,i=255,
key=40,i=255,
key=41,i=255,
key=42,i=255,
key=43,i=255,
key=44,i=255,
key=45,i=255,
key=46,i=255,
key=47,i=255,
key=48,i=255,
key=49,i=255,
key=50,i=255,
key=51,i=255,
key=52,i=255,
key=53,i=255,
key=54,i=255,
key=55,i=255,
key=56,i=255,
key=57,i=255,
key=58,i=255,
key=59,i=255,
key=60,i=255,
key=61,i=255,
key=62,i=255,
key=63,i=255,
key=64,i=255,
key=65,i=255,
key=66,i=255,
key=67,i=255,
key=68,i=255,
key=69,i=255,
key=70,i=255,
key=71,i=255,
key=72,i=255,
key=73,i=255,
key=74,i=255,
key=75,i=255,
key=76,i=255,
key=77,i=255,
key=78,i=255,
key=79,i=255,
key=80,i=255,
key=81,i=255,
key=82,i=255,
key=83,i=255,
key=84,i=255,
key=85,i=255,
key=86,i=255,
key=87,i=255,
key=88,i=255,
key=89,i=255,
key=90,i=255,
key=91,i=255,
key=92,i=255,
key=93,i=255,
key=94,i=255,
key=95,i=255,
key=96,i=255,
key=97,i=255,
key=98,i=255,
key=99,i=255,
key=100,i=255,
key=101,i=255,
key=102,i=255,
key=103,i=255,
key=104,i=255,
key=105,i=255,
key=106,i=255,
key=107,i=255,
key=108,i=255,
key=109,i=255,
key=110,i=255,
key=111,i=255,
key=112,i=255,
key=113,i=255,
key=114,i=255,
key=115,i=255,
key=116,i=255,
key=117,i=255,
逻辑分析仪检测的波形
读.jpg
写.jpg
上图是读,下图是写,发现写数据,函数没有执行i里面的数据,上面的key和i的值,一直都不变,写不成功,数据部分也传递不进去,使用的是战舰版的IIC实验,没有找到问题在哪,请原子哥分析一下,多谢
void IIC_Send_Byte(u8 txd)
{                        
    u8 t;   
        SDA_OUT();             
    IIC_SCL=0;//à-μíê±Öó¿aê¼êy¾Y′«êä
    for(t=0;t<8;t++)
    {              
       IIC_SDA=(txd&0x80)>>7;
//                if((txd&0x80)>>7)
//                        IIC_SDA=1;
//                else
//                        IIC_SDA=0;
                txd<<=1;           
                delay_us(2);   //&#182;&#212;TEA5767&#213;aèy&#184;&#246;&#209;óê±&#182;&#188;ê&#199;±&#216;D&#235;μ&#196;
                IIC_SCL=1;
                delay_us(2);
                IIC_SCL=0;       
                delay_us(2);
    }         
}


void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                                                                                                                                                                                          
    IIC_Start();  
//        if(EE_TYPE>AT24C16)
//        {
//                IIC_Send_Byte(0XA0);            //·¢&#203;íD′&#195;üá&#238;
//                IIC_Wait_Ack();
//                IIC_Send_Byte(WriteAddr>>8);//·¢&#203;í&#184;&#223;μ&#216;&#214;·
//         }else
       
                IIC_Send_Byte(0XA0);//+((WriteAddr/256)<<1));   //·¢&#203;í&#198;÷&#188;tμ&#216;&#214;·0XA0,D′êy&#190;Y
                 
        IIC_Wait_Ack();          
    IIC_Send_Byte(WriteAddr%256);   //·¢&#203;íμíμ&#216;&#214;·
        IIC_Wait_Ack();                                                                                                              
        IIC_Send_Byte(DataToWrite);     //·¢&#203;í×&#214;&#189;ú                                                          
        IIC_Wait_Ack();                                
    IIC_Stop();//2úéúò&#187;&#184;&#246;í£&#214;1ì&#245;&#188;t
        delay_ms(10);         
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2017-4-27
在线时间
25 小时
发表于 2020-6-29 11:06:00 | 显示全部楼层
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-12-10
在线时间
19 小时
发表于 2020-9-11 15:47:50 | 显示全部楼层
用的是正点原子的开发板吗?  有的板子上24c02的地址 A0 A1 A2 不是接的GND 而是VCC  那样地址就变成 AE 和AF了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 07:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表