关于STM32的看门狗总结

发布者:电子设计艺术家最新更新时间:2018-10-17 来源: eefocus关键字:STM32  看门狗 手机看文章 扫描二维码
随时随地手机看文章

一、独立看门狗

 STM32的独立看门狗有内部的40kHz低速时钟驱动,即使主时钟发生故障,他也仍然有效。需要注意:独立看门狗的时钟是一个内部RC时钟,所以并不是准确的40kHz,而是在30kHz~60kHz之间变化的时钟,所以独立看门狗的时间并不精确。

在键值寄存器(IWDG_KR)中写入0xCCCC,开始启动独立看门狗;此时计数器开始从复位值0xFFF递减计数;当计数到末尾0x000时,会产生一个信号(IWDG_RESET)。无论何时只要键值寄存器(IWDG_KR)中写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中去,从而避免产生看门狗复位。

独立看门狗时钟来自内部低速时钟LSI,需使能 RCC_LSICmd(ENABLE);

A、取消寄存器写保护(向IWDG_KR写入0x5555)

    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

B、设置独立看门狗的预分频系数和重装载值

IWDG_SetPrescaler(uint8_t IWDG_Prescaler);

IWDG_SetReload(uint16_t Reload);

看门狗溢出时间:

Tout=((4*2^IWDG_Prescaler)*Reload)/40  ms

C、重载计数值喂狗(向IWDG_KR写入0xAAAA)

    IWDG_ReloadCounter();

D、启动看门狗(向IWDG_KR写入0xCCCC)

    IWDG_Enable();

注意:IWDG一旦启用,就不能再被关闭!想要关闭只能重启,并且重启之后不能打开IWDG。

二、窗口看门狗

除非递减计数器的值在WWDG_CR的第六位变成0前刷新,窗口看门狗在达到预置的时间周期时会产生一个MCU复位。递减计数器达到窗口配置寄存器(WWDG_CFR)数值之前,如果7位的递减计数器的数值被刷新,那么也将产生一个MCU复位。

WWDG_CFR的低7位是窗口看门狗的上窗口,是由用户根据需要设定的,要确保上窗口值大于0x40;下窗口值是固定的0x40;WWDG_CR的低7位是窗口看门狗的计数值。窗口看门狗只有在上下窗口之间被刷新才不会产生复位。

超时公式:

Twwdg=(4096*2^WDGTB*(计数值+1))/Fpclkl  ms

注:Fpclkl是APB1的时钟频率(kHz)

    WDGTB是WWDG的预分频系数

A、使能WWDG时钟

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);

B、设置窗口值和分频数

  void WWDG_SetWindowValue(uint8_t WindowValue); //设置窗口值

  void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);//设置分频数

C、开启WWDG中断并分组

WWDG_EnableIT();

D、设置计数器初始值并使能看门狗

  void WWDG_Enable(uint8_t Counter);

E、编写中断服务函数

WWDG中断初始化WWDG_IRQn;在中断服务函数WWDG_IRQHandler中调用WWDG_ClearFlag(),清除提前唤醒中断标志位。


关键字:STM32  看门狗 引用地址:关于STM32的看门狗总结

上一篇:STM32 JTAG引脚做普通I/O口用
下一篇:stm32f429三通道ADC配置

推荐阅读最新更新时间:2024-03-16 16:16

