1.点击WWDG 2. WWDG时钟预分频系数 8 WWDG上窗口值0x5F WWDG计数器值 : 0x7F 设置看门狗提前唤醒中断 3 使能窗口看门狗中断 其余配置与独立看门狗相同配置即可 HAL库独立窗口狗函数库讲解: 看门狗初始化: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 HAL_WWDG_Init(WWDG_HandleTypeDef*hwwdg) 喂狗: 代...
WWDG计数器刷新值为127,则超时时间为:~728 us * (127-63) ~= 47 ms F4 开启窗口看门狗中断。 在main()函数中开启WWDG. intmain(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); MX_WWDG_Init(); MX_NVIC_Init(); printf("main \r\n"); __HAL_WWDG_EN...
void wwdg_init(uint8_t tr, uint8_t wr, uint32_t fprer) { wwdg_handler.Instance = WWDG; wwdg_handler.Init.Prescaler = fprer; /* 设置分频系数 */ wwdg_handler.Init.Window = wr; /* 设置窗口值 */ wwdg_handler.Init.Counter = tr; /* 设置计数器值 */ wwdg_handler.Init.EWIMode = ...
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitSt...
窗口看门狗(WWDG)跟独立看门狗(IWDG1)一样,是一个递减计数器。独立看门狗计数器递减为0的时候将产生复位,如果在递减到0之前进行喂狗则不会产生复位。窗口看门狗就不一样了,窗口看门狗递减到0X40的时候如果不喂狗,到下一个计数0X3F的时候就会产生复位,如果要喂狗,也要在一定的时间范围内喂狗才不会导致复位,我们...
初始化看门狗:使用HAL_IWDG_Init()或HAL_WWDG_Init()函数初始化独立看门狗或系统窗口看门狗,设置其时钟、预分频器和重装载值等参数。 启动看门狗:在初始化函数内部,看门狗通常会被启动。之后,可以通过相应的函数来刷新看门狗的计数器,即“喂狗”。 喂狗操作:在程序运行过程中,需要定期调用HAL_IWDG_Refresh()或HAL...
窗口看门狗(WWDG) 独立开门狗(IWDG) 两者区别是窗口开门狗如果超时没有喂狗是触发中断,而独立开门狗是直接进行芯片复位。 时钟来源: 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。 窗口看门狗(WWDG)由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟...
使用cubemx打开串口中断的工程,然后另存为WWDG工程,打开窗口看门狗,并设置分频系数、窗口值、计数值,...
HAL_StatusTypeDefHAL_WWDG_Init(WWDG_HandleTypeDef*hwwdg);WWDG_HandleTypeDefhwwdg;typedefstruct{uint32_...
2、作用:主要用于检测外界电磁干扰,或硬件异常导致的程序跑飞问题。主要是解决硬件错误,进行复位。软件错误的由WWDG(窗口看门狗)解决。 3、应用:在一些需要高稳定性的产品中,并且对时间精度要求较低的场合。由于RC振荡器精度不高。 总结:IWDG是异常处理的最后手段,不可依赖,应该在设计的时候尽量避免一场发生。