[MCU] 晕了,STM8S读取EEPROM时,偏移了3个字节,这是什么鬼呀

[复制链接]
 楼主| kuheye 发表于 2020-7-28 22:50 | 显示全部楼层 |阅读模式
使用STM8S207CBT6
定义EEPROM,如下:
//红色
#pragma location=0x4000
__root const char EePwmR0 = 0;
#pragma location=0x4001
__root const char EePwmG0 = 1;
#pragma location=0x4002
__root const char EePwmB0 = 2;
#pragma location=0x4003
__root const char EePwmStep0 = 3;//过渡时间=20*400us*256=2.048s
#pragma location=0x4004
__root const char EePwmKeep0H = 4;//保持时间10s
#pragma location=0x4005
__root const char EePwmKeep0L = 5;//保持时间10s

程序中,读取EEPROM的代码如下:
  PwmNewR = *(unsigned long*)0x4000;
  PwmNewG = *(unsigned long*)0x4001;
  PwmNewB = *(unsigned long*)0x4002;
  PwmStep = *(unsigned long*)0x4003;
  PwmKeep = *(unsigned long*)0x4004;
  PwmKeep<<=8;
  PwmKeep |= *(unsigned long*)0x004005;

仿真时,得到的数据,偏偏无法读取前面3个字节,本来是从0x4000开始读取,结果是从0x4003开始读取的
不知道撞什么鬼,
按说从0x4000开始读取,得到的结果应该是:0x00,0x01,0x02...
而实际仿真的结果是0x03,0x04,0x05...
仿真时可以看到EEPROM定义的数据没错,就是读不出来,
不会贴图
 楼主| kuheye 发表于 2020-7-28 22:58 | 显示全部楼层

如上图,读取的数据,偏移了3 个字节

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
xyz549040622 发表于 2020-7-29 07:58 来自手机 | 显示全部楼层
STM8的eepROM用过,没出现你说的问题,建议你用串口输出,不要在线debug再试试。
ayb_ice 发表于 2020-7-29 08:24 | 显示全部楼层
kuheye 发表于 2020-7-28 22:58
如上图,读取的数据,偏移了3 个字节

应该是*(unsigned char*)吧
 楼主| kuheye 发表于 2020-7-29 10:30 | 显示全部楼层
ayb_ice 发表于 2020-7-29 08:24
应该是*(unsigned char*)吧

应该是这个问题,拷贝以前的代码,不小心,没有将long更改为char
改正后,仿真通过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

88

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部