STM32
直播中

王晾其

7年用户 956经验值
私信 关注
[问答]

PC13 PC14 PC15作为外部中断输入口,频繁进入中断是为什么?

void PC13_14_15_Gpio(void)//PC13  PC14  PC15配置为普通IO浮空外部上拉输入
{
   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE );
PWR_BackupAccessCmd( ENABLE );/* 允许修改RTC和后备寄存器*/
RCC_LSEConfig( RCC_LSE_OFF ); /* 关闭外部低速时钟,PC14+PC15可以用作普通IO*/
BKP_TamperPinCmd(DISABLE); /* 关闭入侵检测功能,PC13可以用作普通IO*/

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG; //外部上拉,浮空输入
GPIO_Init(GPIOC,  GPIO_InitStructure);

PWR_BackupAccessCmd(DISABLE);/* 禁止修改RTC和后备寄存器*/
//BKP_ITConfig(DISABLE); ? ? ? /* 禁止TAMPER 中断*/
}
void EXTI0_Config(void)//外部中断配置
{
  /* Enable GPIOA clock */
        
        GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
        NVIC_InitTypeDef NVIC_InitStructure;
        
        EXTI_InitTypeDef EXTI_InitStructure;
        EXTI_InitStructure.EXTI_Line = EXTI_Line13|EXTI_Line14|EXTI_Line15;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;  
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init( EXTI_InitStructure);

  GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13|GPIO_PinSource14|GPIO_PinSource15);


        NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init( NVIC_InitStructure);
}

void        EXTI15_10_IRQHandler(void)  //即使PC13  PC14  PC15电平没有变化,也一直进中断
  {
          if(EXTI_GetITStatus(EXTI_Line13|EXTI_Line14|EXTI_Line15)!=RESET)//
            {

           EXTI_ClearITPendingBit(EXTI_Line13|EXTI_Line14|EXTI_Line15); //即使PC13  PC14  PC15脚电平没有变化,也一直进外部中断
                }
}

各位大佬,我这个是用PC13  PC14  PC15作为外部中断输入口的配置,有外部上拉电阻,为什么会一直进中断,即使外部电平没有变化


回帖(1)

李凤

2024-4-3 14:27:13
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13|GPIO_PinSource14|GPIO_PinSource15);
注意这句代码,GPIO_PinSource15不是位的关系。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分