IWDG

/*
independent watchdog IWDG

本质:能产生系统复位的计数器

特性:递减,独立RC振荡器提供时钟(LSI),待机模式可运行
递减到0x000时产生复位信号

作用:异常处理最后手段

*启动IWDG后 LSI自动开启
LSI 32KHz

密钥寄存器 IWDG_KR
0xAAAA == 喂狗
0x5555 == 允许访问IWDG_PR(预分频器R),IWDG_RLR(重装载R)
0xCCCC == 软件启动IWDG

LSI频率:fLSI == 32,000Hz
分频系数:psc == 选择4分频
重装载值:rlr == 0x001 到 0xFFF
溢出时间Tout == rlr * 1/(fLSI / psc)

最短Tout == 1 * 1/(32000 / 4) == 0.000125s = 0.125ms
最长Tout == 0xFFF * 0.000125s == 0.511875s = 512ms
*/

IWDG初始化函数

/*创建IWDG句柄h_iwdg*/
IWDG_HandleTypeDef h_iwdg;

/*初始化IWDG*/
void IWDG_Init(void)
{
    /*h_iwdg参数选择*/
    h_iwdg.Instance = IWDG;                     //h_iwdg 关联 IWDG
    h_iwdg.Init.Prescaler = IWDG_PRESCALER_4;   //分频系数4分频 
    h_iwdg.Init.Reload = 4095;                  //0xFFF,溢出时间最长Tout == 0xFFF * 0.000125s == 0.511875s = 512ms
    
    /*使用HAL_IWDG_Init()配置h_iwdg*/
    if(HAL_IWDG_Init(&h_iwdg) != HAL_OK)
    {
        Error_Handler();
    }

}

 

posted @   Yannnnnnn  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示