stm32f0独立看门狗配置

独立看门狗

STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。

stm32f0独立看门狗配置_第1张图片

设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间 (也就是看门狗溢出时间) ,该时间的计算方式为

Tout=((4×2^prer)  ×rlr) /40

具体配置

先开启看门狗

stm32f0独立看门狗配置_第2张图片

对看门狗进行设置,这里主要的是设置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);
   }
 

不喂狗

stm32f0独立看门狗配置_第3张图片

喂狗

stm32f0独立看门狗配置_第4张图片

你可能感兴趣的:(硬件,stm32,C语言)