while((FLASH_IAPSR&0x04)==0);会在写数据后在这个while中跳不出来,应该是FLASH_IAPSR第二位的原因,求助解决办法,感谢
这是找到的状态寄存器的位
~~~
[mw_shl_code=c,true]void eeprom_init(void)
{
FLASH_CR1=0x00;
FLASH_CR2=0x00;
FLASH_NCR2=0xFF;
FLASH_DUKR=0xae; //锁1密匙
FLASH_DUKR=0X56; //锁2密匙
while((FLASH_IAPSR&0x08)==0);
//等待解密就绪
}
//EEPROM指定地址写入一个数据
void eeprom_write(unsigned char addr, unsigned char dat)
{
unsigned char *p;
p=(unsigned char *)(0x4000+addr);
*p=dat;
while((FLASH_IAPSR&0x04)==0); //等待写操作成功
}
[/mw_shl_code]
一周热门 更多>