[STM8] STM8L151x IWDG总结

[复制链接]
 楼主| wailian1265k 发表于 2021-1-30 23:27 | 显示全部楼层 |阅读模式

STM8L的看门狗:

       (1)  使用内部的低速时钟(LSI):38K,同时设置了4-256的分频,所以可以设置时间为0.1ms-1724.63ms;

      (2)IWDG_KR=0XCC 使能,IWDG_KR = 0XAA喂狗  ,IWDG_KR = 0X55允许访问IWDG_PR(预分频) 和 IWDG_RLR(看门狗初始值)

void IWDG_Init(void)
{
   CLK_LSICmd(ENABLE);
    while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);
   CLK_BEEPClockConfig(CLK_BEEPCLKSource_LSI);
    CLK_PeripheralClockConfig(CLK_Peripheral_BEEP, ENABLE);
    IWDG_Enable();//记得先使能
   IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
   IWDG_SetPrescaler(IWDG_Prescaler_256);
   IWDG_SetReload((uint8_t)RELOAD_VALUE);//RELOAD_VALUE=254  1.724s
   IWDG_ReloadCounter();

}


 楼主| wailian1265k 发表于 2021-1-30 23:29 | 显示全部楼层
固件库里面的程序是:

   IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
   IWDG_SetPrescaler(IWDG_Prescaler_256);
   IWDG_SetReload((uint8_t)RELOAD_VALUE);
   IWDG_ReloadCounter();

   IWDG_Enable();//使能放在后面

这样子试了,先前给的设置的参数都木有用,只要使能大概27ms,就咬人,有利用定时器

另外注意很多前辈说狗狗不能在中断喂养,要在正常的程序中喂养,如果程序跑飞了,有可能跑到中断中。。。。。

 楼主| wailian1265k 发表于 2021-1-30 23:29 | 显示全部楼层
 楼主| wailian1265k 发表于 2021-1-30 23:31 | 显示全部楼层

STM8L的看门狗
coshi 发表于 2021-2-6 10:06 | 显示全部楼层
看门狗并不难配置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

413

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部