今天在试验官方例程读写FLASH时,发现当FLASH为0xff时,读写正常,再次对同一地址读写时,程序死在校验循环里(此时该FLASH地址内容为非0XFF),哪位大侠遇到这种情况,请指点一下,万分感谢!
int32_t main(void)
{
uint32_t u32Addr = 0xff00;
uint8_t u8TestData = 0x5a;
///< 确保初始化正确执行后方能进行FLASH编程操作,FLASH初始化(编程时间,休眠模式配置)
while(Ok != Flash_Init(1, TRUE))
{
;
}
///< FLASH目标扇区擦除
while(Ok != Flash_SectorErase(u32Addr))
{
;
}
for (u32Addr=0xFF00; u32Addr<0x10000; u32Addr++)
{
///< FLASH 字节写、校验
if (Ok == Flash_WriteByte(u32Addr, u8TestData))
{
while(*((volatile uint8_t*)u32Addr) != u8TestData) ///< 如果写入的数据不对,在此处死循环
{
;
}
}
}
while (1);
} |