完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
●看门狗的意义
1、 c语言的执行过程 在单片机中,c程序从地址0开始按照规律一直向下执行,其中PC指针指示当前代码执行的地址。以STM32F407来说,代码在向下执行的过程中,PC指针一直顺着内存地址移动。在执行到main函数的最后一句时,如果没有特殊情况,PC指针还是会持续移动,直到4GB-1Z地址处,最终PC指针又回到0地址循环移动。因此你会看到很多代码的main函数最后一句时一个while死循环!!!PC指针最终停留在你的死循环位置,这样代码就不会从头开始循环执行,也就不会产生复位! 2、 看门狗 狗这种东西就是在有特殊情况的时候狂叫不止,产生报警行为。在单片机中看门狗的功能类似,不过这种狗只会在它饿的时候产生报警(这里的报警一般是复位)。看门狗实质是一个倒数的计数器,如果它数到0,那么就会产生复位!我们在初始化看门狗的时候可以给它一个初始的计数值,使能看门狗之后它就开始倒数,至于什么时候会数到零和你的初始化有关系。例如我们配置一个看门狗3s之后会数到零,那么为了不让它复位,你必须在比3s短的时间内喂狗(重新给它一个计数值就可以了,它会按你给的计数值重新倒数)。 到此可以知道看门狗的工作原理就是:初始化一个技术值,在它归零之前进行喂狗。既然看门狗一直在工作,那么你就必须一直喂它(就是家里的狗,一日三餐,少一顿它就开始卖萌了^_^)。 假设我们配置看门狗3s就会计数到零,我们做一个死循环每隔2s喂一次,那这条狗就不会饿了。但是单片机在执行的时候可能会程序跑飞,也就是说代码不按照你写的规矩走,那么你的喂狗程序也就不能执行了,这时3s一过狗就饿了,也就会产生复位操作。由此可以知道看门狗的功能了,只要你配置正确,按时喂狗,那么它只有在程序跑飞的时候才会产生复位。一般大型的项目都会用到看门狗,一旦机器本身出了问题,那么就可以立马复位,而不会造成死机。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:17 , Processed in 0.668251 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号