找回密码
 立即注册
查看: 274|回复: 21

STC8H2K17和STC8H1K28的EEPROM不一样吗

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
    发表于 2024-3-25 10:19:34 | 显示全部楼层 |阅读模式
    本帖最后由 国学芯用 于 2024-3-25 11:43 编辑

    之前用STC8H1K28一直好好的,搞了几片STC8H2K17U-45I-TSSOP20,EEPROM读出来的就不对了,
    反复测试发现Memory Model里面选择DATA读取正常,使用XDATA时STC8H2K17U-45I-TSSOP20就不正常了。
    截图202403251019193214.jpg


    回复 送花

    使用道具 举报

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
     楼主| 发表于 2024-3-25 10:23:09 | 显示全部楼层
    unsigned char IapRead(int addr)  //读
    {
        unsigned char xdata dat;

        IAP_CONTR = 0x80;                           //使能IAP
        IAP_TPS = FOSC / 1000000;                               //设置等待参数12MHz
        IAP_CMD = 1;                                //设置IAP读命令
        IAP_ADDRL = addr;                           //设置IAP低地址
        IAP_ADDRH = addr >> 8;                      //设置IAP高地址
        IAP_TRIG = 0x5a;                            //写触发命令(0x5a)
        IAP_TRIG = 0xa5;                            //写触发命令(0xa5)
        _nop_();
        dat = IAP_DATA;                             //读IAP数据
        IapIdle();                                  //关闭IAP功能

        return dat;
    }
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
     楼主| 发表于 2024-3-25 10:28:44 | 显示全部楼层
    void IapIdle()  //关闭IAP功能
    {
        IAP_CONTR = 0;                              //关闭IAP功能
        IAP_CMD = 0;                                //清除命令寄存器
        IAP_TRIG = 0;                               //清除触发寄存器
        IAP_ADDRH = 0x80;                           //将地址设置到非IAP区域
        IAP_ADDRL = 0;
    }
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
     楼主| 发表于 2024-3-25 10:33:29 | 显示全部楼层
    Program Size: data=152.6 xdata=111 code=10571
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 108 天

    [LV.6]常住居民II

    10

    主题

    578

    回帖

    908

    积分

    高级会员

    积分
    908
    发表于 2024-3-25 11:38:45 | 显示全部楼层
    EEPROM读函数中强制使用的XDATA,所以keil选small模式还是large模式对这个函数没影响。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
     楼主| 发表于 2024-3-25 16:21:22 | 显示全部楼层
    21cnsound 发表于 2024-3-25 11:38
    EEPROM读函数中强制使用的XDATA,所以keil选small模式还是large模式对这个函数没影响。 ...

    8H1K28怎么选都没事,8H2K17就不行了,一样的程序
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 108 天

    [LV.6]常住居民II

    10

    主题

    578

    回帖

    908

    积分

    高级会员

    积分
    908
    发表于 2024-3-25 16:54:03 | 显示全部楼层
    keil中用small模式,所用代码中定义的变量逐个改为XDATA,看问题出在哪里?
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
     楼主| 发表于 2024-3-25 18:01:51 | 显示全部楼层
    我是用官方提供的modbus源码和上面那两个函数组合到一起测试的,估计芯片的问题,毕竟stc8H1K28一点问题没有
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    14 小时前
  • 签到天数: 77 天

    [LV.6]常住居民II

    4

    主题

    474

    回帖

    1278

    积分

    金牌会员

    积分
    1278
    发表于 2024-3-25 19:37:49 | 显示全部楼层
    可以硬件仿真一下看看,估计芯片的问题不大
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.6]常住居民II

    5

    主题

    76

    回帖

    124

    积分

    注册会员

    积分
    124
     楼主| 发表于 2024-3-26 08:11:14 | 显示全部楼层
    ,我小白,不会仿真,写代码基本上ctrl+c,ctrl+v,还是官方看到测试一下吧
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-15 23:54 , Processed in 0.069421 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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