IWDG和WWDG HAL库+cubeMX

一.IWDG

1.原理

启用IWDG后,LSI时钟会自动开启

2.IWDG溢出时间计算 

3.IWDG配置步骤

4.HAL库相关函数介绍

HAL_IWDG_Init	//使能IWDG,设置预分频系数和重装载值等
HAL_IWDG_Refresh	 //把重装载寄存器的值重载到计数器中,喂狗typedef struct 
{ IWDG_TypeDef *Instance; /* IWDG 寄存器基地址 */IWDG_InitTypeDef Init;       /* IWDG 初始化参数 */
}IWDG_HandleTypeDef;typedef struct
{ uint32_t Prescaler;  /* 预分频系数 */ uint32_t Reload;       /* 重装载值 */ 
} IWDG_InitTypeDef;

5.自己编写的初始化函数 

IWDG_HandleTypeDef g_iwdg_handle;/* IWDG初始化函数 */
void iwdg_init(uint8_t prer, uint16_t rlr)
{g_iwdg_handle.Instance = IWDG;g_iwdg_handle.Init.Prescaler = prer;g_iwdg_handle.Init.Reload = rlr;HAL_IWDG_Init(&g_iwdg_handle);
}/* 喂狗函数 */
void iwdg_feed(void)
{HAL_IWDG_Refresh(&g_iwdg_handle);
}
int main(void)
{HAL_Init();                             /* 初始化HAL库 */sys_stm32_clock_init(RCC_PLL_MUL9);     /* 设置时钟为72Mhz */delay_init(72);                         /* 延时初始化 */usart_init(115200);                     /* 串口初始化为115200 */printf("您还没喂狗,请及时喂狗!!!\r\n");iwdg_init(IWDG_PRESCALER_32, 1250);     /* 预分频系数为32,重装载值为1250,溢出时间约为1s */while (1){delay_ms(1000);iwdg_feed();printf("已经喂狗\r\n");}
}

二.WWDG

1.WWDG超时时间计算 

 2.WWDG配置步骤

3.相关寄存器介绍

HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);//设置预分频系数和窗口值等
HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg);//重装载计数器,即喂狗typedef struct 
{WWDG_TypeDef *Instance; /* WWDG 寄存器基地址 */ WWDG_InitTypeDef Init;      /* WWDG 初始化参数 */
}WWDG_HandleTypeDef;typedef struct 
{uint32_t Prescaler; /* 预分频系数 */uint32_t Window;    /* 窗口值 */uint32_t Counter;    /* 计数器值 */uint32_t EWIMode;  /* 提前唤醒中断使能 */ 
}WWDG_InitTypeDef;

4.自己编写的初始化函数 

设置计数器值为0x7F,窗口值0x5F,预分频系数是8

WWDG_HandleTypeDef g_wwdg_handle;/* 窗口看门狗初始化函数 */
void wwdg_init(uint8_t tr, uint8_t wr, uint32_t fprer)
{g_wwdg_handle.Instance = WWDG;g_wwdg_handle.Init.Counter = tr;g_wwdg_handle.Init.Window = wr;g_wwdg_handle.Init.Prescaler = fprer;g_wwdg_handle.Init.EWIMode = WWDG_EWI_ENABLE;HAL_WWDG_Init(&g_wwdg_handle);
}/* WWDG MSP回调函数 */
void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg)
{__HAL_RCC_WWDG_CLK_ENABLE();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();
}
int main(void)
{HAL_Init();                                 /* 初始化HAL库 */sys_stm32_clock_init(RCC_PLL_MUL9);         /* 设置时钟,72M */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);//延迟90msHAL_WWDG_Refresh(&g_wwdg_handle);LED0_TOGGLE();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode:2549. 统计桌面上的不同数字(python3解法)

难度&#xff1a;简单 给你一个正整数 n &#xff0c;开始时&#xff0c;它放在桌面上。在 109 天内&#xff0c;每天都要执行下述步骤&#xff1a; 对于出现在桌面上的每个数字 x &#xff0c;找出符合 1 < i < n 且满足 x % i 1 的所有数字 i 。然后&#xff0c;将这些…

linux文件管理命令_切换创建复制移动删除查看修改

1.3 文件管理命令 1.3.1 cd&#xff1a;切换目录&#xff08;change directory&#xff09; cd 绝对路径/相对路径 # 根目录 [rootlocalhost ~]# cd / # 家目录 [rootlocalhost /]# cd [rootlocalhost /]# cd ~ # 父级目录 [rootlocalhost /]# cd .. # 返回上一次目录 [roo…

fabric构建自动部署服务

1. fabric简介 fabric 是python 的一个第三方库&#xff0c;同时它也是一个命令行工具。它提供了丰富的同 SSH 交互的接口&#xff0c;可以用来在本地或远程机器上自动化、流水化地执行 shell 命令。使用 fabric 提供的命令行工具&#xff0c;可以很方便地执行应用部署和系统管…

dcat admin日志扩展 dcat-log-viewer 遇到的问题记录

扩展地址&#xff1a; https://github.com/duolabmeng6/dcat-log-viewer 问题描述&#xff1a; 使用很简单&#xff0c;直接安装扩展包&#xff0c;开启扩展就可以了&#xff0c;会自动生成菜单。 之前在别的系统用过&#xff0c;没问题&#xff0c;今天在一个新的系统用的时…

食谱菜谱大全API接口

食谱菜谱大全API接口 一、食谱菜谱大全API接口二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、食谱菜谱大全API接口 包含所有家用或者商用的食谱菜谱的API接口 二、使用步骤 1…

Vue3-VueRouter4路由语法解析

