完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
看门狗:本质上可以看成是一个定时器电路,一般就是分为输入和输出两部分,输入我们俗称“喂狗”,输出可以直接理解为复位,或者大家熟悉的重启。
使用看门狗时,当MCU正常工作时,我们就会定期喂狗,如果超过预先设置好的时间没有喂狗,看门狗电路没有及时清零,就会跳转到我们所谓的输出部分,也就是回馈一个复位信号给MCU,复位MCU。 主要是用于防止程序跑飞,或者MCU死机。(重启大法好) 基本工作原理:在系统运行之后启动看门狗的计数器,看门狗开始自动计数,如果到达预先设置好的时间还没有及时重新赋值,那么看门狗的计数器就会溢出,引起看门狗中断,导致系统复位。 stm32 独立看门狗的配置流程: 1.取消寄存器写保护: IWDG_WriteAccessCmd(); 2.设置独立看门狗的预分频系数,确定时钟: IWDG_SetPrescaler(); 3.设置看门狗重装载值,确定溢出时间: IWDG_SetReload(); 4. 使能看门狗 IWDG_Enable(); 5. 应用程序喂狗: IWDG_ReloadCounter(); 溢出时间计算: Tout=((4×2^prer) ×rlr) /40 (M3) 其中 : Tout 为看门狗溢出时间(单位为 ms); prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7; rlr 为看门狗的重装载值(IWDG_RLR 的值); 窗口看门狗由从APB1时钟分频后得到时钟驱动。通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。 stm32 窗口看门狗配置步骤: 1.使能看门狗时钟: RCC_APB1PeriphClockCmd(); 2.设置分频系数: WWDG_SetPrescaler(); 3.设置上窗口值: WWDG_SetWindowValue(); 4.开启提前唤醒中断并分组(可选): WWDG_EnableIT(); NVIC_Init(); 5.使能看门狗: WWDG_Enable(); 6.喂狗: WWDG_SetCounter(); 7.编写中断服务函数 WWDG_IRQHandler(); 窗口看门狗的超时公式如下: Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1; 其中: Twwdg: WWDG 超时时间(单位为 ms) Fpclk1: APB1 的时钟频率(单位为 Khz) WDGTB: WWDG 的预分频系数 T[5:0]:窗口看门狗的计数器低 6 位。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1932 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1705 浏览 1 评论
1185 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
785 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1750 浏览 2 评论
1992浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
827浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
279浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
637浏览 3评论
644浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-2 18:15 , Processed in 0.797868 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号