IWDG_Enable()函数多了一句

IWDG新更新的库函数,启动函数多了一条语句,导致直接复位,有哪位大神知道吗?

void IWDG_Enable(void)

{

    IWDG->CTLR = CTLR_KEY_Enable;

    while((RCC->RSTSCKR)|(0x2)!=SET);

}

红字为更新后出现的,注释掉就可以运行,而且看门狗可以正常运行.

批注 2024-04-09 164628.png

改成这样试一下。


您好,感谢你的反馈,例程库已修改,将或改成与即可,参考2楼回复。


可以了,谢谢


这个是明显BUG来的,估计写代码的加班太累了。


网上很久就有人反应这个问题了。


image.png这个while((RCC->RSTSCKR)|(0x2)!=SET);的本意就是等待时钟稳定,如果是|的话,他本身稳定了。置为1,这样|就发生了进位,导致bit1位一直是0,这样就永远陷入while循环,直至看门狗复位,所以会一直出现复位情况,正确的就应该是二楼的改为&


只有登录才能回复,可以选择微信账号登录