大家好!
我现在用到看门狗,但是发现看门狗只能开,不能关。
而我的设备在待机的时候,会进入STOP模式,那样长时间不操作,看门狗就溢出复位了:(
请问这个该怎么处理?
谢谢。
STM32的独立看门狗,一旦启动就没办法关闭
你的问题有2种办法处理:
1)进入STOP模式前,喂一次狗,然后在狗没咬人之前,通过RTC唤醒CPU喂一次狗,这样不断重复。
2)进入STOP模式时停止LSI,唤醒后再恢复LSI。
第一个办法比较好,可以保证看门狗始终帮你看门。第二个办法的危险是,在唤醒CPU时,如果还未来得及恢复LSI,程序就跑飞了,你哭都来不及了。
恩,我试一下第2种方法吧。
51的看门狗都可以开关使能,这个有点……
“51的看门狗都可以开关使能”,你是否认为这是好的功能?
看门狗的作用是监视系统的运行,如果能够被关闭,如何能真正地起到监视系统的作用?不能真正起作用的看门狗,又有什么意义?
从技术上讲,看门狗的作用之一是为了在程序跑乱的情况下,可以复位系统并恢复其功能。如果看门狗能够被关闭,就意味着跑乱的程序有可能关闭看门狗,这样等于没有看门狗,而不能被关闭的看门狗则不会有这个问题。
51有此功能,并不能说明这是一个好的功能!
哦,谢谢香主的解释。
香主,好像启动了看门狗以后,就不能关闭LSI了:(
哈哈,我忽略了这一点
确实,如果LSI不能关闭,你唯一的选择就是使用2楼说的第2种方法了。
5楼引用的这个说明,再次印证了我在4楼说的理由,看门狗是不能被关闭的,不管以什么方式。