我是靠谱客的博主 热心鞋垫,最近开发中收集的这篇文章主要介绍STM 32 窗口看门狗,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

窗口看门狗:
之所以称为窗口是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。
独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。

窗口看门狗框图:

这里写图片描述

在图中,我们可以观察到,有两种情况可以导致系统复位。第一种情况就是,当计数器的值大于配置寄存器设置的窗口上限值时进行了喂狗操作;第二种情况就是,看门狗控制寄存器的T6位变成了低电平(也就是计数值由0x40变为了0x3F)

窗口看门狗工作示意图:

这里写图片描述

另外,如果开启了看门狗并且允许了中断,当计数器等于0x40时产生早起唤醒中断EWI,它可以用于喂狗以避免WWDG复位。

窗口看门狗超时时间的计算:

这里写图片描述

这里写图片描述

(窗口看门狗其他注意事项:)
1. 上窗口值W[6:0]必须大于下窗口值0x40。否则就无窗口了。
2. 窗口看门狗时钟来源PCLK1(APB1总线时钟)分频后。

接下来介绍对应的寄存器:

1.控制寄存器WWDG_CR

这里写图片描述

2.配置寄存器WWDG_CFR

这里写图片描述

3.状态寄存器WWDG_SR

这里写图片描述

WWDG操作的HAL库函数:
1. HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);
2. void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg);
3. HAL_StatusTypeDef HAL_WWDG_Start(WWDG_HandleTypeDef *hwwdg);
4. HAL_StatusTypeDef HAL_WWDG_Start_IT(WWDG_HandleTypeDef *hwwdg);
5. HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg);
6. void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg);
7. void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg);

窗口看门狗配置过程:

1.使能窗口看门狗时钟:在HAL_WWDG_MspInit函数中。
2.初始化窗口看门狗:设置分频系数,窗口值,计数值等。
HAL_WWDG_Init(); 该函数还可以使能窗口看门狗提前唤醒中断 。
3.设置提前唤醒中断优先级:HAL_WWDG_MspInit
4.编写提前唤醒中断处理函数: HAL_WWDG_EarlyWakeupCallback();
喂狗: HAL_WWDG_Refresh();

例程:

WWDG_HandleTypeDef WWDG_Handler;

void WWDG_Init(u8 tr,u8 wr,u32 fprer)
{
WWDG_Handler.Instance=WWDG;
WWDG_Handler.Init.Prescaler=fprer; 
WWDG_Handler.Init.Window=wr;

WWDG_Handler.Init.Counter=tr;

WWDG_Handler.Init.EWIMode=WWDG_EWI_ENABLE ;
HAL_WWDG_Init(&WWDG_Handler);

}
void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg)
{
HAL_RCC_WWDG_CLK_ENABLE();

HAL_NVIC_SetPriority(WWDG_IRQn,2,3);

HAL_NVIC_EnableIRQ(WWDG_IRQn);

}
void WWDG_IRQHandler(void)
{
HAL_WWDG_IRQHandler(&WWDG_Handler);
}
void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg)
{
HAL_WWDG_Refresh(&WWDG_Handler);
LED1_Toggle; 
}

最后

以上就是热心鞋垫为你收集整理的STM 32 窗口看门狗的全部内容,希望文章能够帮你解决STM 32 窗口看门狗所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部