STM32外部中断解析

news2025/1/17 0:16:12

文章目录

  • 前言
  • 一、外部中断是什么
  • 二、STM32F103的外部中断
  • 三、外部中断的中断号
  • 四、HAL库的外部中断初始化流程
  • 总结


前言

本篇文章将带大家了解STM32F103的外部中断。

一、外部中断是什么

外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。

二、STM32F103的外部中断

外部中断一共有20条中断线。
通过观察发现不同组的相同引脚号的引脚连接到了相同的外部中断线上。
在这里插入图片描述
其中
外部中断线 EXTI16连接到PVD输出。
外部中断线 EXTI17连接到RTC警告事件。
外部中断线 EXTI18连接到USB唤醒事件。
外部中断线 EXTI19连接到ETH唤醒事件。
在这里插入图片描述
外部中断既可以选择上升沿也可以选择下降沿,也可以同时使用这两个组成双边沿触发。
在这里插入图片描述

三、外部中断的中断号

在stm32f103xe.h里面我们可以看到外部中断及其他中断的中断号。
不是每一个中断线都有一个中断号,有的中断线是共用一个中断号的。
比如EXTI15_10_IRQn = 40
外部中断线10到15就是共用40这个中断号的。
在这里插入图片描述

四、HAL库的外部中断初始化流程

在stm32f1xx_hal_exti.c里面我们可以看到使用外部中断的方法。
在这里插入图片描述
在stm32f1xx_hal_gpio.c里面我们可以看到引脚想要被配置为外部中断需要做的设置。
使用HAL_NVIC_SetPriority()这个函数设置外部中断优先级。
使用HAL_NVIC_EnableIRQ()这个函数使能中断。
在这里插入图片描述
这里我们还需要对void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)这个函数进行重写,_weak代表这个函数是虚函数我们可以对他进行重写,处理我们自己的一些逻辑。
在这里插入图片描述
总结上面内容:
外部中断初始化流程:
1.使用HAL_NVIC_SetPriority设置外部中断的优先级
2.使用HAL_NVIC_EnableIRQ使能外部中断
3.重定向中断服务函数
4.在中断服务函数中调用HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)然后重定向回调函数void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

总结

本篇文章的讲解就到这里了,想要系统学习STM32的小伙伴可以找我一起交流。
下一篇文章将讲解使用外部中断配置按键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数组名的意义

数组名只有单独放在sizeof内部以及放在&后才代表整个数组的地址。其余情况数组名都表示数组首元素地址。 之前我们说过用sizeof(a)计算的是整个数组的大小,现在我们知道其中的原因了。由于sizeof里的数组名a表示整个数组的地址,故sizeof(a)求的是整…

Android10以上系统Audio音频遇到播放无声时的分析方法

​商务合作 2023年招聘 2023年逆向分析资料汇总 推荐阅读 Android Audio音频系统 Android Audio音频系统之深入浅出 Android Framework/驱动/内核中高级工程师 ​Android10以上系统Audio音频遇到播放视频无声时的分析方法 干货|Android APP应用工程师转Framework工程师(…

51单片机存储结构

之前概要介绍了8151微控制器的结构(也就是51单片机)。相比微处理器,微控制器的区别之一是在一个芯片上有程序存储器(RAM)和数据存储器(RAM)。存储区是微控制器非常重要的内容。 本文就介绍一下8051的存储结构。包括存储器的组织、处理器对存储…

VTK-Tessellator Subdivision

前言:本博文主要研究Tessellator 的Subdivision,对vtk中的所有相关接口进行研究,并找出最优的解决方法。 GeometricObjects中vtkTessellatorFilter的应用实例 待研究对当前的Subdivision进行优化。 vtkTessellatorFilter 位置:…

Docker容器数据卷与数据卷容器

文章目录什么是容器数据卷使用数据卷使用 docker 安装 mysql匿名和具名挂载数据卷容器什么是容器数据卷 Docker理念回顾 将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够 持久化的! 就…

【寒假每日一题】DAY.6 有序序列的合并

牛客网例题:点我做题 描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。数据范围: 1 ≤ n,m ≤ 1000,序列中的值满足0≤val≤30000输入描述: 输入包含三行,第一行包含两个正整…

微信小程序开发起步

一、小程序与普通网页开发的区别 1)运行环境不同。网页运行在浏览器环境中,小程序运行在微信环境中。 2)API不同。由于运行环境不同,所以小程序中无法调用DOM和BOM的API,但是小程序可以调用微信环境提供的各种API&am…

