1. 程式人生 > >m0系列函數獨立看門狗配置

m0系列函數獨立看門狗配置

看門狗 res rst sys logs class div handler rec

獨立看門口配置

//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系列函數獨立看門狗配置