大家好!我在使用STM8S时遇到一个问题,具体如下:
#define EEPROM_BASE 0x4000
#define RD_EEPROM(addr) (*((uchar*)(EEPROM_BASE+addr)))
ulong rPA_Max; // 全局变量
uchar addr; // 局部变量
addr = 0x05; // 这个偏移地址是用来存放rPA_Max的第一个地址
rPA_Max = RD_EEPROM(addr++)*65536;
rPA_Max = rPA_Max + RD_EEPROM(addr++)*256;
rPA_Max = rPA_Max + RD_EEPROM(addr++);
EEPROM里面的值01(addr=0x05),86(addr=0x06),A0(addr=0x07),也就是rPA_Max=0x186A0=100000。而我读出来的数据为34464(34464=100000-65536)? |