本帖最后由 yurulin 于 2011-1-12 01:19 编辑
用了1个来月的STM8; 几乎每用一个新功能都要被卡个一两天, (害得我现在一想到要用个新功能, 不由的怕起来了)
今天用了个新功能 EEPROM写入; 我很慎重!! 先在网络上搜索了前辈们的经验, 发现既然密匙方向反了,有前辈被卡的,我躲过一劫了; 开始写了测试程序. 试运行结果,还是卡我,郁闷! 是我**属卡吧! 沉闷一会后,在写入密匙后插入一条延时程序,再读FLASH_DUL; 试运行--通过了! (不知道哪位前辈有插入这样的延时, 还好我脑子哪条筋让我插入这个延时,不然又要卡个几天; 最终程序还是留下了个遗憾FLASH_IAPSR_EOP就是不会为1,最后只好删除这条指令)
void eepromxieru(void)
{
uint8 b;
uint8 *p=(uint8 *)0x4000;
FLASH_DUKR = 0xAE; //解锁写保护
FLASH_DUKR = 0x56;
for(b=0;b<10;b++); //延时
if( (FLASH_IAPSR&0x08)!=0 )//写保护解除
{
for(b=0;b<(retainnum<<1);b++)
{
*(p+b)=retain;
//while( (FLASH_IAPSR&0x04)==0 );//这条指令通不过,只好删除
}
}
} |