STM32F105RBT6开禁止读取flash,软复位看门狗复位都会引发HardFault_handler中断,关闭禁止读取flash则能正常复位,求教问题及解决原因。
程序如下:
flash锁定程序:
if(FLASH_GetReadOutProtec
tionStatus()!=SET)
{
FLASH_Unlock();
FLASH_ReadOutProtection(ENABLE);
}
软复位程序
NVIC_SystemReset(); // 软复位系统
喂狗程序
void IWDG_ReloadCounter(void)
{
IWDG->KR = KR_KEY_Reload;
}
猜测:锁flash和软复位不能同时用?
__set_FAULTMASK(1);
NVIC_SystemReset();
// __set_FAULTMASK(1); 是关闭所有中断的意思,
//目的是在执行NVIC_SystemReset();
//复位函数过程中不被中断所打断。
看看软复位能否正常。
NVIC_SystemReset()调用后跳到HardFault_Handler()的处理办法:
http://bbs.21ic.com/icview-780542-1-1.html
STM32进入HardFault_Handler处理办法:
http://blog.csdn.net/u012075442/article/details/50931354
一周热门 更多>