0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32CubeMX的外部中断的使用

撞上电子 2023-11-26 08:00 次阅读

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

举个例子:

类比一下

在实际的代码中,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())

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348866
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79554
  • 机器
    +关注

    关注

    0

    文章

    756

    浏览量

    40491
收藏 人收藏

    评论

    相关推荐

    STM8CubeMXSTM32CubeMX功能一样吗?

    STM8CubeMXSTM32CubeMX功能一样吗?
    的头像 发表于 10-31 16:59 1199次阅读
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一样吗?

    基于STM32CubeMX开发U盘访问应用

    电子发烧友网站提供《基于STM32CubeMX开发U盘访问应用.pdf》资料免费下载
    发表于 09-25 09:19 2次下载
    基于<b class='flag-5'>STM32CubeMX</b>开发U盘访问应用

    基于STM32U5 的 STM32CubeMX环境搭建

    基于STM32U5 的 STM32CubeMX环境搭建
    的头像 发表于 09-21 17:35 904次阅读
    基于<b class='flag-5'>STM32</b>U5 的 <b class='flag-5'>STM32CubeMX</b>环境搭建

    STM32CubeMX的配置和C代码的生成

    电子发烧友网站提供《STM32CubeMX的配置和C代码的生成.pdf》资料免费下载
    发表于 09-20 09:53 4次下载
    <b class='flag-5'>STM32CubeMX</b>的配置和C代码的生成

    STM32WL使用STM32CubeMX创建LoRa节点应用

    电子发烧友网站提供《STM32WL使用STM32CubeMX创建LoRa节点应用.pdf》资料免费下载
    发表于 09-19 14:46 1次下载
    <b class='flag-5'>STM32</b>WL使用<b class='flag-5'>STM32CubeMX</b>创建LoRa节点应用

    STM32CubeMx配置USART1增加打印功能

    STM32CubeMx配置USART1增加打印功能
    的头像 发表于 08-22 10:32 671次阅读
    <b class='flag-5'>STM32CubeMx</b>配置USART1增加打印功能

    通过STM32CubeMX制作外部Flash的烧写驱动(.stdlr)

    电子发烧友网站提供《通过STM32CubeMX制作外部Flash的烧写驱动(.stdlr).pdf》资料免费下载
    发表于 08-01 11:12 4次下载
    通过<b class='flag-5'>STM32CubeMX</b>制作<b class='flag-5'>外部</b>Flash的烧写驱动(.stdlr)

    STM32CUBEMX开发GD32F303

    在这使用STM32CUBEMX进行配置STM32F103,移植到兆易创新GD32F303,然后进行测试。
    的头像 发表于 07-27 09:32 969次阅读
    <b class='flag-5'>STM32CUBEMX</b>开发GD32F303

    STM32CUBEMX开发GD32F303(15)----外部中断EXTI

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过开发板内进行验证。 使用外部中断EXTI进行驱动LED。
    的头像 发表于 07-26 15:53 836次阅读
    <b class='flag-5'>STM32CUBEMX</b>开发GD32F303(15)----<b class='flag-5'>外部</b><b class='flag-5'>中断</b>EXTI

    STM32CubeMx入门教程(4):PWM应用

    导语“使用STM32CubeMx配置定时器输出PWM波,生成初始化代码。”
    发表于 07-11 15:23 908次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(4):PWM应用

    STM32CubeMx入门教程(3):定时器的使用

    导语“ 使用STM32CubeMx 生成初始化定时器代码,实现定时器特定定时”
    发表于 07-11 15:22 2350次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(3):定时器的使用

    STM32CubeMx入门教程(1):点亮LED

    “使用stm32cubeMX 工具进行代码生成,以LED点灯为例”
    发表于 07-11 14:56 2192次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(1):点亮LED

    STM32CubeMX简介和安装使用方法

    STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX
    发表于 06-07 15:43 1.4w次阅读
    <b class='flag-5'>STM32CubeMX</b>简介和安装使用方法

    STM32CubeMx外部中断基本使用方法

    第一步:现在STM32CubeMx 中配置所需要IO口外部中断模式。
    发表于 05-31 15:32 2865次阅读
    <b class='flag-5'>STM32CubeMx</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>基本使用方法

    STM32CubeMx基本使用方法

    第一步:安装STM32CubeMx软件,详细安装步骤若有不清楚的可以自行百度,或私聊我,这里不做详细介绍!
    发表于 05-31 15:29 2485次阅读
    <b class='flag-5'>STM32CubeMx</b>基本使用方法