找回密码
 立即注册
查看: 73|回复: 6

关于STC8G1K08-8Pin EEPROM的一些疑问

[复制链接]
  • TA的每日心情
    开心
    半小时前
  • 签到天数: 116 天

    [LV.6]常住居民II

    4

    主题

    69

    回帖

    74

    积分

    注册会员

    积分
    74
    发表于 2024-5-9 13:52:01 | 显示全部楼层 |阅读模式
    遇到的问题大致是这样的,在0X0000地址写入数据,发现0x0100,0x0200的数据会同步被0X0000的数据替换掉不知道是什么原因,希望大佬们帮忙解答一下。
    改任意一个数据其余的会跟着变,0X0300及以上的还没测试。
    void flash_WriteByte(unsigned int Addr,unsigned int Dat)//flash写
    {
            IapProgram(Addr,Dat/256);
            IapProgram(Addr+1,Dat%256);
    }

    unsigned  int flash_ReadByte(unsigned int Addr)//读指定位置参数
    {
       return IapRead(Addr)*256+IapRead(Addr+1);//返回数据
    }


    截图202405091351045663.jpg
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    半小时前
  • 签到天数: 116 天

    [LV.6]常住居民II

    4

    主题

    69

    回帖

    74

    积分

    注册会员

    积分
    74
     楼主| 发表于 2024-5-9 14:00:14 | 显示全部楼层
    难道是我程序的问题
    截图202405091356523871.jpg
    截图202405091357343436.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:01
  • 签到天数: 106 天

    [LV.6]常住居民II

    41

    主题

    1024

    回帖

    7029

    积分

    荣誉版主

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

    积分
    7029
    QQ
    发表于 2024-5-9 14:26:12 | 显示全部楼层
    我怀疑是你程序哪里没写好,读取和写入的函数是不是哪里不对,IapProgram(Addr,Dat/256);写入这个地址的时候,确保这个地址里的数据为0xff才可以写入,否则需要擦除
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    半小时前
  • 签到天数: 116 天

    [LV.6]常住居民II

    4

    主题

    69

    回帖

    74

    积分

    注册会员

    积分
    74
     楼主| 发表于 2024-5-9 14:35:49 | 显示全部楼层
    电子DIY小家 发表于 2024-5-9 14:26
    我怀疑是你程序哪里没写好,读取和写入的函数是不是哪里不对,IapProgram(Addr,Dat/256);写入这个地址的时 ...

    这个我都确保了的,而且下载程序的时候都是勾了擦除EEPROM的。我现在按0x100以下写循环就正常。
    void Read_disk(void)//区判断
    {           
             flash_offset=(flash_num/8)*0x10;//偏移量计算  8个数据=0x10
             for(i=0;i<(128/flash_num);i++)//当前disk获取  
             {
               if((flash_ReadByte(i*flash_offset))!=0xffff)
                     {
                     disk=i+1;//判断当前区
                     }
             }
             disp[0x09]=disk;//当前区给屏幕显示
    }
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    半小时前
  • 签到天数: 116 天

    [LV.6]常住居民II

    4

    主题

    69

    回帖

    74

    积分

    注册会员

    积分
    74
     楼主| 发表于 2024-5-11 09:16:32 | 显示全部楼层
    我用手头上的另外一个单片机STC8F1K08S2-TSSOP20测试了一下是没问题的,和手册标识的4KB EEPROM一致(0x0000~0x0FFF),
    但是STC8G1K08A-8PIN的内部EEPROM只有256byte(0X0000~0X00FF),还是说我手头的这款有损坏了导致的。没有多余的没法测试

    点评

    使用不一样,尤其是等待时间要注意 [attachimg]43674[/attachimg]  详情 回复 发表于 2024-5-11 10:19
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    555

    主题

    9652

    回帖

    1万

    积分

    管理员

    积分
    14135
    发表于 2024-5-11 10:19:21 | 显示全部楼层
    Kingsley 发表于 2024-5-11 09:16
    我用手头上的另外一个单片机STC8F1K08S2-TSSOP20测试了一下是没问题的,和手册标识的4KB EEPROM一致(0x000 ...
    使用不一样,尤其是等待时间要注意


    截图202405111019077924.jpg

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    555

    主题

    9652

    回帖

    1万

    积分

    管理员

    积分
    14135
    发表于 2024-5-11 10:25:49 | 显示全部楼层

    下面的STC8A指STC8A8K64S4A12,
    STC8A8K64D4已改到跟STC8G1K08/STC8H8K64U一致
    截图202405111024003755.jpg


    截图202405111025435365.jpg

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-29 12:03 , Processed in 0.065678 second(s), 57 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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