CH32V208,在freertos下使用stop模式

我配置了PA3的下降沿外部中斷,用來喚醒mcu。在systick中斷處,我設(shè)置了一個(gè)每進(jìn)入一次中斷就會(huì)自增的volatile變量,并通過一個(gè)任務(wù)來打印其數(shù)值。

首先我讓mcu進(jìn)入stop模式,但在中斷喚醒之后,程序運(yùn)行不正常。xTaskGetTickCount() 和我設(shè)置的變量都不再變化,說明沒有再進(jìn)入systick中斷,此時(shí)vTaskDelay等函數(shù)也無法再使用。

請(qǐng)問有什么辦法,可以在設(shè)備被喚醒后,仍能正常運(yùn)行?

// 以下是我進(jìn)入stop模式調(diào)用的函數(shù)

void pwr_stop(void)

{

? ? // 配置中斷

? ? GPIO_InitTypeDef GPIO_InitStructure={0};

? ? EXTI_InitTypeDef EXTI_InitStructure = {0};

? ? NVIC_InitTypeDef NVIC_InitStructure = {0};


? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);


? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

? ? GPIO_InitStructure.GPIO_Pin = USART2_RX_PIN;

? ? GPIO_Init(USART2_RX_PORT, &GPIO_InitStructure);


? ? GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3);

? ? EXTI_InitStructure.EXTI_Line = EXTI_Line3;

? ? EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

? ? EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

? ? EXTI_InitStructure.EXTI_LineCmd = ENABLE;

? ? EXTI_Init(&EXTI_InitStructure);


? ? NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;

? ? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;

? ? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

? ? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

? ? NVIC_Init(&NVIC_InitStructure);


????// 關(guān)閉systick計(jì)數(shù)

? ? SysTick->CTLR &= 0xFFFFFFFE;


? ? // 進(jìn)入stop模式

? ? RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

? ? printf("\r\n ********** \r\n");

? ? PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);

? ??

????// 退出stop模式

? ? portENTER_CRITICAL();

? ? // 恢復(fù)系統(tǒng)時(shí)鐘HSE

????SystemInit();

? ? printf("\r\n ########## \r\n");

????// 重新開始systick計(jì)數(shù)

? ? SysTick->CTLR |= 0x00000001;

? ? // 使能systick中斷

? ? NVIC_SetPriority(SysTicK_IRQn, 0xf0);

? ? NVIC_EnableIRQ(SysTicK_IRQn);

? ? portEXIT_CRITICAL();

}


您好,可以參考一下附件例程,附件例程測試進(jìn)入stop模式再喚醒是沒有問題的,可以參考一下。后續(xù)若有問題,可郵箱(lzs@wch.cn)溝通。

icon_rar.gifCH32V208 FreeRTOS_STOP.zip



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频