独立看门狗实验iwdg1

preview
需积分: 0 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系统中不可或缺的安全机制,通过合理的配置和适时的喂狗操作,可以有效防止系统因程序异常而陷入不可控状态。在实际项目中,根据具体应用场景调整预分频系数和重装载值,以及设置合适的喂狗策略,是确保系统稳定运行的关键。
身份认证 购VIP最低享 7 折!
30元优惠券
英次
  • 粉丝: 22
  • 资源: 306
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜

最新资源