外部中断实验

1.外部中断介绍
1.1 EXTI简介
     STM32F10x外部中断/事件控制器(EXTI)包含多达 20 个用于产生事 件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置,以选 择类型(中断或事件)和相应的
     触发事件(上升沿触发、下降沿触发或 边沿触发),还可独立地被屏蔽。
1.2 EXTI结构框图
                                  

 1.3 外部中断/事件线映射
         STM32F10x的EXTI具有20个中断/事件线,如下:
           

                       

 

2.外部中断配置步骤

要使用外部中断我们就需要先配置它,通常都需经过这几步:(EXTI 相关库函数在stm32f10x_exti.c和stm32f10x_exti.h文件中)

   1)使能IO口时钟,配置IO口模式为输入
(2)开启 AFIO 时钟,设置 IO 口与中断线的映射关系
           RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
           void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
          GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
(3)配置中断分组(NVIC),使能中断

(4)初始化EXTI,选择触发方式
  

void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
typedef struct
{
  uint32_t EXTI_Line;               //中断/事件线
  EXTIMode_TypeDef EXTI_Mode;       //EXTI模式
  EXTITrigger_TypeDef EXTI_Trigger; //EXTI触发方式
  FunctionalState EXTI_LineCmd;     //中断线使能或失能 
}EXTI_InitTypeDef;

(5)编写EXTI中断服务函数

EXTI0_IRQHandler                                                          
EXTI1_IRQHandler                                                           
EXTI2_IRQHandler                                                          
EXTI3_IRQHandler                                                         
EXTI4_IRQHandler 
EXTI9_5_IRQHandler 
EXTI15_10_IRQHandler

3.硬件电路

 4.编写外部中断控制程序

要实现外部中断方式控制LED,程序框架如下:
(1)初始化对应端口的EXTI
(2)编写EXTI中断函数
(3)编写主函数

 

 


        

猜你喜欢

转载自www.cnblogs.com/DXGG-Bond/p/11831027.html