STM8L151x IWDG总结

来源:互联网 发布:淘宝一键复制有违规吗 编辑:程序博客网 时间:2024/04/30 11:52

     

  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();

}

固件库里面的程序是:

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

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

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

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


 

原创粉丝点击