如题,加上读写flash程序后,重新上电后无法启动,是为什么?
将加入的代码屏蔽后,恢复正常(重新上电后可重新启动)。
写入的地址是(0x800200+cnt*2)。
芯片为stm32f105RCT6 .
不知道是为什么
加入的flash写入代码如下,求大虾解答。。
[mw_shl_code=c,true] RCC_HSICmd(ENABLE);
//解锁 FLASH 控制块//
FLASH_Unlock(); //解锁FLASH编写擦除控制器。
// 清除一些标志位 //
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
// 擦除起始地址为 0x8002000 的 FLASH 页 //
FLASH_ErasePage(0x8002000);//擦除一个FLASH页面,输入为指定擦除页的地址。返回擦除操作状态。
// 从 0x8002000 地址开始连续向 FLASH 写入 size 个 半字宽度(16位)数据 //
cnt=0;
do
{
FLASH_ProgramHalfWord((0x8002000 + cnt * 2), (u16)Ip[cnt]); //在指定地址编写半字(16位)。参数为待写入的地址和数据。
cnt++;
}while(cnt <= Uart_Len);
GPIO_SetBits(GPIOA,GPIO_Pin_0); //标志LED0
//锁定 FLASH 控制块//
FLASH_Lock(); //锁定FLASH编写擦除控制器。
GPIO_SetBits(GPIOA,GPIO_Pin_0); //标志LED0 */[/mw_shl_code]
|