STM32——WWDG(窗口看门狗)

ops/2024/9/23 6:36:21/

技术笔记!

1.WWDG(窗口看门狗)简介

本质:能产生系统复位信号提前唤醒中断的计数器。

特性:

递减的计数器;
当递减计数器值从 0x40减到0x3F时复位(即T6位跳变到0);
计数器的值大于W[6:0]值时喂狗会复位;
提前唤醒中断 (EWI):当递减计数器等于 0x40 时可产生;

喂狗:在窗口期内重装载计数器的值,防止复位。

作用:软件异常,精准时间把控

2.  WWDG工作原理(掌握)

3.  WWDG框图

4.  WWDG寄存器(熟悉)

4.1  控制寄存器(WWDG_CR)

4.2  配置寄存器(WWDG_CFR)

4.3  状态寄存器(WWDG_SR)

5.  WWDG超时时间计算(掌握)

6.  WWDG配置步骤(掌握)

7.  相关HAL库函数

8.  IWDG和WWDG主要的区别

9.  窗口看门狗实验

wdg.c

WWDG_HandleTypeDef g_wwdg_handle;                           //句柄/* WWDG初始化函数 */
void wwdg_init(uint8_t tr, uint8_t wr, uint16_t prep)
{g_wwdg_handle.Instance = WWDG;                           //基地址g_wwdg_handle.Init.Counter = tr;                         //计数值g_wwdg_handle.Init.Window = wr;                         //窗口值g_wwdg_handle.Init.Prescaler = prep;                    //预分频系数g_wwdg_handle.Init.EWIMode = WWDG_EWI_ENABLE;           //提前中断使能}/*msp回调函数*/
void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg)
{__HAL_RCC_WWDG_CLK_ENABLE();            //WWDG使能HAL_NVIC_SetPriority(WWDG_IRQn, 2, 3);        //中断优先级HAL_NVIC_EnableIRQ(WWDG_IRQn);                  //中断使能
}
/* WWDG中断服务函数 */
void WWDG_IRQHandler(void)
{HAL_WWDG_IRQHandler(&g_wwdg_handle);
}/* WWDG提前唤醒回调函数 */
void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg)
{HAL_WWDG_Refresh(&g_wwdg_handle);LED1_TOGGLE();
}

main.c

int main(void)
{HAL_Init();                             /* 初始化HAL库 */sys_stm32_clock_init(RCC_PLL_MUL9);     /* 设置时钟为72Mhz */delay_init(72);                         /* 延时初始化 */usart_init(115200);                     /* 串口初始化为115200 */led_init();                             /*初始化led*/if(__HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST) != RESET){printf("窗口看门狗复位\r\n");__HAL_RCC_CLEAR_RESET_FLAGS();}else{printf("外部复位\r\n");}delay_ms(500);printf("请在窗口期内喂狗\r\n\r\n");wwdg_init(0x7f, 0x5f, WWDG_PRESCALER_8);while(1){delay_ms(90);HAL_WWDG_Refresh(&g_wwdg_handle);LED0_TOGGLE();}}

实验小结:

        本次实验主要是为了熟悉WWDG的使用,首先对窗口看门狗句柄相关成员基地址以及初始化变量赋值,然后通过MSP回调函数对相关时钟以及中断使能,最后通过重定义中断服务函数WWDG_IRQHandler进行操作。


http://www.ppmy.cn/ops/36331.html

相关文章

OpenAI API搭建的智能家居助手;私密大型语言模型(LLM)聊天机器人;视频和音频文件的自动化识别和翻译工具

✨ 1: GPT Home 基于Raspberry Pi和OpenAI API搭建的智能家居助手 GPT Home是一个基于Raspberry Pi和OpenAI API搭建的智能家居助手,功能上类似于Google Nest Hub或Amazon Alexa。通过详细的设置指南和配件列表,用户可以自行组装和配置这个设备&#x…

Java Solon v2.7.6 发布

Java Solon 是什么框架? Java “新的”应用开发框架。开放原子开源基金会,孵化项目。从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态。 追求: 更快、更小、更简单提倡: 克制、简洁…

C++语法|using关键字

文章目录 1.类型别名Type Aliases2.命名空间别名Namespace Aliases4. 模板别名5.命名空间声明 (Namespace Alias)与typedef的区别 using 关键字在 C 中有两个最主要用途:类型别名和命名空间声明。 1.类型别名Type Aliases using 可以用来定义类型别名,这…

DigitalOcean 应用托管平台级更新:应用端到端运行时性能大幅改进

DigitalOcean 希望可以为企业提供所需的工具和基础设施,以帮助企业客户加速云端的开发,实现业务的指数级增长。为此 DigitalOcean 在 2020 年就推出了App Platform。 App Platform(应用托管) 是一个完全托管的 PaaS 解决方案&…

PMP的考试费用是多少啊?大概需要多少钱?

如何以最低的经济成本取得PMP证书呢?PMP的认证考试费用包括考试报名费、学习备考费用和续证费用三个部分。 考试报名费用 PMP考试费用:PMP普通申请者初次考试费用为固定3900元人民币,补考(重考)费用为2500元人民币。退…

vue3+vite+axios+ElementPlus+ElLoading简易封装

1.安装按需加载element-plus需要的依赖包 pnpm install element-pluspnpm install axios# 按需自动导入 pnpm install -D unplugin-vue-components unplugin-auto-import# 自动导入element-plus样式 pnpm install -D vite-plugin-style-import2.修改jsconfig.json {"com…

Nginx三大功能详解

文章目录 Nginx(动静分离)1.基本介绍2.需求分析3.思路分析4.先使用传统的方式1.配置win的tomcat1.webapps\search\cal.jsp2.webapps\search\image\cal.jpg3.启动tomcat,访问 http://192.168.200.1:8080/search/cal.jsp 2.配置linux的tomcat1.…

Android中TabLayout与ViewPager结合使用生命周期详解

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家&#xff0c; &#x1f449;点击跳转到教程 效果 使用的布局如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> …