zabbix的安装部署,一看就会

目录 1、系统组成 2、采集模式 3、监控类型 4、相关术语 5、安装部署 1、系统组成 2、采集模式 监控系统数据采集的工作模式可以分为 被动模式(从服务器端到客户端采集数据,对应的英文单词是pull) 主动模式 (客户端主动上报…

java基于springboot的新生报到系统app新生报到安卓app新生入学报到小程序加论文

简介 本项目主要是新生报到系统,包含的新生入学流程的功能:新生可以在app里提交预报到日期确认报到,查看自己的学费缴费记录,更改自己的银行卡号,查看课表,查看寝室,查看自己的专业班级等个人信…

CubeMX配置:定时器中断及串口配置

本文通过CubeMX配置F103RCT6的定时器中断和串口。 文章目录1 引入2 配置过程2.1 配置时钟过程2.2 配置串口过程2.3 定时器中断配置3 生成工程代码4 测试串口及定时器中断周期5 总结1 引入 拿到一个STM32控制器,在啥也没有的情况下从零开始写软件,博主习…

Java K 个一组翻转链表

K 个一组翻转链表困难给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的…

电视为何降价至200元依然没人买?爱奇艺给出了答案

近日爱奇艺提高降低会员的服务内容,消费者要享受到将内容投放到电视就要买更贵的会员服务,引发热议,此举或许能解释国内消费者为何如今不买电视了。2022年电视行业可谓是一个相当惨淡的行业,量价齐跌,随着2022年底的到…

计算机视觉OpenCv学习系列:第二部分、图像操作

第二部分、图像操作第一节、图像读取与显示1.图像理解2.图像读取与显示3.代码练习与测试第二节、图像色彩空间转换1.图像色彩空间2.函数说明与解释3.代码练习与测试第三节、图像对象的创建与赋值1.图像对象属性2.图像对象创建与赋值3.代码练习与测试第四节、图像像素的读写操作…

SpringBoot——关于controller参数校验

参数校验主要使用两个标签Validated和Valid; Valid是Hibernate的注解校验,Validated是spring的,是Valid的增强;这两个标签也有一些不同之处,Valid可以标注在成员属性上也可以嵌套校验,而Validated不行&…

Node.js 操作MySQL数据库

在讲Node.js中引入mysql模块之前先讲一下关于MySQL数据库,首先是关于MySQL数据库的安装和mysql服务以及对mysql命令和可视化工具的一个基本使用;那么在这里已经准备好了关于MySQL数据库的内容了: MySQL 数据库安装详细 : MySQL数…

redis主从复制,一主多仆启动流程

文章目录一、安装redis二、复制修改配置文件三、添加conf配置文件四、开启主从复制五、薪火相传六、反客为主7、哨兵模式一、安装redis redis安装笔记 https://blog.csdn.net/G_GUi/article/details/128361131 二、复制修改配置文件 把redis.conf复制到一个新建文件夹里面&a…

安卓手机还有这么多神仙玩法,关键只有少数人知道

随着“智能手机”的快速更新迭代,手机系统逐渐融入了许多实用功能;今年Android手机市场竞争相当激烈,各大手机品牌都争先恐后地向消费者展示自己的新机型。今天我就来给大家分享几个只有安卓手机才有的隐藏黑科技功能,每个功能都非…

cocos creator新手教程:第003节3D模型的基本概念

3.1 计算机如何制作一个3D模型 讲述这个问题之前,我们先来看下现实生活中我们要做一个模型,应该如何做呢?首先我们要把模型的形状给雕刻构建出来,现实生活中的物体都是由分子组成的连续的表面,计算机是离散的无法做到这…

【jQuery】常用API——尺寸、位置操作

一、jQuery 尺寸 以上参数为空&#xff0c;则是获取相应值&#xff0c;返回的是数字型。如果参数为数字&#xff0c;则是修改相应值。参数可以不必写单位。 <style>div {width: 200px;height: 200px;background-color: pink;padding: 10px;border: 15px solid red;margin…

在Windows中安装Mysql数据库(shawn安装成功记录)

一、下载安装包 首先去官网下载mysql安装包 下载网址:https://dev.mysql.com/downloads/mysql/ 下载Windows系统版本,如下图 注意版本必须是8.xx, 5开头的版本不适合本教程   点击下载,选择自己的文件路径,C盘非C盘都可以(我没有放C盘),路径中不要出现中文…