STM32CubeMX的外部中断的使用

发布者:DazzlingGaze最新更新时间:2024-08-02 来源: elecfans关键字:STM32CubeMX  外部中断  运行过程 手机看文章 扫描二维码
随时随地手机看文章

啥是中断?中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

举个例子:

类比一下

在实际的代码中,HAL库的中断处理较为复杂:startup_stm32f103xb.s通过汇编注册了中断处理函数EXTI1_IRQHandler(),在stm32f1xx_it.c中,EXTI_IRQHandler()引用了HAL库的处理函数HAL_GPIO_EXTI_IRQHandler(),其功能主要为判断具体的中断原因,并调用对应的中断回调函数:HAL_GPIO_EXTI_Callback()。用户可以自己重声明中断回调函数(HAL_GPIO_EXTI_Callback()),在其中写入自己的用户逻辑,不出意外的话,你这时候可能会有点懵。上图!

中断处理函数写在EXTI_IRQHandler()或HAL_GPIO_EXTI_Callback()皆可,不过HAL_GPIO_EXTI_Callback()需要重新声明,比如:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(HAL_GetTick()-t>30) { if(GPIO_Pin == GPIO_PIN_1) { duty_cycle=duty_cycle+100; __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_4,duty_cycle); } if(GPIO_Pin == GPIO_PIN_2) { duty_cycle=duty_cycle-100; __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_4,duty_cycle); } } t=HAL_GetTick();}

对于代码的意思不必理会,只需知道这些是自己按需求写的,下面开始连接硬件:

以下是实操工程:

1,配置引脚

2,使能外部中断

3,点击右上角GENERATE CODE生成代码



Hal_GPIO_TogglePin()这个函数可以反转引脚电平,以控制小灯亮灭,多加的那几行代码用来做一个简单的消抖,然后编译,下载。如果没出问题的话,每按一次按键,灯都会改变一次亮灭状态,上面用的是xxxit.c中的Handler函数,下面试一试Callback函数,注释掉刚才加的代码,在main.c中添加如下代码:


编译,下载,运行,效果应该跟刚才一样,下面试一下TIM。


搞完后,小灯应该每秒闪烁5次。注意:

中断里不要使用延时函数Hal_Delay()

TIM中断要手动开启(Hal_TIM_Base_Start_IT())


关键字:STM32CubeMX  外部中断  运行过程 引用地址:STM32CubeMX的外部中断的使用

上一篇:浅析STM32单片机的启动文件
下一篇:stm32必须要移植系统吗

推荐阅读最新更新时间:2026-03-12 12:47

S3C2440启动程序运行过程
s3c2440有两种启动方式,一种Nor flash 启动,一种Nand flash 启动。 由于NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8个BANK中分配地址空间。如果S3C2440被配置成从Nand Flash启动,在S3C2440上电后,Nand Flash控制器的会自动的把Nand Flash上的前4K数据搬移到内部SRAM中,也就是所谓的”Steppingstone”, 同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。系统会从这个内部SRAM中启动,程序员需要完成的工作,就是把最核心的启动程序放在Nand Flash的前4K中,也
[单片机]
S3C2440启动程序<font color='red'>运行</font><font color='red'>过程</font>
S3C2440 nand sdram启动时代码的运行转移过程
在reset期间,S3C2440 Nand Flash控制器通过和nand flash相连的管脚pin的状态获得信息(NCON,GPG13,GPG14,GPG15).启动电源或者系统复位后,NAND Flash控制器 会自动的下载4Kboot loader代码,下载了的boot loader 代码之后就在setppingstone 开始执行了。 S3C2440的boot code能够在外部的nand flash内存中执行。为了支持nand flash 的boot 引导,S3C2440有一个内部的SDRAM缓存称为“Steppingstone”,当booting的时候,Nand Flash的首4kbyte会被导入到Stepping
[单片机]
揭秘5G标准制定过程 3GPP一直这样运行
  目前, 5G 标准化正在紧锣密鼓地进行当中,标准的进展成为行业内关注的重点。同时,作为全球 5G 标准的制定组织 3GPP 也受到了广泛的关注。 3GPP 究竟是怎样的组织?如何制定标准? 5G 标准目前进展如何?高通在 3GPP 中发挥了什么作用?近日,在高通举办的5G媒体沙龙“揭秘3GPP”中,3GPP RAN1的主席陈万士博士以及高通技术标准副总裁柯诗亚为我们进行了详细的解答。下面就随网络通信小编一起来了解一下相关内容吧。    3GPP组织:制定和维护全球无线通信标准   陈万士介绍,3GPP是一个国际化标准组织,由全球七大标准制定组织(SSO)合作形成。其宗旨非常简单,就是制定和维护全球无线通信标准,而不是关注