PIC16位单片机CAN(8)看门狗
程序的框架已经出来了,把看门狗打开剩下的就是程序结构的完善了。 根据文档说明,看门狗主要就是配置位的配置。下面是我的配置: _FWDT(WDTPOST_PS4096&WDTPRE_PR32&PLLKEN_OFF&WINDIS_OFF&FWDTEN_ON); //后分频器4096(4096*1ms=4s) 预分频器32分频(1ms) 禁止看门狗窗口模式 使能看门狗 看门够一个独立的32KHz的时钟,可以经过预分频和后分频进行操作, 由 LPRC 提供的看门狗定时器时钟源的频率标称值为 32 kHz。该信号输入给可配置为 5 位 (32 分频)或 7 位(128 分频)工作的预分频器。预分频比通过 WDTPRE 配置位进行设置
[单片机]
STM32学习笔记(4) 高级定时器-两路互补的PWM输出(带死区和刹车控制)
1.实验目的 使用高级定时器,输出两路互补的PWM输出,需要有带死区和不带死区两种情况 2.实验效果 图1:不带死区的两路互补的PWM输出 图2 :带死区的两路互补的PWM输出 3.理论部分 3.1时钟源 内部时钟(基本定时器,通用定时器时钟源来自PCLK1,但高级定时器的时钟源来自PCLK2(72M)) 实践中几乎无需使用:外部时钟模式1、外部时钟模式2 3.2时基单元 组成: 16bit预分频PSC 16bit计数器CNT 8bit重复计数器RCR(高级定时器独有) 16bit自动重装载寄存器ARR 3.3输入捕获 作用:对输入信号的上升沿/下降沿/双边沿进行捕获,测量输入信号的脉宽,和
[单片机]
<font color='red'>STM32</font>学习笔记(4) 高级定时器-两路互补的PWM输出(带死区和刹车控制)
【话说定时器系列】之四:STM32定时器更新事件及案例分享
我们知道,STM32定时器中的四个带影子特性的寄存器组,每组寄存器分别由 影子寄存器【即实际控制寄存器】和预装寄存器组成。其中,影子寄存器是真正起作用的控制寄存器,用户访问不到它。而预装寄存器是用户访问的为实际影子寄存器准备数据或指令的寄存器。它们分别是: TIMx_PSC 分频寄存器 TIMx_ARR 自动重装载寄存器 TIMx_CCR 捕捉寄存器 TIMx_RCR 重复计数寄存器[高级定时器有】 其中,ARR、CCR寄存器带预装载使能控制位,即它们的预装功能可以软件开启或关闭。 TIMx_ARR 带预装载使能控制位 ARPE@TIMx_CR1 TIMx_CCR 带预装载使能控制位 OCxPE@TIMx_CC
[单片机]
stm32 tim6、tim7中断配置以及注意事项
void TIM6_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 13; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; N
[单片机]
STM32调试过程中常见的问题及解决方法?
STM32调试过程中常见的问题及解决方法 一、 在 Debug选项卡 下设置好仿真器的类型后,下载程序时却提示 No ULINK Device found. 解决办法: Keil MDK默认使用ULINK仿真器下载程序,在 Project --- Option for Target 'xxx' --- Utilities选项卡 下把编程所使用的仿真器改为相应的类型即可。 二、 编译工程时提示如下信息: main.axf: Error: L6218E: Undefined symbol __BASEPRICONFIG (referred from stm32f10x_nvic.o). main.axf: E
[单片机]
用汇编语言做一个看门狗测试
用STC的MCU的IO方式控制74HC595驱动8位数码管。 ; 用户可以修改宏来选择时钟频率. ; 显示效果为: 显示秒计数, 5秒后不喂狗, 等复位. Fosc_KHZ EQU 22118 ;22118KHZ STACK_POIRTER EQU 0D0H ; 堆栈开始地址 DIS_DOT EQU 020H DIS_BLACK EQU 010H DIS_ EQU 011H AUXR DATA 08EH P4 DATA 0C0H P5 DATA 0C8H P0M1 DATA 0x93 ; P0M0 DATA 0x94 ; P1M1 DATA 0x91 ; P1M0 DATA 0x92 ; P2M1 DATA 0x95 ; P2M0
[单片机]
关于STM32中断的部分理解
中断这个问题从学习stm32一开始就困扰着我,我想估计很多初学者都会有这样的问题。曾经问过隔壁实验室的职工,人家没告诉我,让我自己回去理解。同行是冤家,这句话很在理。 首先提出我对几个中断的理解不了的问题: 1、中断是干嘛的? 2、中断是如何从函数进入的? 3、中断相关设置是如何设置的? 第一个问题:关于中断可以有一个很形象的解释:你正在吃饭,突然尿急了,准备去尿尿,中断了吃饭的这一过程。从程序上解释就是吃饭可以分解为一系列的动作,称为主程序,每个动作相当于函数,组成了这个主程序。这时候你尿急了,产生了一个信号,相当于中断信号,告诉大脑CPU,现在尿急比较重要,不然会尿裤子。这时候大脑会停下吃饭这一主程序,去执行撒尿这程序
[单片机]
ST新开发环境极大降低STM32微控制器的使用门槛
意法半导体(纽约证券交易所代码:STM)发布一套价格极低的开发环境,让更多的开发人员有机会使用意法半导体针对嵌入式应用专门研制、采用ARM Cortex-M3处理器内核的STM32系列微控制器。 新的开发环境整合Atollic TrueSTUDIO®/STM32开发工具和意法半导体的ST-LINK调试器,前者可以从网站免费下载,无使用代码量或使用时间限制;后者通过USB端口可连接到目标微控制器。对于初期投资很小的项目,花费很少即可拥有ST-LINK,因此尝试性和小批量的产品概念的各种初始设计,均能受益于STM32系列微控制器的高性能、低功耗和丰富功能,方便选择STM32系列70多款软件、引脚和外设相互兼容的产品
[单片机]
ST新开发环境极大降低<font color='red'>STM32</font>微控制器的使用门槛
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved