STM32F4 外部中断EXTI【库函数操作】

也是一个半生不熟的东西,进行了简单的中断处理。
软件环境:MDK470a
硬件环境:STM32F4-Discovery。按键B1连接在F4芯片的PA0引脚。当按键按下时,引脚电平被拉底。
功能描述:按压按键B1时,触发外部中断。进入中断处理函数后,通过串口发送消息。
实现步骤:
1、打开PA时钟,设置PA0引脚为输入。

void EXTI_GPIO_Congig(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Pin = GPIO_PinSource0;
  GPIO_InitStructure.GPIO_Speed =GPIO_Speed_100MHz;
  GPIO_Init(GPIOA,&GPIO_InitStructure);
 
}

2、打开系统配置控制器(System configuration controller)时钟。
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
关于系统控制寄存器(SYSCFG)的功能,是F4系列新增的。功能如下:
The system configuration controller is mainly used to remap  the memory accessible in the code area, select the Ethernet PHY interface and manage the external interrupt line
connection to the GPIOs.
SYSCFG主要用于映射访问CODE区域的内存、选择以太网的什么接口,管理外部中断线到GPIO的连接。
设置外部中断,还要设置SYSCFG的外部中断配置寄存器。
3、配置外部中断EXTI的工作方式.
    映射到PA0,即线0,使用中断模式下降沿触发。
   设置EXTI寄存器的工作方式交给了库函数。

void EXTI_Config(void)
{
  EXTI_GPIO_Congig();
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
 
  EXTI_InitStructure.EXTI_Line = EXTI_Line0;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_Init(&EXTI_InitStructure);
 
}

4、编写中断处理函数,实现向串口打印信息。
     固定的函数名:void EXTI0_IRQHandler(void)。
     进入中断处理函数后,首先检查是否为线0的中断。如果是,则清除这个中断标志。之后就可以发送消息了。
     消息发送完成之后,清除在处理外部中断期间到来的外部中断。使用EXTI_ClearITPendingBit()完成

void EXTI0_IRQHandler(void)
{
  if(SET == EXTI_GetITStatus(EXTI_Line0))
  {   
    EXTI_ClearFlag(EXTI_Line0);
    printf("i am in exti irqhandler\r\n");
    printf("and the extiflag is cleared\r\n");
    EXTI_ClearITPendingBit(EXTI_Line0);
  } 
}

Technorati 标记: STM32F4, EXTI
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值