完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
之前只用过简单的看门狗,窗口看门狗简单看过一次没有看明白,这一次算是补课了。窗口看门狗的机理其实是很简单的,所谓的窗口其实是一个计数器的区间范围。这个计数器是一个自动递减的计数器,窗口则限定了喂狗的数值上限和下限。不在此范围内进行喂狗,或者没有喂狗,都会导致系统的复位。除了这些功能以外,还有一个中断,当复位产生的时候会进入到中断,如果进入到中断之后还可以进行喂狗,但是之前使用的喂狗方式则不奏效了。
我使用的IDE中,这部分信息给整理的很简单了。以下是可配置的信息: 上面的信息中,还有一个PCLK的信息需要确认,这个从IDE中也能够很方便获取。相应的信息如下: 结合手册中的信息,更容易理解: 配置完成之后,首先测试不喂狗的情况,这个肯定会导致复位。测试效果如下: 之后,不再输出。 按照我的配置,简单的计算可以得出喂狗的最小时间和最大时间: counter_min = 127 - 120counter_max = 127 - 63# unit is secondtime_base_min = (4096.0 * 2 ** 8) / 42000000time_base_max = (4096.0 * 2 ** 8) / 42000000# unit is mstime_out_min = time_base_min * 1 * 1000time_out_max = time_base_max * counter_max * 1000#print(counter_min, counter_max)#print(time_base_min, time_base_max)print(time_out_min)print(time_out_max) 计算结果: 也就是,喂狗时间不能够快于5.46ms,也不能够慢于49.15ms。接下来,测试一下20ms喂狗。 从效果看,程序不再跑飞。 再测试一下1ms的喂狗,这个应该会导致跑飞。 从效果看,软件是跑飞了。 再测试一下100ms,应该也是跑飞。测试了一下居然是不跑飞,可能我的时钟配置有点问题了。暂且不去计较了,先弄清楚这个窗口看门狗的模型再说。我直接测试一个200ms。 这次是跑飞了,虽说是跟我的理论计算数据不同,但是还是可以辅助理解。我猜测可能是我时钟源选择有点问题,印象中没有配置过晶振,是否是这个地方默认不是8M外部晶振导致呢? |
|
|
|
只有小组成员才能发言,加入小组>>
调试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 02:55 , Processed in 0.633161 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号