打印

不能向AT24C02中重复写数据

[复制链接]
331|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第三章|  楼主 | 2018-6-30 18:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int main(void)
{
        LED_Config();                                             /*LED初始化*/

        USART1_Config();                                          /* USART1 配置模式为 9600 8-N-1,中断接收 */
                                                              
        I2C_EE_Config();                                                                        /* I2C 外设初(AT24C02)始化 */
               
        while(1)
        {
                if(RecCard_Ok_Flag == 1 )                             /*如果串口接收到IC卡的数据*/   
                {
                        printf("IC卡已插入,卡号为: ");
                        for(Count=0;Count<5;Count ++)
                        {
                                printf("%d" , RecCardData_Buf[Count]);
                        }
                        printf("
");
                        Count = 0;
                        RecCard_Ok_Flag = 0;

                        printf("将读取的卡号存储到EE中去:
");
                        I2C_EE_BufferWrite(RecCardData_Buf, BASE_ADDR, sizeof(RecCardData_Buf));
                        printf("数据存储成功!
");
                        printf("
");
                        printf("读出EE中的卡号
");
                        I2C_EE_BufferRead(I2C_ReadFromEE_Buff, BASE_ADDR, sizeof(RecCardData_Buf));
                        for(Count = 0 ; Count < sizeof(RecCardData_Buf); Count ++)
                        {
                                if(RecCardData_Buf[Count] != I2C_ReadFromEE_Buff[Count])
                                {
                                        printf("数据读取错误!
");
                                        return 0;
                                }
                        }
                        printf("%d" , I2C_ReadFromEE_Buff[Count]);
                        printf("读出卡号成功!
");
                        memset(I2C_ReadFromEE_Buff , 0 , sizeof(RecCardData_Buf));
                        //memset(I2C_ReadFromEE_Buff , 0 , sizeof(RecCardData_Buf));
                }
        }
               
}


我通过UART1 读取IC卡的卡号 。并通过I2C 存储到AT24C02中,进行第一次while()是可以正常存储并读出 。但是当我再一次刷IC卡 IC卡的卡号是可以的读出的。但是并不能存储到AT24C02中去的。通过串口调试工具的现象如下:

IC卡已插入,卡号为: 10529104157129
将读取的卡号存储到EE中去:
数据存储成功!
读出EE中的卡号
0读出卡号成功!
IC卡已插入,卡号为: 10529104157129
将读取的卡号存储到EE中去:
IC卡已插入,卡号为: 10529104157129
将读取的卡号存储到EE中去:
数据存储成功!


读出EE中的卡号
0读出卡号成功!
IC卡已插入,卡号为: 10529104157129
将读取的卡号存储到EE中去:

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

380

主题

380

帖子

0

粉丝