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

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

3天内不再提示

第八章 外部中断

撞上电子 2022-01-25 09:30 次阅读

第一节原理解读

打算写一下中断,又忍不住想说一下中断的概念,去书上翻一翻,或者自己在搜索引擎上搜一下,都可以找到一大堆,包括本文写的这个外部中断也不例外。如果要写光是中断就可以单独写一篇了,所以本文直入主题,对于STM32的外部中断进行详细的剖析。下图来自《STM32参考手册》,从整个架构图可以知道,外部中断的功能可以配置六个寄存器

5fa7a538-7d32-11ec-8beb-dac502259ad0.png

GPIO的映射关系图如下所示:5fbd3556-7d32-11ec-8beb-dac502259ad0.png第二节配置环境1,打开STM32CubeMX并选择芯片下载器配置如下图。

5fce18f8-7d32-11ec-8beb-dac502259ad0.png

2,选择按键的引脚,配置成外部中断。如下图:

5fe83cd8-7d32-11ec-8beb-dac502259ad0.png

3,配置PC15引脚(也就是开发板上LD5的引脚)为输出模式。

5ffae388-7d32-11ec-8beb-dac502259ad0.png4,选中GPIO,选择PC14,并且将GPIO的模式配置为外部中断下降沿有效。如下图:

60115848-7d32-11ec-8beb-dac502259ad0.png

5,使能中断。如下图。

60269e92-7d32-11ec-8beb-dac502259ad0.png

6,设置时钟树,项目路径,项目名称等等信息将不再阐述。配置完后生成项目即可。

第三节编写代码

1,大家先看看stm32l0xx_it.c的这个函数,这个是一个中断函数,中断服务函数里面就调用了GPIO外部中断处理函数HAL_GPIO_EXTI_IRQHandler(),参数为GPIO_PIN_14,即EXTI14中断。

6037b1d2-7d32-11ec-8beb-dac502259ad0.png

2,详细看看这个函数,GPIO外部中断处理函数主要就是清除中断标识位,然后调用中断回调函数HAL_GPIO_EXTI_Callback()。我们只需重构中断回调函数,在函数里面添加我们的应用代码即可。

604dc3b4-7d32-11ec-8beb-dac502259ad0.png

3,于是,在main.c中添加回调函数,如下:

605fb13c-7d32-11ec-8beb-dac502259ad0.png

4,配置下载器等就不再重复阐述了。

第四节 实验现象

实验注意事项:

1,程序语句需要位于程序的BEGIN与END之间。

2,利用USB线将电脑USB口与开发板USB1口连接。

3,CN4所有拨码开关必须选择ON DP档,否则无法下载程序。

实验现象:

LD1,LD4常亮。LD5上电长量,按下USER按键,LD5翻转。

宗旨:

免费的服务,永远的开源

说明:

1.本教程免费,开源,禁止用于任何商业用途,违者必究。

2.本教程版权所属为东莞市东城墨竹公子电子工作室,盗版必究。

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

    关注

    2239

    文章

    10669

    浏览量

    348698
收藏 人收藏

    评论

    相关推荐

    外部中断的工作原理 外部中断方式有哪些 为什么要使用外部中断

    外部中断的工作原理是单片机响应外部事件的一种机制** **。
    的头像 发表于 01-28 17:37 1372次阅读

    LPC800前生今世-第八章 引脚中断和引脚组合逻辑 (Pin Interrupt & Pin Pattern)

    外部引脚可以触发芯片内部的中断,这是每一个通用MCU都具备的基本功能。 在LPC800中,所有外部引脚都可以配置为产生中断的触发源。每个引脚不但可以独立地触发
    的头像 发表于 12-14 16:20 1080次阅读
    LPC800前生今世-<b class='flag-5'>第八章</b> 引脚<b class='flag-5'>中断</b>和引脚组合逻辑 (Pin Interrupt &amp; Pin Pattern)

    STM32外部中断大问题

    问题:一直进入中断,没有触发信号,也一直进入。描述:开PA0为外部中断,刚刚很好,一个触发信号一个中断中断函数没有丢,也没有抢跑,开PA1
    的头像 发表于 11-08 08:00 597次阅读
    STM32<b class='flag-5'>外部</b><b class='flag-5'>中断</b>大问题

    单片机外部中断的好处

    外部中断是单片机实时地处理外部事件的一种内部机制。当外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行
    的头像 发表于 10-31 15:58 1038次阅读
    单片机<b class='flag-5'>外部</b><b class='flag-5'>中断</b>的好处

    STM32如何配置外部中断?STM32外部中断配置步骤

    STM32如何配置外部中断?STM32外部中断配置步骤  作为一款现代化的微控制器,STM32系列芯片在各种应用场合中广泛应用。其中最常见的应用是
    的头像 发表于 10-26 17:47 2059次阅读

    STM32学习笔记一外部中断

    STM32 的每个 IO 都可以作为外部中断中断输入口。STM32F103 的中断控制器支持 19 个外部
    的头像 发表于 10-24 14:12 676次阅读
    STM32学习笔记一<b class='flag-5'>外部</b><b class='flag-5'>中断</b>

    第八章 SQLite資料庫 - 第4节第八章 SQLite資料庫 - 第4节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:32:03

    第八章 SQLite資料庫 - 第3节第八章 SQLite資料庫 - 第3节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:31:13

    第八章 SQLite資料庫 - 第2节第八章 SQLite資料庫 - 第2节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:30:23

    第八章 SQLite資料庫 - 第1节第八章 SQLite資料庫 - 第1节

    服务器函数代码
    充八万
    发布于 :2023年07月30日 07:29:32

    68.8.1 第八章总结

    APP
    充八万
    发布于 :2023年07月19日 19:14:59

    DSP28335外部中断的使用

    处理器的外部中断主要用于捕抓外部输入的高低电平。本篇文章将介绍DSP28335的外部中断的使用。
    的头像 发表于 07-07 16:41 2517次阅读
    DSP28335<b class='flag-5'>外部</b><b class='flag-5'>中断</b>的使用

    CH32V103基础教程93-PWM播放音乐 (1个TIM)

    本章教程主要在第八章PWM输出的基础上进行,主要使用CH32V103的PWM播放音乐,可直接接喇叭使用,但声音较小,可通过功放接喇叭来提高音量。该例程噪音较多,仅供大家参考。 1、TIM简介及相关
    发表于 05-11 16:10

    CH32V103基础教程80-直流有刷电机按键控制

    本章教程主要在第八章、第七十二章和第七十四章基础上进行,通过两路PWM输出以及5个按键,控制电机开关、加减速以及正反相,同时使用一个LED灯指示开关状态。 1、TIM简介及相关函数介绍关于TIM相关
    发表于 05-08 16:00

    CH32V103基础教程75-舵机控制

    本章教程主要在第八章PWM输出和第七十四章按键控制LED灯的基础上进行,通过两个按键控制舵机左右旋转,同时通过两个LED灯查看状态。 1、TIM简介及相关函数介绍本章教程所述舵机控制本质是也是通过
    发表于 05-06 15:51