本文将介绍STM32的看门狗中的独立看门狗,并通过实例来喂狗、体验喂狗与不喂狗的区别。
①STM32看门狗介绍之独立看门狗
②使用STM32CUBEMX来配置工程文件
③代码实现,按键按下喂狗、按键不按下不喂狗程序复位
①STM32看门狗介绍之独立看门狗
看门狗定时器本质上是一个计数器、给计数器一个数值,在程序
运行后计数器的值开始递减,当计数器的值减到0是会将程序复位,若在减到0之前给计数器更新一下值“喂狗”则从最新的值开始递减;
用途:
1、这样做的好处就是程序跑飞、死机时,通过复位的方式使得程序又正常运行;
2、用于将系统从休眠或者空闲模式唤醒。
看门狗的种类:
独立看门狗IWDG
特点:专用时钟LSI、低功耗模式仍可运行、对定时的控制比较松;
窗口看门狗
特点:总线时钟APB1、要求主应用程序在规定时间喂狗、对定时控制比较严
独立看门狗工作原理框图:
独立看门狗的时钟是内部低速时钟、是一个RC时钟,即使主时钟失效也不影响独立看门狗的运行,该时钟是32KHz、但由于是RC时钟其频率范围在15-47khz波动,所以有时定时是有一点误差的。
预分配寄存器:寄存器中的数值对应相应的分频数、最大支持
256分频;
状态寄存器:寄存器中的数值对应预分频器寄存器和重载寄存器
中的值的更新状况,若在更新中、则暂时不能更改这两个寄存器中的值
重载寄存器:寄存器中装着计数器的重装载值
关键字寄存器:负责重装载值的装载、预分频器和重载寄存器是否可写,控制IWDG的启动;
需要注意的是计数器是12位、即喂狗最大间隔时间是有限制的;
②使用STM32CUBEMX来配置工程文件
Step1:使能USART3,用于调试
Step2:使能独立看门狗、并进行配置32分频、3秒内喂狗否则
复位
Step3:PA0设置为输入功能、PA0接的是按键
Step4:生成工程文件
③代码实现,按键按下喂狗、按键不按下不喂狗程序复位
Step1:输出重定向,用于调试
Step2:按键按下喂狗
Step3:效果
关键字:STM32 独立看门狗
引用地址:
STM32独立看门狗详解
推荐阅读最新更新时间:2024-11-13 21:13
STM32开发笔记33:解决USB CDC “该设备无法启动”问题
单片机型号:STM32F401 调试STM32的USB CDC设备已经有好多次了,可以看一下前面写的日志,针对不同的STM32 MCU都进行了调试。原本以为STM32F4会很简单,可处处是坑,已经调到半夜才解决问题,把问题重新梳理。 我现在使用的芯片时STM32F401,在STM32CubeMX中,按照以下步骤设置。 1、设置为全速从设备,不做USB电源检测。 2、使能CDC,其它采用默认设置。 按照上述设置生成的程序,下载到芯片后,接入计算机,默认是这样的 仔细查看细节问题是这样的 找了好久不能解决问题,网上有一种说法是,是更改usbd_conf.h
[单片机]
STM32io口输入输出的理解
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电
[单片机]
stm32的SPI设置步骤,SPI配置参数
用stm32的库进行深入 SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 四根线 MISO 主设备数据输入,从设备数据输出。 MOSI 主设备数据输出,从设备数据输入。 SCLK时钟信号,由主设备产生。 CS从设备片选信号,由主设备控制。 外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节 时钟极性CPOL对传输协议没有重大的影响,代表串行同步时钟的空闲状态下的电平。 时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串
[单片机]
STM32串口USART1程序
原理图: 头文件及完整例程下载: http://www.51hei.com/f/stm32标准例程库函数.rar 程序分析: main.c #include stm32f10x.h #include stm32f10x_usart.h #include misc.h #include stdarg.h /* Private variables ---------------------------------------------------------*/ USART_InitTypeDef USART_InitStructure; uint8_t TxBuffer1 = USART Interrupt Ex
[单片机]
意法半导体(ST)展示STM32开放式开发环境
2016年4月18日,横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST)的STM32开放式开发环境(Open Development Environment ,ODE)在发布仅一年后,就已成为功能完整的集成开发生态系统,帮助开发人员开发包括物联网(IoT)应用在内的嵌入式系统。 STM32开放式开发环境是开发人员使用意法半导体的先进元器件开启设备应用创新之路的理想解决方案。以STM32 ARM Cortex 32位微控制器为基础,STM32开放式开发环境包含全套的功能扩展板,让用户能够在开发中的产品上轻松增加传感器、通信接口、电源管理、运动控制及致动,以及信号转换功能。此外
[单片机]
基于STM32设计的人体健康检测仪
一、项目介绍 当前文章介绍基于STM32设计的人体健康检测仪。设备采用STM32系列MCU作为主控芯片,配备血氧浓度传感器(使用MAX30102血氧浓度检测传感器)、OLED屏幕和电池供电等外设模块。设备可以广泛应用于医疗、健康等领域。可以帮助医生和病人更好地了解病情变化,提高治疗效果和生活质量。设备也可以用于健康管理、运动监测等场景,帮助用户了解自己的身体状况,保持健康的生活方式。 在项目中,使用了KEIL作为开发平台和工具,通过血氧模块采集人体的心跳和血氧浓度参数,并通过OLED屏幕显示现在的心跳和血氧浓度。同时,通过指标分析,提供采集到的数据与正常指标比对,分析被检测人员的健康状态。采集的数据可通过蓝牙或者WIFI传递给
[单片机]
STM32 独立看门狗的使用
STM32有两种看门狗:独立看门狗和窗口看门狗。本文主要介绍独立看门狗的使用。 独立看门狗(IDWG):由独立的40KHZ的低速时钟为其驱动。因此,即使主时钟发生故障,IDWG依然可以正常工作。 窗口看门狗(WWDG):有从APB1的时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过早或过迟的行为。 IDWG最适合用于那些需要看门狗在一个主程序外,能够完全独立工作,并对时间精度要求低的场合。而WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。 IDWG使用的过程中,可以采用以下的方式进行配置: void IWDG_Configuration(void) { /* 使能对IWD
[单片机]
关于STM32 ADC时采用DMA的一点疑问
手册上有这样的话:只有ADC1能够产生DMA请求,似乎是只有ADC通道1能采用DMA方式传输数据。 但是万利的开发板上的ADC例子,用的是ADC通道10,还用了DMA 方式传数据。 所以我猜测 “只有ADC1能够产生DMA请求”中提到的ADC1 并不是指ADC 通道1, 而是软件可配置的 ADC 通道的分类形式,可分为ADC1和ADC2. 我们可将 通道10(或其他)配置成ADC1 “模式”。通过函数 /* ADC1 regular channel10 configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_5
[单片机]