打印

关于F103指南者EXTI——外部中断事件控制器代码的问题!!!

[复制链接]
626|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
菊江先生|  楼主 | 2020-4-24 18:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
F103指南者EXTI外部中断例程代码中,EXTI中断配置如下:void EXTI_Key_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;

        /*开启按键GPIO口的时钟*/
        RCC_APB2PeriphClockCmd(KEY1_INT_GPIO_CLK,ENABLE);
                                                                                                
        /* 配置 NVIC 中断*/
        NVIC_Configuration();
        
/*--------------------------KEY1配置-----------------------------*/
        /* 选择按键用到的GPIO */        
  GPIO_InitStructure.GPIO_Pin = KEY1_INT_GPIO_PIN;
  /* 配置为浮空输入 */        
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(KEY1_INT_GPIO_PORT, &GPIO_InitStructure);

        /* 选择EXTI的信号源 */
  GPIO_EXTILineConfig(KEY1_INT_EXTI_PORTSOURCE, KEY1_INT_EXTI_PINSOURCE);
  EXTI_InitStructure.EXTI_Line = KEY1_INT_EXTI_LINE;
        
        /* EXTI为中断模式 */
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        /* 上升沿中断 */
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  /* 使能中断 */        
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
        
  /*--------------------------KEY2配置-----------------------------*/
        /* 选择按键用到的GPIO */        
  GPIO_InitStructure.GPIO_Pin = KEY2_INT_GPIO_PIN;
  /* 配置为浮空输入 */        
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(KEY2_INT_GPIO_PORT, &GPIO_InitStructure);

        /* 选择EXTI的信号源 */
  GPIO_EXTILineConfig(KEY2_INT_EXTI_PORTSOURCE, KEY2_INT_EXTI_PINSOURCE);
  EXTI_InitStructure.EXTI_Line = KEY2_INT_EXTI_LINE;
        
        /* EXTI为中断模式 */
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        /* 下降沿中断 */
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  /* 使能中断 */        
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}
问题是:代码中并没有使能GPIOC的时钟,怎么还能初始化GPIOC?但是我把代码烧到指南者板子上,程序运行正确,很疑惑啊!!!是不是开启了AFIO的时钟,就默认使能GPIOC时钟了???
代码中只有RCC_APB2PeriphClockCmd(KEY1_INT_GPIO_CLK,ENABLE);使能时钟函数。
KEY1_INT_GPIO_CLK宏定义如下
#define KEY1_INT_GPIO_CLK          (RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO)

使用特权

评论回复

相关帖子

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

本版积分规则

446

主题

447

帖子

0

粉丝