STM32
登录
直播中
话多显蠢
9年用户
848经验值
擅长:479461
私信
关注
[问答]
使用窗口看门狗有哪些注意事项
开启该帖子的消息推送
STM
寄存器
窗口看门狗是如何工作的?
如何去计算窗口看门狗的超时时间?
使用窗口看门狗有哪些注意事项?
回帖
(1)
吕聪
2021-9-23 11:24:06
窗口看门狗:
之所以称为窗口是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。
而独立看门狗限制喂狗时间在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;
}
窗口看门狗:
之所以称为窗口是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。
而独立看门狗限制喂狗时间在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;
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM
寄存器
为什么要
窗口
看门狗
?
窗口
看门狗
有
哪些
注意事项
2021-07-30
1407
STM32独立
看门狗
与
窗口
看门狗
相关知识概述
2021-09-09
1888
如何去使用STM32的
窗口
看门狗
2021-09-15
799
看门狗
和复位IC同时存在的
注意事项
有
哪些?
2021-07-23
1032
如何去使用STM32的
窗口
看门狗
WWDG呢
2021-09-14
1229
看门狗
的基本原理及使用
注意事项
2021-02-04
4172
有关STM32
窗口
看门狗
的相关知识介绍
2021-09-10
1849
如何设置独立
看门狗
的超时时间?
有
哪些
注意事项
?
2022-01-18
664
请问ATmega88
看门狗
的
注意事项
有
哪些?
2020-11-06
1608
独立
看门狗
与
窗口
看门狗
概述
2021-09-26
1294
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分