1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F105RBT6开禁止读取flash,软复位看门狗复位都会引发HardFault_handler中断,关闭禁止读取flash则能正常复位,求教问题及解决原因。
程序如下: flash锁定程序: if(FLASH_GetReadOutProtectionStatus()!=SET) { FLASH_Unlock(); FLASH_ReadOutProtection(ENABLE); } 软复位程序 NVIC_SystemReset(); // 软复位系统 喂狗程序 void IWDG_ReloadCounter(void) { IWDG->KR = KR_KEY_Reload; } 猜测:锁flash和软复位不能同时用? |
|
相关推荐
8个回答
|
|
另外说一句,看门狗和读保护,都是在程序调试没问题后才开启的。
|
|
|
|
谢谢回帖。软复位后,判断flash是否锁定之前的程序可以运行,之后的程序不能运行。
|
|
|
|
本帖最后由 无薪税绵 于 2018-3-1 17:14 编辑
这是 stm32 的设计问题。 使用 @toofree 大神的代码,是没有问题的。 参考文章:使用STM32 ST-LINK Utility 设置读保护后不能运行 http://blog.csdn.net/dddxxxx/article/details/52194376 这里还有一篇文章:STM32 读保护功能和清除读保护功能设置 https://wenku.baidu.com/view/e086f59dc8d376eeafaa3116.html |
|
|
|
谢谢大神回复,断掉电源,从新上电问题没有解决! |
|
|
|
你试试,在软复位前加入:
__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 |
|
|
|
|
|
|
|
感谢回复!程序莫名奇妙的好使了,我在测试,看看能不能找到问题,发现问题我在回帖把问题原因写出来。 |
|
|
|
感谢回复!程序莫名奇妙的好使了,我在测试,看看能不能找到问题,发现问题我再回帖把问题原因写出来。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2105 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1941 浏览 3 评论
4537 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2084 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2599 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:29 , Processed in 0.812179 second(s), Total 85, Slave 69 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号