STM32-嵌入式学习笔记03-EXTI中断的分析及应用

简介: STM32-嵌入式学习笔记03-EXTI中断的分析及应用

   EXTI中断/事件控制器,管理了控制器的20根中断/事件线。每个对应了一个边沿检测器,可以实现输入信号的上升沿或者下降沿检测,EXTI可以实现对每个中断或者事件的单独配置

   这里中断通常是指GPIO的中断   事件可以是AD/DA转换  TIM定时器等···

通过书上的EXTI 功能框图可以清楚的知道配置EXTI中断的具体过程

image.png

这里拿EXTI控制GPIO为例:

编程要领:

1)初始化用来产生中断的GPIO

2)初始化EXTI

3)配置NVIC

4)编写中断函数

这里只贴出配置EXTI和中断函数的编写:

voidEXTI_Key_config(void)
{
GPIO_InitTypeDefGPIO_InitStructure;
EXTI_InitTypeDefEXTI_InitStructure;
//配置中断优先级EXTI_NVIC_Config();
//开启KEY相关GPIO的外设时钟RCC_APB2PeriphClockCmd( KEY1_GPIO_CLK, ENABLE);
//选择控制的引脚GPIO_InitStructure.GPIO_Pin=KEY1_GPIO_PIN;    
//选择输出方式为浮空输出GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;   
//设置引脚速率为50MHZGPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; 
//调用库函数,初始化GPIOGPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure); 
//初始化EXTIGPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
RCC_APB2PeriphClockCmd( KEY1_GPIO_CLK, ENABLE);
//配置EXTI的中断线EXTI_InitStructure.EXTI_Line=EXTI_Line0;
//配置EXTI模式EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
//配置触发类型EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStructure); 
}
voidEXTI0_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) !=RESET )
    {
LED_TOGGLE;
    }
EXTI_ClearITPendingBit(EXTI_Line0);
//清除中断}
目录
相关文章
|
15天前
|
传感器 数据采集 物联网
STM32:高性能微控制器与广泛的应用领域
STM32:高性能微控制器与广泛的应用领域
50 0
|
16天前
|
数据采集 IDE 编译器
STM32微控制器入门及应用实例
STM32微控制器入门及应用实例
|
3月前
|
芯片
STM32F103标准外设库——中断应用/事件控制器(七)
STM32F103标准外设库——中断应用/事件控制器(七)
50 0
STM32F103标准外设库——中断应用/事件控制器(七)
|
2月前
|
数据处理 C语言 智能硬件
STM32微控制器在智能家居中的应用
STM32微控制器在智能家居中的应用
71 0
|
15天前
|
IDE 物联网 开发工具
STM32:微控制器领域的璀璨明星与其实践应用
STM32:微控制器领域的璀璨明星与其实践应用
25 0
|
4月前
|
消息中间件 物联网 Linux
STM32面试知识点总结分析
STM32面试知识点总结分析
74 0
|
4月前
|
存储 芯片 C++
STM32启动详细流程分析(一)
STM32启动详细流程分析(一)
96 0
|
1月前
|
芯片
嵌入式STM32中时钟系统详细分析
嵌入式STM32中时钟系统详细分析
61 0
嵌入式STM32中时钟系统详细分析
|
7月前
|
传感器 安全
嵌入式 STM32 SHT31温湿度传感器
嵌入式 STM32 SHT31温湿度传感器