野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18650|回复: 8

EEPROM写入与读出的数据不一致

[复制链接]
发表于 2014-12-23 17:12:17 | 显示全部楼层 |阅读模式
写入的数据
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
读出的数据
0xFF 错误:I2C EEPROM写入与读出的数据不一致
pData->m_pSysStatus->m_AirWayPress = 55787 ModuleDectParam1sProcess() C:\Users\admin\Desktop\2000ASLAVE\App\src\ModuleDectParam.c:78   
PC2:0.457246
求原因,希望各位帮忙看下!用的EEPROM是“24LC512"


有的是野火的,该了一部分:

  1. #define I2C_Speed              200000
  2. #define I2C1_OWN_ADDRESS7      0x0A
  3. #define I2C_PageSize           128                        /* AT24C02每页有8个字节 */
复制代码
  1. //*************************
  2. #define  EEP_Firstpage 0x00
  3. u8 I2c_Buf_Write[10];
  4. u8 I2c_Buf_Read[10];
  5. void I2C_Test(void);
  6. //*************************
复制代码
  1. //****************************************************************

  2. void I2C_Test(void)
  3. {
  4.   u16 i;
  5.   
  6.   printf("写入的数据\n\r");
  7.       
  8.   for ( i=0; i<=9; i++ ) //填充缓冲
  9.   {   
  10.     I2c_Buf_Write[i] = i;

  11.     printf("0x%02X ", I2c_Buf_Write[i]);
  12. //    if(i%16 == 15)   
  13. //        printf("\n\r");   
  14.    }

  15.   //将I2c_Buf_Write中顺序递增的数据写入EERPOM中
  16.   I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 10);         
  17.   
  18.   printf("\n\r读出的数据\n\r");
  19.   //将EEPROM读出数据顺序保持到I2c_Buf_Read中
  20.   I2C_EE_BufferRead(I2c_Buf_Read, EEP_Firstpage, 10);

  21.   //将I2c_Buf_Read中的数据通过串口打印
  22.         for (i=0; i<10; i++)
  23.         {       
  24.                 if(I2c_Buf_Read[i] != I2c_Buf_Write[i])
  25.                 {
  26.                         printf("0x%02X ", I2c_Buf_Read[i]);
  27.                         printf("错误:I2C EEPROM写入与读出的数据不一致\n\r");
  28.                         return;
  29.                 }
  30.     printf("0x%02X ", I2c_Buf_Read[i]);
  31. //    if(i%16 == 15)   
  32. //        printf("\n\r");
  33.    
  34.         }
  35.   printf("I2C(AT24C02)读写测试成功\n\r");
  36. }
  37. //****************************************************************
复制代码



回复

使用道具 举报

 楼主| 发表于 2014-12-24 11:58:26 | 显示全部楼层
没有人回答
回复 支持 反对

使用道具 举报

发表于 2014-12-30 17:16:50 | 显示全部楼层
楼主问题解决了吗?同问
回复 支持 反对

使用道具 举报

发表于 2015-1-2 14:30:32 | 显示全部楼层
I2C_PageSize 应该是32吧
回复 支持 反对

使用道具 举报

发表于 2015-1-2 14:34:07 | 显示全部楼层
这两天我也在弄这个,还没解决,郁闷啊。我用的EEPROM是AT24C512,I2C1 Remap到了PB8, PB9,上拉电阻5.1K,其它的都一样,调试时老在while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); 这了。请问大家,这是什么原因?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-5 10:07:41 | 显示全部楼层
zxmsddz 发表于 2014-12-30 17:16
楼主问题解决了吗?同问

硬件的还是不行,不过用模拟的可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-5 10:12:05 | 显示全部楼层
Alpinist 发表于 2015-1-2 14:30
I2C_PageSize 应该是32吧

32试过也不行,每页应该是128字节
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-5 10:13:05 | 显示全部楼层
Alpinist 发表于 2015-1-2 14:34
这两天我也在弄这个,还没解决,郁闷啊。我用的EEPROM是AT24C512,I2C1 Remap到了PB8, PB9,上拉电阻5.1K, ...

我也遇到这问题,后面走通了,还是不行!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-5 10:23:45 | 显示全部楼层
zxmsddz 发表于 2014-12-30 17:16
楼主问题解决了吗?同问

我的解决了,我用的其它硬件驱动,不是野火的,野火的硬件驱动不行,模拟的才可以。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 01:00 , Processed in 0.031552 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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