CH582 GPIOA中断 会跑飞

我是用BLE_串口例程修改的 代码 在增加了一些代码后发现 GPIOA中断会跑飞,我是过上升沿触发 和高电平触发 都会跑飞 



    GPIOA_ModeCfg(GPIO_Pin_10,GPIO_ModeIN_Floating); // 触摸中断

     GPIOA_ITModeCfg(GPIO_Pin_10,GPIO_ITMode_RiseEdge); //上升延

     GPIOA_ClearITFlagBit(GPIO_Pin_10); /* 清除中断标志 */

     PFIC_EnableIRQ(GPIO_A_IRQn);





void GPIOA_IRQHandler(void)

{

    /* 本函数可以作为在本工程rt-thread nano中的中断函数写法示例 */

    uint16_t flag;

;

    flag = GPIOA_ReadITFlagPort();

    PRINT("flag = %x\r\n",flag);

    if((flag & GPIO_Pin_10) != 0)

    {

        ScanStatus |= 1<<7;

        PRINT("进入中断\r\n");

    }

    GPIOA_ClearITFlagBit(GPIO_Pin_10); /* 清除中断标志 */


}


您好,在每个中断服务函数之前都要加上两行修饰如下。

__INTERRUPT    //默认启用了硬件压栈,此处取消多余的压栈操作

__HIGH_CODE    //将代码搬运到ram中运行,比codeflash中跑代码更快


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