找回密码
 立即注册
查看: 2021|回复: 23

STC8H2K17和STC8H1K28的EEPROM不一样吗

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

积分
327
发表于 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


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

积分
327
发表于 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;
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

积分
327
发表于 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;
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-16 09:44:50
已绑定手机

14

主题

1312

回帖

3298

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-16 09:44:50
已绑定手机

14

主题

1312

回帖

3298

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-06-16 05:10:27
已绑定手机

17

主题

714

回帖

1241

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2025-06-16 07:41:42

8

主题

106

回帖

327

积分

中级会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 12:34 , Processed in 0.132412 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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