初中生
最后登录1970-1-1
在线时间 小时
注册时间2014-11-26
|
写入的数据
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"
有的是野火的,该了一部分:
- #define I2C_Speed 200000
- #define I2C1_OWN_ADDRESS7 0x0A
- #define I2C_PageSize 128 /* AT24C02每页有8个字节 */
复制代码- //*************************
- #define EEP_Firstpage 0x00
- u8 I2c_Buf_Write[10];
- u8 I2c_Buf_Read[10];
- void I2C_Test(void);
- //*************************
复制代码- //****************************************************************
- void I2C_Test(void)
- {
- u16 i;
-
- printf("写入的数据\n\r");
-
- for ( i=0; i<=9; i++ ) //填充缓冲
- {
- I2c_Buf_Write[i] = i;
- printf("0x%02X ", I2c_Buf_Write[i]);
- // if(i%16 == 15)
- // printf("\n\r");
- }
- //将I2c_Buf_Write中顺序递增的数据写入EERPOM中
- I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 10);
-
- printf("\n\r读出的数据\n\r");
- //将EEPROM读出数据顺序保持到I2c_Buf_Read中
- I2C_EE_BufferRead(I2c_Buf_Read, EEP_Firstpage, 10);
- //将I2c_Buf_Read中的数据通过串口打印
- for (i=0; i<10; i++)
- {
- if(I2c_Buf_Read[i] != I2c_Buf_Write[i])
- {
- printf("0x%02X ", I2c_Buf_Read[i]);
- printf("错误:I2C EEPROM写入与读出的数据不一致\n\r");
- return;
- }
- printf("0x%02X ", I2c_Buf_Read[i]);
- // if(i%16 == 15)
- // printf("\n\r");
-
- }
- printf("I2C(AT24C02)读写测试成功\n\r");
- }
- //****************************************************************
复制代码
|
|