【STM32 Blue Pill编程】-外部中断配置及使用

news2024/11/14 4:02:01

外部中断配置及使用

文章目录

  • 外部中断配置及使用
    • 1、中断介绍
    • 2、STM32中的中断
    • 3、硬件准备及接线
    • 4、GPIO配置
    • 5、代码实现

在本文中,我们将介绍如何使用 STM32Cube IDE 中的 HAL 库配置和处理外部中断。 我们将通过一个带有按钮和 LED 的示例来演示这一点。

读完本文后,您将能够了解:

  • Blue Pill STM32 中的外部中断
  • 使用 STM32Cube IDE 配置 GPIO 输出引脚和输入引脚
  • 将输入引脚设置为中断引脚(上升沿)
  • 在每个上升沿切换 LED(输出引脚)

1、中断介绍

中断用于处理程序顺序执行期间未发生的事件。 例如,我们想要执行某些任务,并且这些任务在您的程序中按顺序执行。 但很少有任务仅在发生特殊事件时执行,例如微控制器数字输入引脚的外部触发信号。

外部中断或“硬件中断”是由外部硬件模块引起的。 例如,检测到触摸时会发生触摸中断,按下按键时会发生 GPIO 中断。 在本文中,我们将重点讨论这种类型的中断。

中断的工作过程

通过中断,我们不需要连续检查数字输入引脚的状态。 当发生中断(检测到变化)时,处理器停止主程序的执行,并调用称为 ISR 或中断服务例程的函数。 然后处理器暂时处理不同的任务(ISR),然后在处理例程结束后返回主程序。

在这里插入图片描述

例如按下按钮或使用 PIR 传感器进行运动检测。 在这两种情况下,都可以使用按钮或 PIR 运动传感

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单了解JVM执行Java程序的基本流程 | 一次编译,到处运行

前言: Java代码怎么做到一次编译,到处运行的呢?靠JVM,那JVM的执行流程是什么呢? 简单来说:通过Javac编译器将Java源代码编译成字节码,JVM通过类加载器将字节码加载到运行时数据区中,…

C++学习笔记之数据结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、二叉树1.1 二叉树的遍历1.1.1 深度优先搜索(DFS)1.1.2 广度优先搜索(BFS) 1.2 对称性(递归法&#x…

【论文笔记】LION: Linear Group RNN for 3D Object Detection in Point Clouds

原文链接:https://arxiv.org/abs/2407.18232 简介:Transformer在3D点云感知任务中有二次复杂度,难以进行长距离关系建模。线性RNN则计算复杂度较低,适合进行长距离关系建模。本文提出基于窗口的网络线性组RNN(即对分组…

Android 上下滑隐藏显示状态栏

一、DisplayPolicy类中监听滑动事件,然后发送广播事件 Android12类路径: frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.javamSystemGestures new SystemGesturesPointerEventListener(mUiContext, mHandler,new SystemGest…

《机器学习》周志华-CH1(绪论)

1.1引言 机器学习(Matchine-Learning)所研究的主要内容是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)。可以说机器学习(Matchine-Learni…

2024最新最全面一线大厂面试Tips丨接口测试面试题

面试Tips# 面试是求职过程中至关重要的环节。在如今竞争激烈的就业市场,拥有优秀的面试技巧和良好的面试礼仪显得尤为重要,同样掌握这个的行业面试题也不可或缺。 01 你们公司的接口测试流程 是怎样的? (有没有感觉熟悉&#…

[Linux][OS][信号的捕捉] 可重入函数 | volatile | SIGCHLD信号

回顾:[Linux][OS][信号的保存和处理] 信号捕捉 1.sigaction int sigaction(int signo, const struct sigaction *act, struct sigaction *oact); 参数: signo:指定信号的编号act:输入型参数,根据act修改该信号的处…

水果甜度个人手持设备检测-(题外:为啥会选型这个课题)

系列:水果甜度个人手持设备检测 -- 题外:为啥会选型这个课题 写在前面的话 这段时间一直也在思考,在主业之外哪些方向和产业成熟度较高、技术复杂度又不是很离谱,比较容易出成果的方向,能够有空去试着做一做。这几年AI智能化正…

Java方法02:方法的定义和调用

本节内容视频链接:Java方法03:方法的重载_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p47&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 在Java中,‌‌方法的定义是创建一段可重复使用的代码块的过程‌。‌它…

Java 开发者 LLM 实战:利用 LangChain4j 打造高效本地 RAG 系统

1、引言 由于目前比较火的chatGPT是预训练模型,而训练一个大模型是需要较长时间(参数越多学习时间越长,保守估计一般是几个月,不差钱的可以多用点GPU缩短这个时间),这就导致了它所学习的知识不会是最新的&…

代码随想录DAY17 - 二叉树 - 08/16

最大二叉树 题干 题目:给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组…

Linux下载卸载MySql

一. 安装Mysql 1.下载mysql --- 密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y --enablerepomysql57-community install mysql-community-server 2.启动mysql sy…

如何选择最佳智能排班系统?9款工具全解析

本文介绍的自助排班管理工具有Moka、红圈排班、工作易排班、泛微e-office、Udesk、畅捷通T、Zenefits、Homebase、Deputy。 在管理团队时,手动排班不仅耗时,还容易出错,影响工作效率,相信很多管理者也有同样的困扰。为了解决这个痛…

【Spring Boot】定时任务

目录 前言 定时任务注解Scheduled 设计一个定时任务 1.启用定时任务 2.创建定时任务 Cron 表达式详解 多线程定时任务 总结 定时任务框架xxl-job SpringBoot继承定时任务框架 1.搭建调度中心xxl-job-admin 1.1下载项目 1.2修改配置文件端口和数据库代码 1.3连接到…

Linux进程间通信学习记录(无名管道)

0.Linux进程间通信的方式 (1).从UNIX继承过来的通信方式 无名管道(pipe) 有名管道(fifo) 信号(signal) (2).System V IPC 共享内存 消息队列 信号灯集 &am…

Java方法03:方法的重载

本节内容视频链接:https://www.bilibili.com/video/BV12J41137hu?p47&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p47&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 在Java中,‌方法的重载&#x…

AI编程系列一1小时完成链家房价爬虫程序

背景 AI编程实在太火,写了很多年的Java,现在Python 和Go 简单好用,今天结合智谱清言快速完成一个程序爬虫程序,没有任何Python 编程经验,只需要会提问,熟悉简单HTML结构即可。未来一定是有业务能力者的福…

Anylogic设置颜色

三维对象的颜色修改 以detector智能体为例,颜色修改代码为: detector.setColor(“Material_(4)_Surf”,blue); 二维对象的颜色修改 house智能体为例,对组件内的_ps282填充的颜色进行修改,level_是该智能体已有的参数或者称之为变…

CLRerNet推理详解及部署实现(下)

目录 前言一、CLRerNet推理(Python)1. CLRerNet预测2. CLRerNet预处理3. CLRerNet后处理4. CLRerNet推理 二、CLRerNet推理(C)1. ONNX 导出2. CLRerNet预处理3. CLRerNet后处理4. CLRerNet推理 三、CLRerNet部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile …

python:画由抛物线: y^2=2x 与直线 y=x-4 所围成的图形

《高等数学》同济大学版 P339 编写 test_diff_3_area.py 如下 # -*- coding: utf-8 -*- """ 画由抛物线: y^22x 与直线 yx-4 所围成的图形 """ import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Polygon…