STM32F10X系列看门狗与寄存器详解:独立与窗口实现与操作

需积分: 1 0 下载量 27 浏览量 更新于2024-08-30 收藏 765KB DOCX 举报
本文档详细介绍了STM32F10X系列中的看门狗模块,特别是独立看门狗(IWDG)和窗口看门狗(WWDG)的工作原理、特性以及在STM32F103系列芯片中的应用。作者参考了"正点原子"教材和STM32中文参考手册,旨在帮助学习者理解和记忆这两个看门狗的相关知识。 首先,STM32F10XXX系列内置了两个看门狗,它们提供了一种安全机制,用于检测和修复由于软件错误可能导致的系统故障。IWDG基于独立的低速时钟(LSI),即使主时钟失效也能保持工作,适合对时间精度要求不高的场景,例如作为主程序外独立工作的守护进程。而WWDG则通过APB1时钟分频驱动,能够实现精确计时窗口的监视,适用于需要精确时间控制的应用。 独立看门狗IWDG的核心是自由运行的递减计数器,由独立的RC振荡器供电,在停机和待机模式下也能正常工作。启动IWDG并设置超时可以通过写入特定值到键寄存器IWDG_KR进行,计数器从复位值0xFFF开始递减,当计数器清零时触发复位。为了避免意外的复位,可以使用IWDG_RLR寄存器重载功能。IWDG的相关寄存器包括键值寄存器、预分频寄存器、重装载寄存器和状态寄存器,它们各自有特定的功能和权限管理。 计算IWDG的超时时间非常重要,公式为 Tout = ((4×2^prer)×rlr)/40,其中prer表示预分频寄存器值,rlr为重装载寄存器值,LSI时钟频率为40KHz。最长超时时间等于IWDG_RLR的最大值乘以单个看门狗时钟周期。 此外,文档还提到了取消写保护的操作函数IWDG_WriteAccessCmd,这对于设置和配置IWDG寄存器时确保正确性至关重要。 本文档为STM32F10X系列的开发人员提供了全面的IWDG和WWDG寄存器操作指南,对于理解和应用这些功能在实际项目中具有很高的实用价值。通过阅读和理解这些内容,开发者能够更好地利用看门狗功能提升系统的可靠性和稳定性。