OpenEdv-开源电子网

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

24C64读写校验失败

[复制链接]

10

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2015-3-19
在线时间
52 小时
发表于 2019-1-16 22:07:51 | 显示全部楼层 |阅读模式
1金钱
移植原子最新的IIC代码操作24C64芯片,读写校验始终失败,写入的是1 2 3 4 5 6....,读出的值每次都是0A,0A,FE这些,折腾了一天都整好。看原子的代码有句话我没看懂,
//初始化IIC接口
void AT24Cxx_Init(void)
{

        AT24Cxx_PortInit();//IIC初始化
        AT24CXX_Check();
}
//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址  
//返回值  :读到的数据
uint8_t AT24CXX_ReadOneByte(uint16_t ReadAddr)
{                                  
        uint8_t temp=0;                                                                                                                                                               
        IIC_Start();  
        if(EE_TYPE>AT24C16)
        {
                IIC_Send_Byte(0XA0);           //发送写命令
                IIC_Wait_Ack();
                IIC_Send_Byte(ReadAddr>>8);//发送高地址            
        }
        else
          IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //发送器件地址0XA0,写数据           
        IIC_Wait_Ack();
        IIC_Send_Byte(ReadAddr%256);   //发送低地址
        IIC_Wait_Ack();            
        //IIC_Start();                       这里为为什么还要加个IIC起始信号
        IIC_Send_Byte(0XA1);           //进入接收模式                          
        IIC_Wait_Ack();         
        temp=IIC_Read_Byte(0);                  
        IIC_Stop();//产生一个停止条件            
        return temp;
}

最佳答案

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

找到问题了,在读的环节出了问题,读完EEPROM之后,主机应该发应答非信号,但我发的是应答信号,然后停止总线传输。结果就出了这样的问题,但不明白为什么是这种数据错一半的现象
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2015-3-19
在线时间
52 小时
 楼主| 发表于 2019-1-17 09:47:35 | 显示全部楼层
本帖最后由 wpsmart 于 2019-1-17 09:58 编辑

自己顶,根据手册时序一个一个校对,问题解决。
微信图片_20190117094614.png
回复

使用道具 举报

10

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2015-3-19
在线时间
52 小时
 楼主| 发表于 2019-1-16 22:07:52 | 显示全部楼层

找到问题了,在读的环节出了问题,读完EEPROM之后,主机应该发应答非信号,但我发的是应答信号,然后停止总线传输。结果就出了这样的问题,但不明白为什么是这种数据错一半的现象
回复

使用道具 举报

10

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2015-3-19
在线时间
52 小时
 楼主| 发表于 2019-1-16 22:26:56 | 显示全部楼层
修改了延时参数之后,写入256个数据,0-255,现在0-127的数据读回来时乱的。但128-255的数值是对的,想不明白。
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2019-1-17 10:37:50 | 显示全部楼层
时序有问题吧
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 20:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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