看门狗

STM32的两只狗儿——狗立看门狗

落花浮王杯 提交于 2019-12-17 22:19:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> STM32 狗立看门狗,由专门的低速时钟 (LSI) 驱动,即便是主时钟发生故障它仍能够有效,所以此狗狗可以工作在与主时钟无关的要求下,或者待机模块下等,所以它叫独立看门狗,注意一旦开启此看门狗则只能由 MCU 复位后才清除,让它不再工作。 它的时钟是一个内部 RC 时钟,它会在 30KHZ 到 60KHZ 之间变化,并非是精确的 40KHZ ,而只是一般计算时取 40KHZ 。 狗立看门狗需设置四个寄存器如下: 其中, 预分频寄存器 (IWDG_PR) ,最低三位 PR[2:0](Prescaler divider) 有效,可设置有 8 种不同的计数器时钟预分频因子。 重装载寄存器 (IWDG_RLR) 低 12 位 RL[11:0]: 看门狗计数器重装载值 (Watchdog counter reload value) 有效,用来设置计数器的重装载值。 注意要设置以上两个寄存器的值需满足两个条件,详见如下。 键寄存器 (IWDG_KR) ,用来控制去除 IWDG_PR 和 IWDG_RLR 写保护功能以便正常写值,向此寄存器写入 0x5555 则暂时去除 IWDG_PR 和 IWDG_RLR 的写保护功能才可向两个寄存器中写值。当向此寄存器写入 0xAAAA 则 IWDG_RLR 的值会重装载,防止 MCU

单片机成长之路(51基础篇) - 026 基于stm89c52之单片机看门狗

早过忘川 提交于 2019-12-01 17:09:50
基于stc89c52的看门狗,代码如下: main.c 1 #include "stc89c5x_Quick_configuration.h"    // 自定义头文件 2 #include "data.h" 3 #include "bsp_gpio.h" 4 #include "bsp_wdt.h" 5 6 void init_OS_Time(void){ 7 DATA.Time.Time_Interrupt = 1; // 设置步长 8 DATA.Time.Interrupt_count = 0; // 设置单位步数 9 DATA.Time.Time_s = 0; // 时间 s 10 DATA.Time.Time_h = 0; // 时间 h 11 DATA.Time.Time_day = 0; // 时间 日 12 DATA.Time.Time_month = 0; // 时间 月 13 DATA.Time.Time_year = 0; // 时间 年 14 } 15 16 void main(void){ 17 init_OS_Time(); 18 init_WDT(); 19 while(1){ 20 ; 21 } 22 } bsp_wdt.h 1 #ifndef __BSP_WDT_H_ 2 #define __BSP_WDT_H_ 3 4 /*-----------