STM32 Cubemx 同名外设中断及回调

这篇具有很好参考价值的文章主要介绍了STM32 Cubemx 同名外设中断及回调。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近在学习STM32,采用HAL库开发方式。记录一下同名外设中断及回调

这里提及的同名外设指USART1/2之类的相同外设,但不是同一个instance

示例工程

以使用cubemx配置两个同名外设EXTI0/EXT4为例。

在NVIC配置界面,勾选EXTI line0/4.
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件

在Code Generation栏,勾选以下三项:

  1. Generate Enable in Init
  2. Generate IRQ handler
  3. call HAL handler

STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件

随后生成工程。

Cubemx生成的GPIO初始化函数中,有EXTI0/4的NVIC配置代码
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件
在stm32f1xx_it.c文件中有EXTI0/4的IRQ handler。
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件
并且这两个外设的中断处理函数中均调用了函数HAL_Handler。
其源码如下。
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件

个人理解

当CPU接受到中断请求IRQ后,会进入中断服务函数IRQ Handler
因此在IRQ Handler函数中可以写上对应的功能。

而勾选Call HAL Handler之后在相应的IRQ Handler中生成了HAL_GPIO_EXTI_IRQHandler();

相当于回调函数是两个同名中断公有的服务函数,而IRQ Handler就是针对每个独立的IRQ的服务函数

因此回到最初的问题。如果我想要EXTI0翻转PB5电平EXTI4翻转PE5电平。函数如下:
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件

而如果我想要两个EXTI0/4都有同一个功能,通过uart发送字符串。可以在各自的IRQ Handler中都加上该功能。或者改写他们公共的回调函数。这里以改写回调函数做示例。
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件
STM32 Cubemx 同名外设中断及回调,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-690457.html

到了这里,关于STM32 Cubemx 同名外设中断及回调的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机第三季-第七课:STM32中断体系

    目录 1,NVIC 2,中断和事件的区别 3,优先级的概念  4,如何实际编程使用外部中断 5,STM32开发板通过按键控制LED  5.1,打开相应GPIO模块时钟 5.2,NVIC设置 5.3,外部中断线和配套的GPIO进行连接映射 5.4,代码文件  6,FSMC NVIC: Nested Vector Interrupt Control,嵌套向量中断控制器;

    2024年01月18日
    浏览(46)
  • STM32CubeMX里面没有 CLion的SW4STM32选项(CLion修改单片机型号)

            大家在使用最新版本的CubeMX按照网上的一些教程配置CLion时通常会遇到编译器选项里面没有SW4STM32的选项的问题。          根据网上的很多人都会要求把CubeMX降低到某个版本以下,但是一直使用低版本肯定不是解决问题的方法。其实在CLion文档里面就有解决方

    2024年02月05日
    浏览(47)
  • 【单片机】STM32单片机的各个定时器的定时中断程序,标准库

    高级定时器和普通定时器的区别(https://zhuanlan.zhihu.com/p/557896041): TIM1是高级定时器,使用的时钟总线是RCC_APB2Periph_TIM1,和普通定时器不一样。 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用 timer.c timer.h 调用

    2024年02月11日
    浏览(48)
  • stm32f1xx单片机拦截中断源代码

    这个是实现后的效果,可以看到已经没有中断的效果了 这个是拦截前的效果可以看到电平是在变化的 实现原理非常简单:一句话搞定: 以下是完整的代码:是用来补充说明和筹字数的 这就表明了,单片机里面是可以植入病毒的,或者不算病毒,里面的代码也是具有修改破坏

    2024年02月10日
    浏览(42)
  • stm32单片机开关控制LED灯(中断方式)(proteus电路图)

      补充一点:拼多多上面LED额定电流20mA,额定电压2V,额定电阻100欧姆,后边这个是STM32 如果只是用面包板做实验,输入输出都不是很多,就直接用灌电流的方式把LED直接接到STM32了,即使是设计产品,如果能够直接接,那么肯定也是不会浪费钱去买额外的原件的,所以只有

    2024年02月11日
    浏览(40)
  • STM32单片机(五)第二节:EXTI外部中断练习2(旋转编码器计次)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月11日
    浏览(42)
  • STM32系列单片机“中断触发时间、最小中断周期、指令周期、平均执行速度、和单条指令执行时间”的问题研究

    查阅相关资料书籍和博客总结了一下知识点,以便学习巩固复习。 在学习《ARM Cortex-M3与Cortex-M4权威指南(第3版)》 这本书具体说明了触发中断需要多长时间。 在权威指南的第74页提到, Cortex-M3和Cortex-M4的中断等待非常小,只有12个周期 。也就是说触发中断后,需要12个时钟

    2024年04月10日
    浏览(41)
  • STM32F103RCT6开发板M3单片机教程06--定时器中断

    除非特别说明,本章节描述的模块应用于整个 STM32F103xx 微控制器系列,因为我们使用是 STM32F103RCT6开发板是mini最小系统板。 本教程使用是( 光明谷SUN_STM32mini开发板 )   首先了解一下是STM32F10X定时器(Timer)   注: 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101

    2024年02月04日
    浏览(59)
  • STM32单片机(六)TIM定时器 -> 第二节:TIM定时中断练习(定时器定时中断和定时器外部时钟)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(39)
  • STM32单片机(五)第二节:EXTI外部中断练习(对射式红外传感器计次和旋转编码器计次)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包