打印

CH573中断进不去

[复制链接]
4735|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CGX990507|  楼主 | 2021-8-18 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void KEY_GPIO_Init(void)
{
    GPIOB_ModeCfg(GPIO_Pin_22,GPIO_ModeIN_PU);//初始化位输入上拉
    GPIOB_ITModeCfg(GPIO_Pin_22,GPIO_ITMode_FallEdge);//开启下降沿中断
    PFIC_EnableIRQ( GPIO_B_IRQn );//开启GPIOB中断}
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOB_IRQHandler(void)
{
    uint16_t GPIOB_irqFlag = GPIOB_ReadITFlagPort();
    if( GPIOB_irqFlag & GPIO_Pin_22 )
    {
        GPIOB_ClearITFlagBit(GPIO_Pin_22);
        if(GPIOB_ReadPortPin(GPIO_Pin_22) == 0)
        {
             按键控制;
        }
    }
}

进不去中断

使用特权

评论回复

相关帖子

沙发
Taoyukai| | 2021-8-18 17:27 | 只看该作者
int main()
{

  SetSysClock( CLK_SOURCE_PLL_60MHz );

  /* 配置串口调试 */
  DebugInit();
  PRINT( "Start @ChipID=%02X\n", R8_CHIP_ID );
  
  GPIOB_ModeCfg(GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_22,GPIO_ModeIN_PU);
  GPIOB_ITModeCfg(GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_22,GPIO_ITMode_FallEdge);
  PFIC_EnableIRQ(GPIO_B_IRQn);

  while( 1 )
    ;
}

__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOB_IRQHandler( void )                        //GPIOB中断服务程序
{
    uint32_t GPIOB_irqFlag = GPIOB_ReadITFlagPort();

    PRINT("GPIOB_irqFlag = 0x%08X\r\n",GPIOB_irqFlag);
   if(GPIOB_irqFlag&GPIO_Pin_15)
   {
      PRINT("Run at EXTI GPIO_Pin_15 \r\n");
      GPIOB_ClearITFlagBit(GPIO_Pin_15);     /* Clear Flag */
   }
   if(GPIOB_irqFlag&GPIO_Pin_14)
   {
      PRINT("Run at EXTI GPIO_Pin_14 \r\n");
      GPIOB_ClearITFlagBit(GPIO_Pin_14);     /* Clear Flag */
   }
   if(GPIOB_irqFlag&GPIO_Pin_13)
   {
      PRINT("Run at EXTI GPIO_Pin_13 \r\n");
      GPIOB_ClearITFlagBit(GPIO_Pin_13);     /* Clear Flag */
   }

   if(GPIOB_irqFlag&(GPIO_Pin_22))
  {
         PRINT("Run at EXTI GPIO_Pin_22 \r\n");
         GPIOB_ClearITFlagBit(GPIO_Pin_22);    /* Clear Flag */
  }
}


去除警告
#define        GPIOB_ClearITFlagBit( pin )                (R16_PB_INT_IF = (uint16_t)((pin)|(((pin)&(GPIO_Pin_22|GPIO_Pin_23))>>14)))                /* 清除GPIOB端口引脚中断标志状态 */


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