首页 > 代码库 > m0系列函数独立看门狗配置

m0系列函数独立看门狗配置

独立看门口配置

//main.c 中main函数前

static void IWDG_Config(void)
{
RCC_LSICmd(ENABLE);
/*!< Wait till LSI is ready */
while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(IWDG_Prescaler_256);
//LSI频率为40K
IWDG_SetReload(1562); //定时10s , 781 = 10000ms * 40 / 256; 最大为0XFFF
IWDG_ReloadCounter();
IWDG_Enable(); 
}

//main函数开头中

if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
{
RCC_ClearFlag();
}

//main函数初始化部分中

Systick_Init();//systick中断中用于喂狗等

IWDG_Config();

//中断中写

void Systick_Init(void)
{
// if (SysTick_Config(SystemCoreClock / 1000))//1ms
if (SysTick_Config(SystemCoreClock / 100))//10ms
{
while (1);
}
}

 

void SysTick_Handler(void)
{
    static u16 l_u16Tick = 0;
    
    l_u16Tick ++;
		
    if(!(l_u16Tick % 100))
    {        
        g_u8Flg_1S = 1;
        IWDG_ReloadCounter();  //喂狗 
        
    }
    
}

  

 

 

m0系列函数独立看门狗配置