WWDG_Handler.Init.Prescaler=WWDG_PRESCALER_8;//设置分频系数为 8 WWDG_Handler.Init.Window=0X5F; //设置窗口值 0X5F WWDG_Handler.Init.Counter=0x7F; //设置计数器值 0x7F HAL_WWDG_Init(&WWDG_Handler); //初始化 WWDG 3)开启 WWDG HAL 库中开启 WWDG 的函数有两个: ...
void wwdg_init(uint8_t tr,uint8_t wr,uint32_t psc) { wwdg_handle.Instance = WWDG; wwdg_handle.Init.Counter = tr;//计数器的值 wwdg_handle.Init.Prescaler = psc;//预分频系数 wwdg_handle.Init.Window = wr;//窗口上限值 wwdg_handle.Init.EWIMode = WWDG_EWI_ENABLE;//窗口看门狗早期唤醒...
#include<misc.h>#include<stm32f10x_wwdg.h>#include"delay/delay.h"#include"led/led.h"#include"wwdg/wwdg.h"intmain(intargc,char**argv){ delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2LED_Init(); LED0 =0; WWDG_Init(0X7F,0X5F, WWDG_Prescaler_8);...
注:WWDG_SetCounter 函数设置的看门狗计数器值和WWDG_SetWindowValue函数设置的窗口值取值范围都是0x40~0x7F。但必须还要满足配置的计数器值必须大于窗口值才有意义。 关于函数void WWDG_SetPrescaler (u32 WWDG_Prescaler)的入参取值决定了WWDG预分频系数值,它们之间有一个对应关系,如下表所示。
LED_Init(); LED0 =0; delay_ms(300); WWDG_Init(0x7f,0x5f, WWDG_Prescaler_8);//窗口看门狗初始化while(1){ LED0 =1; } } wdg.h #ifndef__WDG_H#define__WDG_H#include"sys.h"voidWWDG_Init(u8 tr,u8 wr,u32 fprer);//看门狗初始化voidWWDG_Set_Counter(u8 cnt);//喂狗函数voidWWDG...
KEY_Init(); LED0=1; delay_ms(300); WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8); while(1) { LED0=0; } } wdg.h/// #ifndef __WDG_H #define __WDG_H #include "stm32f10x.h" #include "led.h" void WWDG_NVIC_Init(void); void WWDG_Init(u8 tr,u8 wr,u32 fprer); #endif wdg...
Init.Window = 0x5F; // 窗口上限值hwwdg.Init.Counter = 0x7F; // 计数器初始值...
300);WWDG_Init(0x7F,0X5F,WWDG_Prescaler_8); //计数器值为7f,窗口寄存器为5f,分频数为8...
ms(300);WWDG_Init(0x7F,0X5F,WWDG_Prescaler_8);//计数器值为7f,窗口寄存器为5f,分频数为8while...
WWDG_Config(0X7F,0X5F, WWDG_Prescaler_8); wwdg_wr= WWDG->CFR &0X7F;//被下面的判断使用while(1) { red(OFF); wwdg_tr= WWDG->CR &0X7F;if( wwdg_tr <wwdg_wr ) { WWDG_Feed(); } } }voidSOFT_Delay(__IO u32 nCount)