1.创建路由实例由createRouter实现 2.路由模式 1&#xff09;history模式使用createWebHistory()&#xff1a;地址栏不带# 2&#xff09;hash模式使用createWebHashHistory()&#xff1a;地址栏带# 3&#xff09;参数是基础路径&#xff0c;默认/ 括号里的就是设置路径的前…

微服务--04--SpringCloudGateway 网关

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.网关路由1.1 认识网关在SpringCloud当中&#xff0c;提供了两种网关实现方案&#xff1a; 1.2.快速入门1.3.路由过滤 2.网关登录校验2.1.鉴权思路分析2.2.网关过滤…

图解系列--Web服务器,Http首部

1.用单台虚拟主机实现多个域名 HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点。。比如&#xff0c;提供 Web 托管服务&#xff08;Web Hosting Service&#xff09;的供应商&#xff0c;可以用一台服务器为多位客户服务&#xff0c;也可以以每位客户持有的域名运行各自不…

【古月居《ros入门21讲》学习笔记】07_创建工作空间和功能包

目录 说明&#xff1a; 1. 工作空间(workspace) 结构&#xff1a; 2. 创建工作空间和功能包 创建工作空间 编译工作空间 创建功能包 设置环境变量 3. 注意 同一个工作空间下&#xff0c;不能存在同名的功能包&#xff1b; 不同工作空间下&#xff0c;可以存在同名的功…

淘宝详情API接口:一键获取商品信息的实践探索

一、引言 淘宝作为中国最大的电商平台&#xff0c;拥有庞大的商品信息库。为了更好地利用这些数据&#xff0c;开发者可以通过淘宝提供的API接口来获取商品详情。本文将深入探讨如何使用淘宝详情API接口一键获取商品信息&#xff0c;通过实践操作和代码示例&#xff0c;带领读…

Metasploit框架(2), MSF信息搜集

Metasploit框架(2), MSF信息搜集 路径以auxiliary开头的都是辅助模块, 比如auxiliary/scanner/smb/smb_version. 信息搜集一般使用nmap和辅助模块下的各种扫描器. 1. db_nmap db_nmap参数的用法与nmap命令相同. db_nmap -sn 192.168.112.1/24 # 扫描存活主机 db_nmap --scr…

Spine深入学习 —— 动画

SkeletonAnimation 继承于SkeletonRenderer 播放动画 spTrackEntry* SkeletonAnimation::setAnimation (int trackIndex, const std::string& name, bool loop) {spAnimation* animation spSkeletonData_findAnimation(_skeleton->data, name.c_str());if (!animati…

docker-compose替代者

Process Compose 是一个简单而灵活的调度程序和编排器&#xff0c;用于管理非容器化应用程序。 它深受docker-compose的启发&#xff0c;但不需要容器。不必处理 docker 文件、卷定义、网络和 docker 注册表 配置语法尝试遵循 docker-compose 规范&#xff0c;进行了一些小的…

【python】——组合数据类型(单选练习题)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

达索系统3DEXPERIENCE WORKS 2024 结构仿真功能增强

simulia结构仿真是什么&#xff1f; 不仅能对结构进行力学、热学、声学等多学科计算&#xff0c;辅助于设计方案的优化&#xff1b;还能采用数字化技术模拟产品性能&#xff0c;大幅节约试验和样机迭代成本。达索系统3DEXPERIENCE WORKS 2024 结构仿真为企业提供随需应变、精准…

centos7-docker安装与使用

文章目录 一、docker简介1.1docker应用场景1.2docker的优点1.2.1快速&#xff0c;一致地交付应用程序1.2.2响应式部署和扩展1.2.3在同一硬件上运行更多工作负载 1.2docker的架构 二、docker的安装2.1新系统的环境搭建2.1.1更换yum源 2.2安装docker与卸载2.2.1yum安装docker2.2.…

看懂YOLOv7混淆矩阵的含义,正确计算召回率、精确率、误检率、漏检率

文章目录 1、准确率、精确率、召回率、误报率、漏报率概念及公式1.1 准确率 Accuracy1.2 精确率 Precision1.3 召回率 Recall1.4 F1-Score1.5 误检率 false rate1.6 漏检率 miss rate 2、YOLOv7混淆矩阵分析 1、准确率、精确率、召回率、误报率、漏报率概念及公式 重点参考博文…

唯创知音WT588F02A-16S录音语音芯片在宠物喂食器中的应用:小芯片,大功能

在现代社会中&#xff0c;宠物已经成为人们生活中的一部分&#xff0c;而宠物喂食器作为宠物养护的重要工具&#xff0c;也越来越受到人们的关注。为了满足人们对宠物喂食器的多样化需求&#xff0c;唯创知音的WT588F02A-16S录音芯片在其中发挥着重要作用。 唯创知音的WT588F0…

.net7.0中把exe和dll分开打包

之前写过 C#把dll分别放在指定的文件夹_wpf core dll 放文件夹-CSDN博客 C#把dll打包到exe_c# 打包exe_故里2130的博客-CSDN博客 这都是老技术了&#xff0c;可以进行参考。 现在的.netcore系列有单独支持把exe和dll分开打包的功能了&#xff0c;当然也支持.net7.0和.net8.…

戴西软件成功收购美国知名 CAE 软件公司 ETA 的VPG汽车仿真软件

戴西&#xff08;上海&#xff09;软件有限公司&#xff08;以下简称“戴西”&#xff09;荣幸宣布成功收购全球著名CAE软件开发商ETA公司&#xff08;Engineering Technology Associates, Inc.&#xff09;旗下的汽车碰撞安全仿真软件VPG及相关技术成果&#xff08;Virtual Pr…