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

STC8内部EEPROM保存数据的问题

[复制链接]
  • TA的每日心情
    难过
    2024-3-24 16:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    6

    回帖

    92

    积分

    注册会员

    积分
    92
    发表于 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);是不是必须的?
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:02
  • 签到天数: 99 天

    [LV.6]常住居民II

    41

    主题

    1012

    回帖

    6955

    积分

    荣誉版主

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-16 06:44 , Processed in 0.056827 second(s), 34 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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