stm32f0独立看门狗配置
独立看门狗
STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。
设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间 (也就是看门狗溢出时间) ,该时间的计算方式为
Tout=((4×2^prer) ×rlr) /40
具体配置
先开启看门狗
对看门狗进行设置,这里主要的是设置IWDG down-counter reload value。IWDG counter clock prescaler为分频系数,我现在项目设置的IWDG的时钟是40KHz,所以分频后为40000/16=2500Hz,我先在项目需要使用1秒的看门狗,则2500*1=2500,就是IWDG down-counter reload value的数值
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_IWDG_Init();
printf("test \r\n");
HAL_IWDG_Init(&hiwdg);//初始化并开启iwdg F7 HAL_IWDG_Start(&hiwdg);
printf("\n\r***** start main before while *****\n\r");
while (1)
{
printf("\n\r Refreshes the IWDG !!!\n\r");
HAL_IWDG_Refresh(&hiwdg);//刷新计数值,当这行被注释掉,程序会无限调用main
HAL_Delay(800);
}
不喂狗
喂狗