[网络通信]
ucos在s3c2410上运行过程整体剖析之基础知识--ADS编译、链接器
我在学习嵌入式操作系统UCOS时,有很大的迷茫之处,在于我不知道我用的工具到底帮我干了些神马工作。下面就说一下我当时的疑问: 1:编译器和链接器干了些神马?我现在也还没能力知道它是怎么干的这些工作。以后慢慢来呗。但当时我连它干了神马都不清楚。 2:它输入的是源程序,那他输出的是什么?有格式吗?是什么样子那? 重重疑问。 ADS编译器的目的是怎么把高级语言编程能在ARM平台上直接运行的东东。 而我们的目的是看看他干了些神马,让我们了解一下它以及他链接出来的东东是什么样子。对嵌入式整个工程开发做了哪些贡献,这样我们就能更好的使用它了。是不是。 关于ARM嵌入式开发的要点和步骤请参考 基于ARM的嵌入式系统程序开发要点.pdf ,这
[单片机]
ucos在s3c2410上运行过程整体剖析之基础知识
用户模式(user模式),运行应用的普通模式; 快速中断模式(fiq模式),用于支持数据传输或通道处理; 中断模式(irq模式),用于普通中断处理。 超级用户模式(svc模式),操作系统的保护模式 异常中断模式(abt模式),输入数据后登入或预取异常中断指令 系统模式(sys模式),是操作系统使用的一个有特权的用户模式 未定义模式(und模式),执行了未定义指令时进入该模式 外部中断,异常操作或软件控制都可以改变中断模式。大多数应用程序都时是在用户模式下运行。进入特权模式是为了处理中断或异常请求或操作保护资源服务的。 这些工作模式是芯片硬件提供的程序运行的不同环境,不同的模式有不同的硬件访问权限,使用不同的寄存器。这
[单片机]
ucos在s3c2410上<font color='red'>运行</font><font color='red'>过程</font>整体剖析之基础知识
配置CLion + STM32CubeMX开发环境
0.前言 由于本人对Keil的编译环境不太满意,故在网上搜寻了各种代替方法,最终选定了CLoin的IDE,它可以支持从STM32CubeMX生成的代码直接编译,节省了大量时间去配置初始化代码,以下只作为本人的一次环境搭建的踩坑记录,希望对正在解决问题的你有所帮助。 本次配置参考了如下几位大佬的说明 配置CLion用于STM32开发【优雅の嵌入式开发】 - 哔哩哔哩 (bilibili.com) 使用Clion优雅开发STM32 _哔哩哔哩_bilibili Clion实现Stm32标准库开发 - 哔哩哔哩 (bilibili.com) 网页链接 1.环境所需配置搭建 首先确保已经安装了stlink的驱动,如使用的是
[单片机]
STM32CubeMX操作
1.更改库安装路径 2.下载库 这里下载F1
[单片机]
<font color='red'>STM32CubeMX</font>操作
01 STM32CubeMX 安装和配置
STM32CubeMX软件工具,可以: (1)管理(安装、升级、移除)STM32器件的固件包和扩展包 (2)对MCU或MPU进行外设图形化配置 (3)生成外设初始化函数和IDE项目框架 STM32CubeMX支持的IDE软件:EWARM、MDK-ARM、TrueSTUSIO、STM32CubeIDE、SW4STM32、MakeFile ----摘自《STM32Cube高效开发教程(基础篇)》p6 一、下载安装STM32CubeMX 1.下载 官方下载地址: https://www.st.com/en/development-tools/stm32cubemx.html 。滑到网页下方,选择对应得版本点红色按钮即可下载(下载之前,
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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