stm32标准库学习笔记-看门狗

概述

由于单片机在运行的过程经常会受到外部电磁场的干扰,就可能会出现程序“跑飞”,比如出现数据的缺失、导致寄存器中的数据发生变化、程序指针PC指向非法地址........

为了提高程序的可靠性,就提供了看门狗外设,在程序出现由软件或者硬件导致的未知问题,利用看门狗外设对芯片进行复位,相当于重新运行程序。

如果程序运行没有任何问题,则可以按时喂狗,就不会让芯片复位,一旦程序出现问题导致无法喂狗,则看门狗会自动复位程序。

使用看门狗的目的:为了提供程序的可靠性,防止由软件或者硬件造成的问题的出现。如果想要了解看门狗的资源和特点,可以参考STM32F4中文参考手册。

STM32F4系列的芯片提供的两个看门狗,一个叫做独立看门狗,一个叫做窗口看门狗。两个看门狗的使用流程差不多,但是相比于独立看门狗,窗口看门狗比较难伺候。

独立看门狗

如果系统复位,那么如何判断是用户手动复位的还是由看门狗复位的? 

函数原型

FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG)

函数参数

参数一:RCC_FLAG    指的是需要检测的标志   如   RCC_FLAG_IWDGRST

返回值  SET(发生)  or    RESET(没发生)

独立看门狗的使用流程

可以参考stm32f4xx_iwdg.c的开头注释,代码编写流程如下图所示

提示:喂狗操作应该放在定时器中断进行,并且定时器的中断抢占优先级必须是最高的。

窗口看门狗

注意:WWDG外设没有独立的时钟源,而是挂载在APB1总线下,APB1总线外设时钟为42MHZ。

WWDG外设的使用流程

可以参考stm32f4xx_wwdg.c的开头注释,具体流程如下图所示

注意:WWDG看门狗是具有提前中断唤醒功能的,可以利用中断服务函数在该中断里面进行数据的保存,或者在某些情况下利用中断服务函数进行喂狗操作,防止芯片复位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值