datasheet

9.STM32之两只看门狗

2019-08-16来源: eefocus关键字:STM32  看门狗  内部时钟

1.独立看门狗 IWDG


由内部时钟LSI提供,故不需要时钟使能,为递减计数器。独立看门狗激活后,计数器递减到0时复位,因此需要在计数器减到0之前进行喂狗操作。


步骤:取消写保护-设置时钟分频系数-设置重装载值-看门狗使能-喂狗程序


相关函数:#include "stm32f4xx_iwdg.h"


void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);  


void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);


void IWDG_SetReload(uint16_t Reload);


void IWDG_Enable(void);


void IWDG_ReloadCounter(void);


 


2.窗口看门狗 WWDG


为内置的6位递减计数器,在PCLK1分频时钟的驱动下工作。看门狗使能后,计数器减至0X40时会产生早期唤醒中断(EWI),在此中断服务中进行喂狗操作。若计数器继续递减至0X3F,则产生看门狗复位。此外,看设置窗口外进行喂狗操作,同样会产生复位,即喂狗时间在一个窗口之内,并且可以灵活的配置此窗口。


相关函数:#include


void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);  设置时钟分频系数


void WWDG_SetWindowValue(uint8_t WindowValue); 设置窗口值  0X40~0X7F范围内


void WWDG_EnableIT(void);


void WWDG_EnableIT(void);


 


void WWDG_IRQHandler(void);


void WWDG_ClearFlag(void);


void WWDG_SetCounter(uint8_t Counter);


关键字:STM32  看门狗  内部时钟

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic471322.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:8.STM32之EXIT外部中断
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32 GPIO IIC学习

昨天在查看MPU6050芯片的时候,试着使用IIC去读写数据,查看了STM32关于IIC的资料,发现关于使用模拟IIC有不同的引脚配置,在中文参考手册中描述:  这个是使用STM32硬件IIC时GPIO引脚配置。关于模拟IIC的引脚配置,IIC的两个引脚SDA要求既能作为输出又能作为输入。 我买的是正点原子的Mini板,查看了正点原子的教程,在教程中,他是这样配置的: 1.先设置SDA、SCL引脚为推挽输出。 2.使用SDA作为输出时,#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<
发表于 2019-08-15
STM32 GPIO IIC学习

使用C++封装库在MDK上建STM32开发工程

直接上一些片上硬件、一些常用器件的封装库GitHub链接: STM32F4:https://github.com/InfiniteYuan1/STM32F407DriverLib STM32F1:https://github.com/InfiniteYuan1/STM32f103DriverLib用C++进行嵌入式程序开发,甚至是裸系统程序。开发起来比C语言更方便架构搭建与程序管理。简单的一个例子使用USART#include "USART.h"USART com(1,115200);void main(){    com<<"test
发表于 2019-08-15

STM32F103看门狗使用记录

看门狗分两种1.独立看门狗,IWDG只是简单的设置一个数,然后递减,减到0之前,还没有喂狗,狗就死了,系统重启。没有中断。只有自己代码里去喂狗。频率是内部时钟40K,可以分频。2.窗口看门狗,WWDG频率是PLCK1 我这是36M最多8分频,然后呢除以4096,就是WWDG的时钟有个2个值比较重要,1.一个是窗口值,W,在这个值之前不能喂狗,喂了狗就撑死了,reset。2.一个是临界值,0x3F到这个值还没喂狗,狗就饿死了,reset。我也不知道为什么设置是0x3F,挺奇怪的,为什么不设0x00?WWDG有一个中断函数HAL_WWDG_WakeupCallback,在倒计时到0x40的时候会掉这个,你得赶紧Refresh一下。这些
发表于 2019-08-15

初探STM32 SPI2中断接收多组数据的处理方式

一、描述        两块STM32板子之间进行SPI通讯,都使用的是SPI2。主机连续发送多组数据(数据的格式为半字,即16位),从机采用SPI2中断方式接受主机发过来的多组数据。针对从机中断接受方法我尝试了两种方案:方案一:从机每接收主机发来的一组数据就进入中断一次,即主机发来几组数据从机就进入几次中断。方案二:仅当主机发来第一组数据时,从机才触发一次中断,然后关闭中断,以循环接受的方式接受主机发过来的剩下几组数据,当所有数据接受完后,再打开从机的接受中断。二、程序        因为两种方案的主机程序是一样的,如下:uint16_t 
发表于 2019-08-15

STM32F103做从机SPI通信SPI3中断异常

在做AM335D板子与STM32F103使用SPI通信时,需要用到STM32的从机模式,所以特别对于ST的从机模式进行了研究,由于硬件上使用的是STM32F103的SPI3,所以过程中遇到了一点麻烦,这里记录一下过程,以备查阅:使用SPI3通信时,从机时钟产生不了中断,经过查阅资料,是因为spi3的nss口与JTAG有共用引脚,所以配置错误会导致SPI3无法使用。需要注意以下两点就可以了:1.开启GPIO时钟的同时,开启AFIO时钟,如下:RCC_APB2PeriphClockCmd(    RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE ); 
发表于 2019-08-15

STM32待机模式Standby Mode与ADC DMA模式测试备忘

1)STM32运行十秒后自动进入待机,使用WakeUp引脚唤醒CPU后,重复以上动作。int main(void){ time_cnt = 0;        HAL_Init(); SystemClock_Config();     HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET); HAL_PWR_DisableWakeUpPin(PWR_CSR_EWUP); //禁止wakeup PA0引脚,可以用来做普通引脚功能     while
发表于 2019-08-15
STM32待机模式Standby Mode与ADC DMA模式测试备忘

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved