内蒙古建设厅网站首页,青州网站建设优化推广,广州网站建设藤虎网络,做网站的时候说需求的专业术语独立看门狗 IWDG专业时钟LSI 低功耗仍可以运行对定时的控制比较松喂狗这些时间是按照40kHz时钟给出。实际上#xff0c;MCU内部的RC频率会在30kHz到60kHz之间变化。此外#xff0c;即使RC振荡器的频率是精确的#xff0c;确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间…独立看门狗 IWDG专业时钟LSI 低功耗仍可以运行对定时的控制比较松喂狗这些时间是按照40kHz时钟给出。实际上MCU内部的RC频率会在30kHz到60kHz之间变化。此外即使RC振荡器的频率是精确的确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间的相位差因此总会有一个完整的RC周期是不确定的。 键寄存器(IWDG_KR) KEY[15:0]: 键值(只写寄存器读出值为0x0000) (Key value) 软件必须以一定的间隔写入0xAAAA否则当计数器为0时看门狗会产生复位。将PLR的值重新装载到CNT 写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器。写入0xCCCC启动看门狗工作(若选择了硬件看门狗则不受此命令字限制)。/*******************************************************************************
Copyright: 2023
File name: bsp_driver_iwdg.c
Description: 底层iwdg驱动层
Author: zz
Version: v1.0
Date: 20230211
History: 20230211v1.0:初版
*******************************************************************************/
#include bsp_driver_iwdg.hstatic IWDG_HandleTypeDef s_hiwdg;/*******************************************************************************
Function: BSP_IWDG_Init
Description: IWDG初始化
Input: 无
Output: 无
Return: 无
*******************************************************************************/
void BSP_IWDG_Init(void)
{s_hiwdg.Instance IWDG;s_hiwdg.Init.Prescaler IWDG_PRESCALER_16;s_hiwdg.Init.Reload 4095;if (HAL_IWDG_Init(s_hiwdg) ! HAL_OK){Error_Handler();}
}/*******************************************************************************
Function: BSP_IWDG_Feed
Description: IWDG喂狗
Input: 无
Output: 无
Return: 无
*******************************************************************************/
void BSP_IWDG_Feed(void)
{HAL_IWDG_Refresh(s_hiwdg);
}/*******************************************************************************
** End Of File
*******************************************************************************/
窗口看门狗 WWDG 总线时钟APB1(受到主时钟影响)对定时控制比较严要求主应用程序在规定时间窗口内 如果看门狗被启动(WWDG_CR寄存器中的WDGA位被置’1’) 并且当7位(T[6:0])递减计数器从 0x40(01000000)翻转到0x3F(00111111)(T6位清零)时则产生一个复位。如果软件在计数器值大于窗口寄存器中的数 值时重新装载计数器将产生一个复位。 窗口看门狗时序图配置上窗口的值(最大不能超过0X7F) -下窗口的值(0X3F)获取上窗口的值和当前窗口值
uint8_t wr,tr;wr WWDG -CFR 0x7f;
tr WWDG-CR 0x7f;
if(wr tr)
{HAL_WWDG_Refresh(hwwdg); //喂狗操作
}