STM32F4 EXTI外部中断(二)

发布者:幸福之舞最新更新时间:2022-06-13 来源: eefocus关键字:STM32F4  EXTI  外部中断 手机看文章 扫描二维码
随时随地手机看文章

一. 外部中断结构体

1. EXTI_InitTypeDef 结构体

image.png

2. 中断线标号

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

2. 例

配置PB14为外部中断


void exti_init(void)

{

    //配置GPIOB_14引脚为输入

    //使能GPIO时钟

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);

    //定义GPIO_InitTypeDef 结构体

    GPIO_InitTypeDef GPIO_InitStructure;

    //选择引脚

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;

    //配置工作模式为输入模式

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; 

    //配置工作频率

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

    //配置上拉模式

    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

    //初始化IO参数

    GPIO_Init(GPIOF,&GPIO_InitStructure);

    

    //使能时钟

    //使能SYSCFG时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);

    //建立中断线14与PB14连接

    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource14);

    

    //配置EXTI外部中断结构体

    //定义结构体

    EXTI_InitTypeDef EXTI_InitStructure;

    //配置外部中断线14

    EXTI_InitStructure.EXTI_Line = EXTI_Line14;

    //配置模式为中断请求

    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

    //配置触发方式为下降沿触发

    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

    //使能外部中断

    EXTI_InitStructure.EXTI_LineCmd = ENABLE;

    //配置外部中断

    EXTI_Init(&EXTI_InitStructure);

    

    //配置NVIC结构体

    //定义结构体

    NVIC_InitTypeDef NVIC_InitStructure;

    //配置中断源为外部中断15~10

    NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10IRQn;

    //配置抢占优先级

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

    //配置响应优先级

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

    //使能中断通道

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

    //配置中断参数

    NVIC_Init(&NVIC_InitStructure);

    

}


//中断服务函数

void EXTI15_10_IRQHandler(void)

{

    //判断外部中断14是否发生

    if(EXTI_GetITStatus(EXTI_Line14) != RESET)

{

        //清除中断标志位

EXTI_ClearITPendingBit(EXTI_Line13);

}

}

关键字:STM32F4  EXTI  外部中断 引用地址:STM32F4 EXTI外部中断(二)

上一篇:基于STM32的步进电机实验
下一篇:STM32 HAL库串口不定长数据

推荐阅读最新更新时间:2024-11-12 12:12

STM32系统学习——EXTI外部中断
一、 EXTI 简介 EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 二、 EXTI 功能框图 EXTI 的功能框图包含了 EXTI 最核心内容,掌握了功能框图,对 EXTI 就有一个整体的把握,在编程时思路就非常清晰。EXTI功能框图见图。 在图可以看到很多在信号线上打一个斜杠并标注“20”字样,这个表示在控制器内部类似的信号线路有 20 个,这
[单片机]
STM32系统学习——<font color='red'>EXTI</font>(<font color='red'>外部中断</font>)
STM32F4系列HAL库配置定时器实验——输入捕获
输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器的计数频率,我们就可以算出 t1~t2 的时间,从而得到高电平脉宽。 在 t1~t2 之间,可能产生 N 次定时器溢出,这就要求我们对定时器溢出,做处理,防止高电平太长,导致数
[单片机]
<font color='red'>STM32F4</font>系列HAL库配置定时器实验——输入捕获
STM32开发笔记50:STM32F4+DP83848以太网通信指南系列(四)
本章为系列指南的第四章,这一章将正式进入以太网的配置和使用。首先我们关注一下PHY的配置,前面讲到,我们的工程使用了开发板上的一颗DP83848芯片。 RMII和ADDR的确定 接下来我们来看开发板的原理图: 通过电路原理图可以看到接线方式是使用RMII接口模式接线的,因此接下来我们在配置PHY的时候注意要是用RMII。 我们知道DP83848,以及任何一个PHY芯片,都是有5个bit的地址信号的,RMII通信时会携带ADDR数据,只有ADDR吻合的PHY才会有响应。先来看看原理图上DP83848的管脚定义,原理图上DP83848的42号脚标注的PHYAD0,并且引脚悬空了,没有特别的处理。我们再来看看DP83848的数据手
[单片机]
STM32开发笔记50:<font color='red'>STM32F4</font>+DP83848以太网通信指南系列(四)
STM32外部中断和IWDG
实验平台:正点原子战舰开发板 系统:windows 7 64位 编译器:MDK 4.72a 参考例程:ATK串口例程,野火ISO串口例程 外部中断 中断主要分为两种: 1、系统异常中断也可以说的内核异常,这类异常中断有些是不可以控制的,如RESET,NMI,FAULT. 2、外部中断,这些中断都是可以设置的,每个GPIO都可以被设置为中断。 一、NVIC控制器 当要使用中断时候都要对NVIC进行设置 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct); NVIC_IRQChannel 需要配置的中断线 NVIC_IRQChannelCmd 使能或关闭相应中断向量的
[单片机]
stm32F407(CORTEX-M4)之RCC配置与TIM2的PWM
之前我已经发过了关于TIM2的PWM,但是没有自己配置RCC时钟,用到的系统时钟、HCLK、PCLK1与PCLK2都是系统启动代码里默认设置的,但是由于应用场合不同,默认的设置可能不满足用户需要,这时便需要手动配置。还是同样的问题,M4的资料太少,我只能参考函数的英文说明(我已经习惯看英文了,呵呵)来自己配置,不敢独享,现分享如下: (我的外部时钟为25MHz) #include static __IO uint32_t TimingDelay; //__IO为volatile的宏定义 int8_t LED_Flag = 1; //LED灯翻转标志位 void RCC_Config(void); voi
[单片机]
STM32外部中断及定时器编程示例
简介:STM32外部中断及定时器编程示例 /*======================================================================================== *名 称: main.c *功 能: *入口 参数: *说 明: *范 例: *编者 时 间: *========================================================================================*/ #include stm32f10x.h #include 12864.h Er
[单片机]
STM32F4 FFT 音乐频谱 不要太easy!
在数字信号处理当中,我们最常用的就是卷积和离散傅里叶变换(DFT)。可以证明卷积、相关、谱分析、滤波等都可以转化为离散傅里叶变换来实现。大学学了信号和系统、数字信号处理对于傅里叶变换有了更深的理解。 下面介绍一种超级简单的方法做一个用FFT做一个音乐频谱仪。过程中参考了正点原子的STM32F4教程,在此,要特别感谢正点原子。 先看下效果: 系统采用基于ARM-Cortex M4核的STM32F407ZGT6单片机,调用官方DSP库进行4096点FFT运算,然后实时显示音乐信号的频谱。 下面将重点介绍核心函数和算法: 1、第一个函数是 arm_status arm_cfft_radix4_init_f32(arm_c
[单片机]
STM32之五外部中断(下)
通过对外部中断理论的些许理解,这次我们利用两个按键key1和key2来控制led1和led2的亮灭,按key1进入key1的中断,控制对应的led亮灭,按key2进入key2的中断,控制相应的led的亮灭 同样,涉及到中断,我们要建立两个文件,exti.c及exti.h,首先来看看exti.c 用到中断,自然我们要用到stm32f10x_it.c函数,将中断响应函数放在里面,打开这个文件你会发现里面只是给出了部分中断函数,找来找去也没有我们需要的中断函数体,这时需要我们自己添加函数体,看下我添加的函数体: 但是这个函数名可不是随便起的,具体每个中断函数体的函数名怎么书写,我们可以打开startup_stm32f10x_hd.
[单片机]
STM32之五<font color='red'>外部中断</font>(下)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved