CH582 PB22唤醒问题

https://www.cnblogs.com/gscw/p/16349577.html

参考上面文章里,设置PB22引脚作为唤醒引脚不能唤醒,但是PA5就可以唤醒,不知哪里设置不对。打算使用PB22既作为boot引脚又能作为唤醒引脚,这样整个系统保留一个按键。


? ? /* 配置唤醒源为 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中断标志,函数会左移14位,所以这里是清除PB8的中断标志

}


你好,你参考的这个博客应该是针对ch573芯片的,ch573可以直接使用pb22引脚作为唤醒引脚,若ch582需要使用pb22作为唤醒引脚,需要额外配置下,如下图:

emobile_2023-10-20_13-18-48.png


重映射后,PB22唤醒可以了,谢谢~!


只有登录才能回复,可以选择微信账号登录