|
用 demo 的 sleep 和 Iwdt 合起来后, 进去 sleep 后就约几秒后复位, 不断这样
uint8_t i;
void LED_Init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = FL_GPIO_PIN_0;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
(void)FL_GPIO_Init(GPIOC, &GPIO_InitStruct);
FL_GPIO_SetOutputPin(GPIOC, FL_GPIO_PIN_0);
}
////
void IWDT_Init(void)
{
FL_IWDT_InitTypeDef IWDT_InitStruct;
IWDT_InitStruct.iwdtWindows = 0;
IWDT_InitStruct.overflowPeriod = FL_IWDT_PERIOD_2000MS;
FL_IWDT_Init(IWDT, &IWDT_InitStruct);
}
////
int main(void)
{ uint16_t j;
/* Initialize FL Driver Library */
/* SHOULD BE KEPT!!! */
FL_Init();
/* Reset of all peripherals, Initializes the Flash inte**ce and the Systick. */
/* SHOULD BE KEPT!!! */
MF_Clock_Init();
/* Initialize all configured peripherals */
/* SHOULD BE KEPT!!! */
MF_Config_Init();
FL_DelayMs(3000);//32768 起振时间典型时间1S,最大3S
FL_CDIF_EnableVAOToCPU(CDIF);//32768信号从VAO传输到CPU
IWDT_Init();
WKUP_Interrupt_Init();
LED_Init();
for( j=0;j<10;j++ )
{
FL_GPIO_ToggleOutputPin(GPIOC, FL_GPIO_PIN_0);
FL_DelayMs(50);
FL_IWDT_ReloadCounter(IWDT);
}
while(1)
{
DeepSleep();
FL_IWDT_ReloadCounter(IWDT);
for(i = 0; i < 5; i++)
{
FL_GPIO_ToggleOutputPin(GPIOC, FL_GPIO_PIN_0);
FL_DelayMs(500);
FL_IWDT_ReloadCounter(IWDT);
}
}
}
|
|