flash做ppt的模板下载网站,如何搭建网站赚点击,投资公司名字,wordpress有赞在 STM32 的 独立看门狗#xff08;IWDG#xff09; 中#xff08;结合上文【STM32】独立看门狗#xff08;提供完整实例代码#xff09;#xff09;#xff0c;为了控制看门狗的超时时间#xff08;溢出时间#xff09;#xff0c;我们主要设置两个参数#xff1a;…在 STM32 的 独立看门狗IWDG 中结合上文【STM32】独立看门狗提供完整实例代码为了控制看门狗的超时时间溢出时间我们主要设置两个参数
名称控制寄存器控制函数作用预分频因子 PrescalerIWDG_PRIWDG_SetPrescaler() 决定看门狗时钟变慢多少倍重装载值 Reload ValueIWDG_RLRIWDG_SetReload()看门狗倒计时起始值越大超时越久
IWDG 超时时间计算公式
Tout ((4×2^prer) ×rlr) /40 M3)其中 PR预分频因子寄存器的值0~7 RL重装载寄存器中的值0~0x0FFF 40LSI 时钟频率为 40kHz 预分频因子Prescaler 设置位置 寄存器IWDG_PR 的位 [2:0] 函数IWDG_SetPrescaler(IWDG_Prescaler_xxx);
PR值分频因子实际频率Hz0/410,000 Hz1/85,000 Hz2/162,500 Hz3/321,250 Hz4/64625 Hz5/128312.5 Hz6/7/256156.25 Hz分频因子越大 → 看门狗时钟越慢 → 超时时间越长 重装载值Reload 设置位置 寄存器IWDG_RLR 的位 [11:0] 函数IWDG_SetReload(uint16_t value);
RL值含义0x0000最小计数最短时间0x0FFF最大计数最长时间实质上是“看门狗计数器初始值”倒计时到 0 就触发复位。 举个完整例子
设置
预分频因子 /256PR 6重装载值 40950x0FFF
Tout ((4 × 2^6) × 4095) / 40 (256 × 4095 × 4) / 40 419430 / 40 10485.75 ms ≈ 10.5 秒即如果程序 10.5 秒内不喂狗系统将自动复位。调节思路
想要超时长一点 增大 PR 或 RL
想要超时短一点 减小 PR 或 RL注意事项
写保护机制 修改 PR 和 RL 之前必须执行
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);最大 RL 0x0FFF4095修改时需等待状态寄存器清除
while(IWDG_GetFlagStatus(IWDG_FLAG_PVU) ! RESET);
while(IWDG_GetFlagStatus(IWDG_FLAG_RVU) ! RESET);简化时序
LSI 40kHz --[预分频PR]-- 低速时钟 --[倒计时从RL开始]-- 到0触发复位预分频因子决定“计数器走得多慢”重装载值决定“从多少开始倒计时”两者共同决定看门狗的超时时间。
以上欢迎有从事同行业的电子信息工程、互联网通信、嵌入式开发的朋友共同探讨与提问我可以提供实战演示或模板库。希望内容能够对你产生帮助