独立看门狗实验iwdg1
需积分: 0 34 浏览量
更新于2022-08-03
收藏 495KB PDF 举报
在STM32微控制器中,独立看门狗(Independent Watchdog,简称IWDG)是一种重要的安全机制,用于防止程序因异常或外部干扰导致的运行错误。它是一个独立于主系统时钟的计数器,由内部的低速时钟(Low Speed Internal,LSI)驱动,通常为32kHz的RC振荡器,但实际频率可能在15kHz到47kHz之间波动。一旦IWDG计数器达到预设的重装载值且未收到喂狗信号,MCU将自动复位,确保系统的稳定运行。
在STM32F429中,IWDG的配置主要包括以下几个步骤:
1. **取消寄存器写保护**:在使用IWDG之前,需要取消IWDG_PR和IWDG_RLR寄存器的写保护。在HAL库中,这通常通过调用`HAL_IWDG_Init()`函数完成。该函数会初始化预分频系数(PR)和重装载值(RLR),这两个参数决定了看门狗的溢出时间。
2. **设置预分频系数和重装载值**:预分频系数决定了LSI时钟与IWDG计数器之间的关系,而重装载值是计数器清零并触发复位前允许的最大计数值。例如,设置PR为4(对应64分频)和RLR为500,那么溢出时间为1s(Tout = (64 * 500) / 32 = 1000ms)。在实际应用中,应根据系统需求选择合适的溢出时间,确保在溢出前有足够的时间进行喂狗操作。
3. **喂狗操作**:喂狗是通过向IWDG_KR寄存器写入特定值(0xAAAA)来实现的,这会重置计数器,防止其达到0x000并触发复位。在HAL库中,可以使用`HAL_IWDG_Refresh()`函数完成这个操作。
4. **启动看门狗**:`HAL_IWDG_Init()`函数在初始化时会自动启动看门狗,因此通常无需额外的启动步骤。
在实验中,PB2管脚被配置为下拉输入模式,用于检测按键输入。当按键按下时,PB2变为高电平,作为喂狗信号。而PF14管脚被配置为推挽输出模式,用于显示系统是否处于正常工作状态或者已被看门狗复位。
在CubeMX配置中,需要设置IWDG的时钟源、预分频系数和重装载值。生成Keil工程后,在主函数中添加相应的喂狗代码,确保在溢出时间(例如8s)内,根据PB2的输入状态定期执行`HAL_IWDG_Refresh()`函数,以防止看门狗触发复位。
独立看门狗IWDG是STM32系统中不可或缺的安全机制,通过合理的配置和适时的喂狗操作,可以有效防止系统因程序异常而陷入不可控状态。在实际项目中,根据具体应用场景调整预分频系数和重装载值,以及设置合适的喂狗策略,是确保系统稳定运行的关键。
![avatar](https://profile-avatar.csdnimg.cn/bdd32d90db7a42be8052df96f6d132e5_weixin_35735663.jpg!1)
英次
- 粉丝: 22
- 资源: 306
最新资源
- OPCDA转OPCUA转换工具:实现DA Server数据双向转换至UA Server的软件解决方案,OPCDA转OPCUA转换工具:实现DA Server数据与UA Server双向传输功能,OPC
- 基于Simulink的四永磁同步电机偏差耦合转速同步控制仿真模型研究与应用,Simulink上的四永磁同步电机偏差耦合转速同步控制仿真模型研究,simulink上搭建的四永磁同步电机偏差耦合转速同步控
- 纯电动汽车Simulink仿真模型建模详解:步骤指南与操作技巧,附带完整模型及参考设计能力的提升,纯电动汽车Simulink仿真模型建模详解:步骤指南与附带模型,助力提升建模能力与思路借鉴,纯电动汽车
- 永磁同步电机PMSM谐波注入降低转矩脉动技术研究与实践:文献复现及优化控制策略,永磁同步电机PMSM的5-7次谐波注入与转矩脉动抑制研究:文献复现与实践探讨,永磁同步电机PMSM电机5 -7次谐波注入
- Xilinx FPGA千兆以太网通信与DDR内存读写测试工程代码:基于KCU105与KC705平台的10/100/1000Mbps LWIP协议实现及DDR4内存读写性能测试,基于KCU105和KC7
- 基于Python和HTML的学生就业画像分析后端设计源码
- Dugoff轮胎模型的验证与对比分析:基于MATLAB 2018与CarSim 2020.0的仿真研究,MATLAB CarSim中的Dugoff轮胎模型仿真验证:高附路面不同速度下模型与真实情况对比
- DS18B20温度传感器.zip 51单片机代码
- 基于Java语言的艾斯医药系统自动搜索功能设计源码
- 基于Vue框架的留学项目管理与管理系统设计源码
- 基于HTML+CSS的纯静态豆瓣首页开源设计源码
- 基于C++ Primer Plus的深入C++教材学习与源码分析
- 基于HTML+CSS+JavaScript的临沂市新能源协会前端页面设计源码
- 断网急救箱python源码
- 基于Python与多语言结合的科研文献工作流设计源码
- 51单片机LED从左到右流水灯实验详解-STC89C52RC晶振与Keil编程入门