STM32的外部中断实现按键控制led灯亮灭(HAL库)

news2024/11/17 11:03:41

一:stm32外部中断概述

1:stm32的外部中断线


STM32的每个IO都可以作为外部中断输入。
STM32的中断控制器支持19个外部中断/事件请求:
线0~15:对应外部IO口的输入中断。

线16:连接到PVD输出。

线17:连接到RTC闹钟事件。

线18:连接到USB唤醒事件。

每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。

2:外部中断线与io引脚对应关系

3:外部中断向量

在STM32中,中断向量表是一个重要的概念,它描述了当中断发生时,程序应该如何跳转到相应的中断处理函数。STM32的中断向量表是在启动文件(通常是startup_stm32.s)中定义的,并且是固化在MCU的内部ROM中的。

在STM32中,中断向量表通常如下所示:

  • 复位向量(Reset Vector): 指向复位中断处理函数的起始地址。

  • 未定义指令中断向量: 指向未定义指令中断处理函数的起始地址。

  • 系统异常中断向量: 指向系统异常中断处理函数(如Prefetch Abort、Data Abort)的起始地址。

  • 中断向量表: 每个中断源对应一个中断向量,指向该中断源的中断处理函数的起始地址。

  • NVIC中断向量表: 如果使用了Nested Vectored Interrupt Controller (NVIC),则会有额外的中断向量用于处理NVIC相关的中断。

二:流程分析

        实验目的 :按下按键一次将led灯电平翻转完成亮灭控制        

        实现流程:·创建工程 -> 配置led引脚 ->配置按键引脚 ->配置中断->生成工程->完成代码编写

第一步:

三:工程创建

        1: 打开stm32cubemx

         2:选择芯片型号

                

         3: 配置调试接口

      

        4:选择led灯对应引脚

因为用的板子是飞线的方式来连接led所以可以随意选择io口,如果用的是成品板就要看板子上的led灯连接的是哪个io口进行相应的配置

                

 

        5:选择按键对应引脚

        

 

 

 

6:创建工程 

 

四:代码实践

        1:打开工程

        2:找到gpio相关库函数里面的中断回调函数复制原型到main函数

        3:编写触发中断要产生的现象:翻转led灯引脚电平

        4:主函数不需要进行操作 直接编译  点击两个其中一个都可以

        5:烧入代码

选择isp 或者 仿真器下载

 

        6:实验现象

                烧入代码后程序默认led灯点亮

                

点击按键触发中断后led灯熄灭

 

 

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

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

相关文章

后端采用SpringBoot框架开发的:ADR药物不良反应智能监测系统源码,用于监测和收集药品在使用过程中发生的不良反应的系统

ADR药物不良反应智能监测系统是一套用于监测和收集药品在使用过程中发生的不良反应(Adverse Drug Reaction, ADR)的系统。该系统基于医院临床数据中心,运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能&#x…

【Python学习手册(第四版)】学习笔记11.2-表达式语句(print函数)及打印操作(重定向等)详解

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 主要介绍表达式语句(print函数)及打印操作(重定向等)。视需要选择目录阅读。 目录 表达式语句 错误示例&#xf…

实验3-7 统计学生成绩

//实验3-7 统计学生成绩 /* 本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。 百分制成绩到五分制成绩的转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为…

相机标定(Camera Calibration)

什么是 相机标定(Camera Calibration)? 相机标定(CameraCalibration)是确定相机内部参数(如焦距、光学中心、畸变系数等)和外部参数(如相机在世界坐标系中的位置和姿态)的…

黑马头条vue2.0项目实战(三)——个人中心功能的实现

1. Tabbar 处理 通过分析页面,可以看到,首页、问答、视频、我的 都使用的是同一个底部标签栏,我们没必要在每个页面中都写一个,所以为了通用方便,我们可以使用 Vue Router 的嵌套路由来处理。 父路由:一个…

激发潜能,Vatee万腾平台驱动企业持续发展

在当今这个日新月异的商业环境中,企业要想保持竞争力并实现持续发展,就必须不断挖掘自身潜能,探索新的增长点。而Vatee万腾平台,正是这样一位能够激发企业潜能、驱动其持续发展的强大伙伴。 一、智能化赋能,解锁企业潜…

了解ISO 22301:业务连续性管理的关键

在当今全球化和复杂化的商业环境中,企业面临着各种潜在的风险和灾难,这些可能对其运营和声誉造成严重影响。为了有效地应对这些挑战并保障持续经营,国际标准化组织(ISO)引入了ISO 22301标准,这是一项专注于…

智能制造与工业物联网CC2530——定时器查询和中断

