找回密码
 立即注册
查看: 748|回复: 1

STC8内部EEPROM保存数据的问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-01-07 19:41:47

8

主题

5

回帖

107

积分

注册会员

积分
107
发表于 2023-8-2 21:53:36 | 显示全部楼层 |阅读模式




u8 UseTimeDec(void)
{
        UseTime= IapRead(0x0000);         // 读出使用次数
       

        if(UseTime==0)                // 次数是0 显示故障
        {

                OLED_Clear();
                OLED_ShowChinese(0,0,20,16);//系统故障
                OLED_ShowChinese(18,0,21,16);//
                OLED_ShowChinese(36,0,22,16);//
                OLED_ShowChinese(54,0,23,16);//               
               
                return 0;
        }
        UseTime--;                        // 使用次数减1
        EA=0;
        IapErase(0x0000);                                                        // 页擦除 是不是必须的?
        IapProgram(0x0000, UseTime);        // 保存数据
        delay_ms(1);
        EA=1;
        return 1;
}


函数如上
使用次数记录,次数到了0后,显示故障。
每次保存使用次数的时候,IapErase(0x0000);是不是必须的?
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2023-8-3 08:48:30 | 显示全部楼层
FLASH 存储器里的1可以被写为0,但是0不能写为1 假设需要写入的 数据是0x7f(0111 1111b),意思就是说这个地址里的数据二进制表示的话低七位必须得为1,否则就会写入失败,所以当不为0xff的时候最好给他执行擦除,变成0xff才能保证写入成功
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:13 , Processed in 0.165547 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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