2023版 STM32实战8 独立看门狗(IWDG)
1.2023版 STM32实战3 按键外部中断(电路与代码都讲解)2.2023版 STM32实战4 滴答定时器精准延时3.2023版 STM32实战5 基本定时器中断4.2023版 STM32实战6 输出比较(PWM)包含F407/F103方式5.2023版 STM32实战7 通用同步/异步收发器(串口)F103/F407
6.2023版 STM32实战8 独立看门狗(IWDG)
7.2023版 STM32实战1 LED灯驱动(电路与代码都讲解)8.2023版 STM32实战2 按键驱动(电路与代码都讲解)9.Keil调试STM32卡死在文件startup_stm32f10x_hd.s的B处10.基于STM32的FreeRTOS智能手环(毕业设计)11.基于STM32循迹避障蓝牙操作四驱小车(毕业设计)12.C++基础 -19- 类中的隐藏问题IWDG简介
STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障。
说人话就是能解决程序跑飞的问题。
编写代码思路
-1- 使用这个功能必须解除写保护
-2- IWDG使用的是低速内部时钟 (LSI
-3- 分频系数和定时时间
代码编写(可直接拷贝使用)
#include "stm32f10x.h" #include "usart.h" #include "delay.h" void IWDG_CFG(void) { //判断是不是独立看门狗复位 if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET) { printf("IwDG RESET\r\n"); RCC_ClearFlag(); } //打开低速内部时钟 RCC_LSICmd(ENABLE); //等待时钟平稳 while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET); //打开写保护 IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //设置分频 IWDG_SetPrescaler(IWDG_Prescaler_32); //设置重装值 IWDG_SetReload(128); //喂一次狗 IWDG_ReloadCounter(); //开启看门狗 IWDG_Enable(); } int main(void) { delay_init(); uart_init(115200); IWDG_CFG(); while(1) { delay_ms(110); IWDG_ReloadCounter(); } }
工程获取
三连加关注后点击头像获取
合集:
STM32
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构