OpenEdv-开源电子网

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

AT24CXX的问题

[复制链接]

17

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-9-24
在线时间
14 小时
发表于 2016-1-22 11:08:01 | 显示全部楼层 |阅读模式
1金钱


1、用原子哥的IIC程序,读24c02是没有问题的,但是把芯片改成24c06,为什么只能读写0~255地址的数据,其他地址的都写不进去。

把型号改成了24c16

最佳答案

查看完整内容[请看2#楼]

估计是代码问题了、
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2016-1-22 11:08:02 | 显示全部楼层
回复

使用道具 举报

2

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-4-28
在线时间
5 小时
发表于 2016-1-22 14:57:48 | 显示全部楼层
你看看所用的宏是否修改完了!
回复

使用道具 举报

17

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-9-24
在线时间
14 小时
 楼主| 发表于 2016-1-22 15:34:48 | 显示全部楼层

//ÔúAT24CXXÖ¸¶¨μØÖ·D′èëò»¸öêy¾Y
//WriteAddr  ′èëêy¾YμÄÄ¿μÄμØÖ·   
//DataToWrite:òaD′èëμÄêy¾Y
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                                                                                                                                                                                          
   E2prom_Start();
   Delay(1000);       
        if(EE_TYPE>AT24C16)
        {
                E2prom_Send_Byte(0XA0);
    Delay(500);
                //·¢ËíD′Ãüáî
                E2prom_Wait_Ack();
                Delay(500);
                E2prom_Send_Byte(WriteAddr>>8);//·¢Ëí¸ßμØÖ·          
                Delay(500);
        }
        else
        {               
                  Delay(500);
                  E2prom_Send_Byte(0XA0+((WriteAddr/256)<<1));   //·¢&#203;í&#198;÷&#188;tμ&#216;&#214;·0XA0,D′êy&#190;Y          
                       
                  Delay(500);
        }
           Delay(500);
                E2prom_Wait_Ack();
    Delay(500);       
    E2prom_Send_Byte(WriteAddr%256);   //·¢&#203;íμíμ&#216;&#214;·
          Delay(500);
                E2prom_Wait_Ack();                 
    Delay(500);       
                E2prom_Send_Byte(DataToWrite);     //·¢&#203;í×&#214;&#189;ú               
    Delay(500);       
                E2prom_Wait_Ack();  
    Delay(500);       
                E2prom_Stop();//2úéúò&#187;&#184;&#246;í£&#214;1ì&#245;&#188;t
                Delay(500);         
}
回复

使用道具 举报

17

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-9-24
在线时间
14 小时
 楼主| 发表于 2016-1-22 15:35:53 | 显示全部楼层
,用这个函数写其他地址的数据是不成功的。1~255是可以的
回复

使用道具 举报

17

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-9-24
在线时间
14 小时
 楼主| 发表于 2016-1-22 15:37:45 | 显示全部楼层
Llinuxu 发表于 2016-1-22 14:57
你看看所用的宏是否修改完了!

#define EE_TYPE AT24C16

这个位置还是改了的啊
回复

使用道具 举报

17

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-9-24
在线时间
14 小时
 楼主| 发表于 2016-1-22 15:38:23 | 显示全部楼层
FantaSy_ 发表于 2016-1-22 12:17
估计是代码问题了、

想知道从哪里考虑
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 00:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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