https://www.cnblogs.com/gscw/p/16349577.html
參考上面文章里,設(shè)置PB22引腳作為喚醒引腳不能喚醒,但是PA5就可以喚醒,不知哪里設(shè)置不對(duì)。打算使用PB22既作為boot引腳又能作為喚醒引腳,這樣整個(gè)系統(tǒng)保留一個(gè)按鍵。
? ? /* 配置喚醒源為 GPIO - PA5 */
? ? GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);
? ? GPIOA_ITModeCfg(GPIO_Pin_5, GPIO_ITMode_FallEdge); // 下降沿喚醒
? ? PFIC_EnableIRQ(GPIO_A_IRQn);
? ? PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay);
? ? /* 配置喚醒源為 GPIO - PB22 */
? ? GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeIN_PU);
? ? GPIOB_ITModeCfg(GPIO_Pin_22, GPIO_ITMode_FallEdge); // 下降沿喚醒
? ? PFIC_EnableIRQ(GPIO_B_IRQn);
? ? PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay);
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOA_IRQHandler(void)
{
? ? GPIOA_ClearITFlagBit(GPIO_Pin_5);
}
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOB_IRQHandler(void)
{
? ? GPIOB_ClearITFlagBit(GPIO_Pin_8);? ?//清除PB22中斷標(biāo)志,函數(shù)會(huì)左移14位,所以這里是清除PB8的中斷標(biāo)志
}