一、项目目的: 熟悉 ZigBee 模块相关硬件接口。使用 IAR 开发环境设计程序,学习 CC2530 定时器的使用,利用 CC2530 的定时器 T1 查询方式控制 LED 周期性闪烁。 二、项目原理: LED及按键原理图,如下图所示&#xff…

使用“阿里云人工智能平台 PAI”制作数字人

体验 阿里云人工智能平台 PAI PAI-DSW免费试用 https://free.aliyun.com/?spm5176.14066474.J_5834642020.5.7b34754cmRbYhg&productCodelearn https://help.aliyun.com/document_detail/2261126.html 体验PAI-DSW https://help.aliyun.com/document_detail/2261126.…

一文详解香港机房服务器干什么用的

香港机房服务器干什么用的?香港机房服务器是用于数据存储和备份、网络服务、数据处理与分析、云计算服务、游戏托管服务、其他服务等。香港机房服务器在现代互联网业务中扮演着至关重要的角色,其主要用途可以归纳为以下几个方面: 1、数据存储…

卡拉OK歌唱比赛活动策划方案

一、活动详细策划 (一)、前期工作准备 1、制定详细的策划方案、比赛流程,通知稿。 2、收集各参赛选手详细资料在选手上台前展示出,让各评委及嘉宾对选手有个初步认识。 3、各工作组准备好相关道具(音响、无线话筒、低…

数据大脑智慧工厂数据平台建设方案(可编辑60页PPT)

引言:随着工业4.0时代的到来,智能制造已成为推动产业升级的核心引擎。为了进一步提升生产效率、优化资源配置、实现精准决策与个性化定制,构建一套高效、智能的数据大脑智慧工厂数据平台显得尤为重要。 方案介绍: 在数字化转型的…

05.FreeRTOS任务挂起与恢复

05. FreeRTOS任务挂起与任务恢复 1. FreeRTOS 挂起和恢复任务相关 API 函数 函数描述vTaskSuspend()挂起任务vTaskResume()恢复被挂起的任务xTaskResumeFromISR()在中断中恢复被挂起的任务 函数vTaskSuspend() 此函数用于挂起任务,若使用此函数,需要在…

【Docker】Namespace 空间隔离实战

一、实战目的 了解隔离能力并不是 Docker 提供的,而是操作系统内核提供基本能力。 二、基础知识 1、dd 命令详解 Linux dd 命令用于读取、转换并输出数据。 dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、…

直流电表常见的应用有哪些

直流电表作为电力系统中不可或缺的计量工具,其应用广泛且多样化。以下是对直流电表常见应用的详细归纳: 一、新能源发电系统 1. 太阳能光伏发电 应用背景:太阳能光伏发电系统通过太阳能电池板将光能转化为直流电能。直流电表在这一系统中扮…

浪潮NF5280M4虚拟磁盘OFFLINE和磁盘状态为“Frn-Bad”与“UB”故障处理

客户托管设备的机房异常断电,导致6台浪潮NF5280M4的系统无法访问,系统所在的RAID组中的2块磁盘全部亮故障灯。 通过设备管理界面检查,发现逻辑磁盘处于Offline状态: 物理磁盘也处于Offline状态: 进入BIOS RAID配置…

介绍几种 iutils.dll丢失的解决办法,iutils.dll文件详细介绍

电脑中经常会出现 iutils.dll文件丢失的情况,所以如果电脑中缺失 iutils.dll文件会让大家很苦恼,那么 iutils.dll丢失有什么解决办法呢?今天就给大家介绍几种 iutils.dll丢失的解决办法。 1. iutils.dll 文件的来源 iutils.dll 是一个动态链…

npm 修改 淘宝源

aliyun ECS npm 源也不顺畅了,哎 😑 npm config get registrynpm config set registry https://registry.npmmirror.com喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。 有错误或者疑问还请评论指出。 我的个人网站 点击访问 hongw…

暑假时光的趣味新选择:《米小圈漫画历史》的魅力探秘

当暑假的炎炎夏日来临,许多家长都会面临一个共同的挑战:如何让孩子远离手机屏幕,找到既有趣又有教育意义的活动。作为一名父母,我被这个问题所困扰。看着孩子一整天沉浸在电子设备中,我深知这不仅会影响他们的视力&…

web程序员转大模型岗位,零基础入门到精通非常详细,收藏我这一篇就够了

从Web程序员转型到大模型岗位,需要掌握一系列新技能和知识。以下是一个详细的攻略: 了解大模型基础: 学习大模型的基本概念,如Transformer架构、自注意力机制等。 阅读相关论文,如“Attention is All You Need”等。 …