金牌会员
 
- 积分
- 1289
- 金钱
- 1289
- 注册时间
- 2014-6-15
- 在线时间
- 143 小时
|
1金钱
本帖最后由 wang12zhe 于 2016-1-15 16:38 编辑
在往常看到有关于STM32软件复位的帖子,自己尝试了以下
我在程序中增加如下代码:
void SoftReset(void)
{
__set_FAULTMASK(1); // 关闭所有中端
NVIC_SystemReset();// 复位
}
发现,在仿真状态下能正常复位并继续运行,然后在复位,如此循环。
但是退出仿真状态度, 程序卡死, 没有反复复位
重新上电,程序又会卡死, 没有反复复位
这是咋回事??
我使用同一个批次的两块电路板,
发现一块在仿真状态下可以复位,
另一块在仿真状态下,字节卡死,卡死在
__STATIC_INLINE void NVIC_SystemReset(void)
{
__DSB(); /* Ensure all outstanding memory accesses included
buffered write are completed before reset */
SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) |
(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */
__DSB(); /* Ensure completion of memory access */
while(1); /* wait until reset */
}
函数的
while(1); 这一句这里
有遇到这样情况的吗?
|
|