文章目录

  • 前言
  • 一、外部中断是什么
  • 二、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的小伙伴可以找我一起交流。
下一篇文章将讲解使用外部中断配置按键。

STM32外部中断解析相关推荐

  1. STM32外部中断与各通道对应关系

    EXTI0_IRQn的值,其实就是EXTI0中断向量在中断向量表中的位置(STM32技术参考手册中断向量表position栏中的数值) 一:外部中断使用配置过程: (1)配置时钟信号 (2)引脚属性 ...

  2. STM32外部中断干扰解决方案

    STM32 外部中断很容易受干扰误触发,无论上拉下拉设置都没有效果,最后采用软件判断解决该问题. 进入外部中断程序需同时判断引脚电平是否和上升触发和下降触发一致,这个判断很重要. void EXTI3 ...

  3. STM32外部中断总结

    STM32外部中断总结 STM32的外部中断是我们在学习stm32的一个必要模块,外部中断的用途可以增加人机交互的体验,也可以增加程序的执行效率.下面将以一个小实验来记录外部中断的使用需要注意的事项 ...

  4. STM32——外部中断

    目录 外部中断简述 什么是外部中断 传统单片机与新型单片机外部中断区别 STM32外部中断请求 STM32中断线与IO口的对应 STM32 中断服务函数 外部中断与中断服务函数的对应 中断服务函数列表 ...

  5. 采用STM32外部中断模式控制LED灯亮灭

    文章目录 实验工具 一.STMCube配置项目 1.配置引脚 2.配置EXIT 3.配置SYS 4.配置GPIO 5.创建代码 二.使用KEil配置代码 1.打开生成的项目,找到stm32f1xx_i ...

  6. 【嵌入式STM32-05】STM32 外部中断 EXTI 基本原理|库函数程序代码|寄存器

    STM32外部中断 1.中断基本原理 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断 ...

  7. STM32外部中断与(NVIC)中断优先级管理

    文章目录 1.中断介绍 1.中断的概念 2.中断的产生 3.中断处理的流程 2.STM32内嵌向量中断控制器NVIC 1.NVIC控制器的寄存器 2.STM32中断配置 3.STM32外部中断EXIT ...

  8. STM32外部中断与看门狗

    STM32外部中断与看门狗 前面说过中断的概念了,但是没有细究,中断除了内部中断(比如运行错误),还能受到外部中断 文章目录 STM32外部中断与看门狗 一 外部中断描述 1.1 外部中断描述 1.2 ...

  9. stm32 外部中断学习

    今天我们看看STM32的外部中断实验. STM32 供 IO 口使用的中断线只有 16 个,但是 STM32 的 IO 口却远远不止 16 个,那么 STM32 是怎么把 16 个中断线和 IO 口一 ...

最新文章

  1. mysql bin.000047_解决mysql-bin.000001占用超大空间的问题
  2. Zoom重金并购25人安全初创公司,市值一夜大涨23亿美元
  3. 好书推介---Windows Server 2003企业部署原理与实践
  4. 简历石沉大海、面试被刷?拒绝你的HR小姐姐,可能只是个AI
  5. leetcode 622. Design Circular Queue | 641. 设计循环双端队列(Java)
  6. 每个Form类都实现了IWin32Window接口!
  7. unix/linux系统中文件分为哪些类型?,到底该如何理解 Unix/Linux 的文件系统?看这篇就知道了...
  8. c++ primer 笔记 (二)
  9. Python面向切面编程是什么
  10. sublime text 3 package control
  11. iptable详解概念
  12. “网友”叫你先上STM32,51是小朋友玩的,所以你就不学51了
  13. Android关于Theme和style的总结
  14. P2P下载器-P2P种子搜索器
  15. 怎么美化Typora的标题格式
  16. 基于SSM+Mysql的房屋租赁管理系统
  17. 60佳灵感来自大自然的网页设计作品欣赏
  18. SDF: Software-defined flash for web-scale internet storage systems
  19. 我用Python量化了1000万次散户操作,然后反着来,胜率竟然高达...?! | 你可以永远相信散户!【量化投资邢不行啊】...
  20. java控制台打印输出 中文乱码 解决办法

热门文章

  1. 2020超新Dubbo的简单使用(保姆级)
  2. 2.Moveit moveit_setup_assistant配置助手使用
  3. Lua热更新学习 lua与C#的互相调用
  4. 详述ArrayList类中的contains方法
  5. 好用的joomla模板下载网址
  6. 宝塔面板linux离线安装,宝塔linux面板搭建aria2离线下载服务器教程
  7. [Android]Kali for Galaxy S4
  8. 京东年货节,如何一键生成全店手机详情?
  9. 从根上理解高性能、高并发(二):深入操作系统,理解I/O与零拷贝技术
  10. 视频直播中抖动和延迟的区别