完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
1. 窗口看门狗简介
窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位(WWDG-》CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。在递减计数器达到窗口配置寄存器(WWDG-》CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个 MCU 复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。他们的关系可以用图 12.1.1 来说明: 图 12.1.1 中,T[6:0]就是 WWDG_CR 的低七位,W[6:0]即是 WWDG-》CFR 的低七位。T[6:0]就是窗口看门狗的计数器,而 W[6:0]则是窗口看门狗的上窗口,下窗口值是固定的(0X40)。当窗口看门狗的计数器在上窗口值之外被刷新,或者低于下窗口值都会产生复位。 上窗口值(W[6:0])是由用户自己设定的,根据实际要求来设计窗口值,但是一定要确保窗口值大于 0X40,否则窗口就不存在了。 窗口看门狗的超时公式如下: 其中: Twwdg:WWDG 超时时间(单位为 ms) Fpclk1:APB1 的时钟频率(单位为 Khz) WDGTB:WWDG 的预分频系数 T[5:0]:窗口看门狗的计数器低 6 位 2. 硬件设计 本实验用到的硬件资源有: 1) 指示灯 DS0 和 DS1 2) 窗口看门狗 窗口看门狗属于 STM32F4 的内部资源,只需要软件设置好即可正常工作。 3. 编程步骤 1) 使能 WWDG 时钟 WWDG 不同于 IWDG,IWDG 有自己独立的 32Khz 时钟,不存在使能问题。而 WWDG使用的是 PCLK1 的时钟,需要先使能时钟。 2) 设置窗口值和分频数 设置窗口值的函数是: 这个函数就一个入口参数为窗口值,很容易理解。 设置分频数的函数是: 这个函数同样只有一个入口参数就是分频值。 3) 开启 WWDG 中断并分组 开启 WWDG 中断的函数为: 接下来是进行中断优先级配置,这里就不重复了,使用 NVIC_Init()函数即可。 4) 设置计数器初始值并使能看门狗 这一步在库函数里面是通过一个函数实现的: 该函数既设置了计数器初始值,同时使能了窗口看门狗。 这里还需要说明一下,库函数还提供了一个独立的设置计数器值的函数为: 5) 编写中断服务函数 在最后,还是要编写窗口看门狗的中断服务函数,通过该函数来喂狗,喂狗要快,否则当窗口看门狗计数器值减到 0X3F 的时候,就会引起软复位了。在中断服务函数里面也要将状态寄存器的 EWIF 位清空。 4. 程序示例 wwdg.h wwdg.c main.c 5. 测试结果 可以看到 DS0 亮一下之后熄灭,紧接着 DS1 开始不停的闪烁。每秒钟闪烁 20 次左右。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1957 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1740 浏览 1 评论
1209 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
800 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1765 浏览 2 评论
2010浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
860浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
303浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
653浏览 3评论
654浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-13 03:19 , Processed in 0.621656 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191