本人刚接触ST单片机,很多不明白的地方,,,打击到不行。
最近遇到问题,实在头痛,上来求助啦!!!
用ST-link仿真,在读写EEPROM时,可正常操作。。。
可把程序down到MCU里上电运行时,不能正常写EEPROM了(可以读出来。)。。。哭啊~~为什么啊!就是,当我有新数据需要存储时,没法写进去了,后来在写EEPROM程序里加了个点亮LED的动作,居然发现根本就没进入写EEPROM的程序段。。我再次深深的哭死。。。不过用ST-LINK仿真一直很正常啊。。可以写的。
"可把程序down到MCU里上电运行时,不能正常写EEPROM了",因为Debug时,调试已经对EEPROM进行了解锁,所以你的程序可以读写EEPROM,但是MCU自动上电运行时,没有进行解锁,所以你的程序中如果需要对EEPROM进行写操作,需要运行解锁代码,参考如下:
#define FLASH_RASS_KEY1 ((unsigned char)0x56) //First RASS key
#define FLASH_RASS_KEY2 ((unsigned char)0xAE) // Second RASS key
void EEPROM_Unlock(void)
{
FLASH_DUKR = FLASH_RASS_KEY2; // Warning: keys are reversed on data memory!
FLASH_DUKR = FLASH_RASS_KEY1;
}
额,今天上来发现有消息说俺没结贴。。。初次来这里,不知道规矩。。
问题早已经解决了,是俺自己的问题,不关STM8的事啊。。呵呵。
因为数据是由另外单片机发送的,存在两MCU上电同步问题(两MCU上电延时不同。。),在上电时两MCU都做了下小延时就正常了~~呵呵~~