ch579M BLE\Peripheral工程睡眠模式下,GPIO外部中断输入导致单片机看门狗超时复位

中断配置及服务程序如下

void gpio_interrupt_init(void) {
    //初始化位输入上拉
    GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_PU);
    //开启下降沿中断
    GPIOB_ITModeCfg(GPIO_Pin_13,GPIO_ITMode_FallEdge);
    //开启GPIO的睡眠唤醒,如果需要的话
    PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE ); 
    //开启GPIO中断
    NVIC_EnableIRQ( GPIO_IRQn );
}
//中断服务程序
void GPIO_IRQHandler(void) {
    GPIOB_ClearITFlagBit(GPIO_Pin_13);
    button_detected = true;
}
uint32_t irq_status;
while(1) {
    TMOS_SystemProcess( );
    SYS_DisableAllIrq( &irq_status );
    if( true == button_detected ) {
        tmos_set_event( Peripheral_TaskID, BUTTON_EVENT);
        button_detected = false;
    }
    SYS_RecoverIrq( irq_status );
}


如图尝试一下:

image.png


参考该篇https://www.wch.cn/bbs/thread-85904-1.html

问题已解决,谢谢。


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