外部中断进不去

2019-12-31 19:14发布

  
#include "exti.h"

/**
  * @brief  配置嵌套向量中断控制器NVIC
  * @param  无
  * @retval 无
  */
static void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
  /* Configure one bit for preemption priority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
  /* 配置PB8.9为中断源 */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}

/**
  * @brief  配置 PC13 为线中断口,并设置中断优先级
  * @param  无
  * @retval 无
  */
void EXTI_PB89_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;

        /* config the extiline(PC13) clock and AFIO clock */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
                                                                                               
        /* config the NVIC(PC13) */
        NVIC_Configuration();

        /* EXTI line gpio config(PC13) */       
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;      
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         // 上拉输入
  GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;      
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         // 上拉输入
  GPIO_Init(GPIOB, &GPIO_InitStructure);

        /* EXTI line(PC13) mode config */
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
  EXTI_InitStructure.EXTI_Line = EXTI_Line8;
        EXTI_InitStructure.EXTI_Line = EXTI_Line9;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿中断
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}
/*********************************************END OF FILE**********************/


这个是我外部中断的初始化程序,要以PB8和PB9为中断口,就是进不去,不知道为什么
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
xuboluan
2020-01-01 03:41
於氏天鹰 发表于 2017-2-27 22:10
或者说在这些地方有什么容易出现错误的地方吗,请指正一下

不妨把代码整理下 ,每个初始化 写一起
        /* EXTI line(PC13) mode config */
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
  EXTI_InitStructure.EXTI_Line = EXTI_Line8|EXTI_Line9;           //我感觉是这个地方的问题,要不是就是你 中断函数写的有问题
//        EXTI_InitStructure.EXTI_Line = EXTI_Line9;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿中断
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

一周热门 更多>