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);
//清除中断}
目录
相关文章
|
10月前
|
编译器 开发工具 C语言
探索STM32的无限可能:应用与发展
探索STM32的无限可能:应用与发展
64 2
|
10月前
|
物联网 开发者 智能硬件
STM32:引领嵌入式系统新时代的微控制器
STM32:引领嵌入式系统新时代的微控制器
|
10月前
|
数据采集 IDE 编译器
STM32微控制器入门及应用实例
STM32微控制器入门及应用实例
|
10月前
|
传感器 数据采集 物联网
STM32:高性能微控制器与广泛的应用领域
STM32:高性能微控制器与广泛的应用领域
582 0
|
10月前
|
芯片
STM32F103标准外设库——中断应用/事件控制器(七)
STM32F103标准外设库——中断应用/事件控制器(七)
604 0
STM32F103标准外设库——中断应用/事件控制器(七)
|
10月前
|
数据处理 C语言 智能硬件
STM32微控制器在智能家居中的应用
STM32微控制器在智能家居中的应用
343 0
|
1月前
|
数据可视化 关系型数据库 MySQL
嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化
通过本文的介绍,我们详细讲解了如何结合嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议,实现数据的采集、传输、存储和可视化。这种架构在物联网项目中非常常见,可以有效地处理和展示实时数据。希望本文能帮助您更好地理解和应用这些技术,构建高效、可靠的数据处理和可视化系统。
165 82
|
10月前
|
开发者
STM32中断详解及其编程实践
STM32中断详解及其编程实践
509 1
|
6月前
|
存储 传感器 Linux
STM32微控制器为何不适合运行Linux系统的分析
总的来说,虽然技术上可能存在某些特殊情况下将Linux移植到高端STM32微控制器上的可能性,但从资源、性能、成本和应用场景等多个方面考虑,STM32微控制器不适合运行Linux系统。对于需要运行Linux的应用,更适合选择ARM Cortex-A系列处理器的开发平台。
393 0
|
9月前
|
Web App开发 传感器 Linux
【嵌入式软件工程师面经】STM32单片机
【嵌入式软件工程师面经】STM32单片机
235 1