完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
HAL库STM32独立开门狗(IWDG)使用详解
看门狗介绍 介绍:看门狗其实就是一个定时器,给他设置一个定时值,它会逐渐递减,递减到0后就会进行芯片复位,在看门狗定时器还没到达0时重新给他赋值的这个操作就叫喂狗。其实不管是单片机这样,大多数带看门狗的芯片实现都是这样的。 作用:防止程序发生死循环,或者程序跑飞。 STM32看门狗介绍 STM32包含两种开门狗: 窗口看门狗(WWDG) 独立开门狗(IWDG) 两者区别是窗口开门狗如果超时没有喂狗是触发中断,而独立开门狗是直接进行芯片复位。 时钟来源: 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。 窗口看门狗(WWDG)由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 使用场合: IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。 IWDG功能描述: 在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗,此时计数器开始从其复位值 0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。 无论何时,只要在键寄存器IWDG_KR中写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器,从而避免产生看门狗复位。 IWDG_PR和IWDG_RLR寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。以不同的值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。重装载操作(即写入0xAAAA)也会启动写保护功能。 状态寄存器指示预分频值和递减计数器是否正在被更新。 IWDG超时时间: F1系列: F4系列: 由表可知,F1系列LSI给看门狗的时钟频率是40KHz,F4系列是32KHz。 超时时间计算公式: 超时时间Tout = 4 * 2^PR * (重载值 + 1) / LSI 重载值取值范围:0~4095 以F1为例,4分频时所对应的PR位为0,重载值为0时是最短的超时时间,套用公式后: 4 * 2 ^ 0 * (0 + 1) / 40000HZ = 0.0001s = 0.1ms 当重载值为4095时是最大超时时间,套用公式: 4 * 2 ^ 0 (4095 + 1) / 40000HZ = 0.4096s = 409.6ms STM32Cube配置设置 以F1为例,开启看门狗: 配置时钟: 然后生成代码就可以了。 注意: 生成的IWDG初始化函数MX_IWDG_Init已经将看门狗启动了,如果不想这么早启动看门狗,可以将MX_IWDG_Init往后放。 喂狗函数:HAL_IWDG_Refresh(&hiwdg); END… |
|
|
|
只有小组成员才能发言,加入小组>>
2496 浏览 0 评论
1059浏览 2评论
678浏览 1评论
440浏览 0评论
175浏览 0评论
292浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:41 , Processed in 1.384450 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号