按键外部中断

news2024/11/15 21:53:04

文章目录

    • 运行环境:
    • 1.1 按键外部中断
      • 1)按键检测
      • 2)外部中断的3中触发方式
    • 2.1配置
      • 1)原理图
      • 2)引脚配置
      • 3)中断配置
      • 4)RCC和SYS
    • 3.1代码分析
    • 3.2添加代码
      • 1)中断处理函数IRQ中添加电平转换代码
      • 2)launch设置
    • 5.1实验效果

运行环境:

ubuntu18.04.melodic
宏基暗影骑士笔记本
stm32f427IIH6
stlink
9-24v可调电源

1.1 按键外部中断

1)按键检测

方法一:检测IO口是否为低电平判断按键是否被按下

只有在检测按键的时候,我们按下按键才会被检测到,但处理器可能在干别的事情,所以最好的方法是使用外部中断

在这里插入图片描述

2)外部中断的3中触发方式

上升沿中断:当 GPIO 的电平从低电平跳变成高电平时,触发外部中断。
下降沿中断:当 GPIO 的电平从高电平跳变成低电平时,触发外部中断。
上升下降沿中断:当 GPIO 的电平从低电平跳变成高电平和从高电平跳变成低电平时,都能触发外部中断。

2.1配置

1)原理图

自定义的KEY对应PB2
在这里插入图片描述在这里插入图片描述

2)引脚配置

配置PB2为外部中断
在这里插入图片描述

由于按下按键,变成低电平,所以选择下降沿触发,上拉

在这里插入图片描述

在这里插入图片描述

3)中断配置

打开2号总线中断,最高优先级
在这里插入图片描述

4)RCC和SYS

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

为每个外设 生成外设初始化.c/.h文件

在这里插入图片描述

3.1代码分析

在gpio.c中,
已经打开下降沿触发,上拉
已经打开中断服务函数
在这里插入图片描述

在回调函数中编写电平转换代码

3.2添加代码

1)中断处理函数IRQ中添加电平转换代码

在这里插入图片描述

make编译,F5烧录调试

2)launch设置

修改成以下内容:可执行文件名是freeRTOS_LED.elf

{ =400x
    "configurations": [
    

        {
            "showDevDebugOutput": "parsed",
            "cwd": "${workspaceRoot}",
            "executable": "./build/TIM1.elf",
            "name": "Debug STM32",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "device": "stm32f427",
            "configFiles": [
                "interface/stlink-v2-1.cfg",
                "target/stm32f4x.cfg"
            ]
        }
    ]
}

5.1实验效果

按下白色按键,灯灭
再按下白色按键,灯亮
在这里插入图片描述
在这里插入图片描述


⭐⭐⭐ 嘟嘟崽 ⭐⭐⭐
⭐⭐⭐ 祝你成功 ⭐⭐⭐

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

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

相关文章

如何用ChatGPT做团队绩效管理?根据员工的个人优势、不足、目标来生成更具体的绩效反馈

该场景对应的关键词库:(25个) 绩效管理、目标设定、绩效评估、员工优势、员工弱点、反馈机制、个人发展计划、职业规划、评估工具、数据分析、绩效考核、评分标准、KPI指标、成果目标、个人任务、团队任务、激励机制、晋升机会、增量奖励、培…

你的个人AI助理Pi来了

还记得之前的文章《不要老盯着ChatGPT,这几家公司的产品同样不容小觑》提到的Inflection AI公司吗?通过其官方推文了解到,前期我们关注的个人AI助理有了新的进展,Pi开始对外发布。 Pi是什么 Pi 是一种 AI,一种旨在提供…

使用crontab定时自动更新DDNS

需求说明: N1盒子的armbian系统配置好了 ipv6 的ddns,实现了域名访问本机,但是本地ipv6可能会发生变化,当发生变化后,需要手动执行指令,将新的ip与域名绑定,现在我们采用定时任务,每…

18 线性表的查找

查找的基本概念 **查找:**在数据集合中寻找满足某种条件数据元素的过程,称之为查找。 查找的结果 分别两种: 查找成功 即在数据集合中找到了满足条件的数据元素。查找结果给出整个记录的信息,或者改记录在查找表中的位置。查找失…

vivo积分任务体系的架构演进-平台产品系列05

作者:vivo 互联网平台产品研发团队- Mu JunFeng 积分体系作为一种常见营销工具,几乎是每一家企业会员营销的必备功能之一,在生活中随处可见,随着vivo互联网业务发展,vivo积分体系的能力也随之得到飞速提升,…

Java字符串的用法、原理、性能分析和总结

本文介绍了Java字符串的创建方式、拼接、比较、查找和替换等常见操作,并解析了Java字符串在内存中的存储方式及常量池的作用。文章还提到了Java字符串的性能问题,建议在进行大量的字符串操作时,应该尽量避免使用""号操作符和concat…

【模拟IC学习笔记】 Widlar电流源

原理分析 M3、M4工作在饱和区,M1、M2可以工作在饱和区也可以工作在亚阈值区。 两边电流相等,M3、M4尺寸相等,Vgs2<Vgs1,所以M2的尺寸应该比M1的尺寸大才能保证两边电流相等。K为M2和M1的尺寸比。 当M1和M2工作在饱和…

springboot集成Validated实现参数检验,分组校验,嵌套检验等

一&#xff0c;开发前工作 引入依赖 <dependency> <!--新版框架没有自动引入需要手动引入--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> 二&#xff0c…

spring之ioc初见

maven创建 mvn archetype:generate # 选择7&#xff0c;创建快速启动项目然后idea打开即可 idea创建 点击创建 使用IOC pom.xml添加依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><…

pytorch实战9:基于pytorch简单实现u-net

基于pytorch简单实现u-net 前言 ​ 最近在看经典的卷积网络架构&#xff0c;打算自己尝试复现一下&#xff0c;在此系列文章中&#xff0c;会参考很多文章&#xff0c;有些已经忘记了出处&#xff0c;所以就不贴链接了&#xff0c;希望大家理解。 ​ 完整的代码在最后。 本系列…

组件等比例放大——scale和zoom

scale和zoom的区别 zoom的缩放是相对于左上角的&#xff1b;而scale默认是居中缩放&#xff0c;可以通过transform-origin修改基准点zoom的缩放改变了元素占据的空间大小&#xff1b;而scale的缩放占据的原始尺寸不变&#xff0c;页面布局不会发生变化。对文字的缩放规则不一致…

K8s基础2——部署单Master节点K8s集群、切换containerd容器运行时、基本命令

文章目录 一、部署K8S集群方式二、kubeadm工具搭建K8s集群2.1 资源配置2.2 服务器规划2.3 搭建流程2.3.1 操作系统初始化2.3.2 安装docker容器引擎2.3.3 安装cri-dockerd2.3.4 安装kubeadm&#xff0c;kubelet和kubectl2.3.5 master节点初始化2.3.6 加入node节点2.3.7 部署网络…

《花雕学AI》29:5秒钟就能为你的想法想出新点子?ChatGPT新点子指令模型告诉你怎么做

引言 你有没有遇到过这样的情况&#xff0c;你想出了一个想法&#xff0c;但是不知道怎么扩展或改进它&#xff1f;你有没有想过有一个工具&#xff0c;可以帮你在短时间内为你的想法生成各种新的点子&#xff1f;如果你有这样的需求&#xff0c;那么你一定要了解ChatGPT。 C…

Verilog 锁相环参数动态自动生成,Xilinx MMCM 和 PLL 动态配置频率

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/qq_46621272/article/details/130484100 Verilog 锁相环参数动态自动生成&#xff0c;Xilinx MMCM 和…

服务器中了勒索病毒,升级后的Malox勒索病毒特征,勒索病毒解密数据恢复

Mallox勒索病毒是网络上较为流行的勒索病毒&#xff0c;但是随着黑客加密技术的不断升级&#xff0c;Mallox勒索病毒的新升级版本Malox勒索病毒已经开始出现。Malox勒索病毒是一种最近在网络上广泛传播的恶意软件&#xff0c;其感染方式多种多样&#xff0c;主要以加密受害人的…

【五一创作】版本控制-从零开始学Git-02 Git中的基本概念与工作流程

前言 前面学习了版本控制系统和分布式版本控制系统-Git的相关入门知识【五一创作】版本控制-从零开始学Git-01什么是Git 一、Git中的最基本概念 注意:.git目录是一个隐藏文件夹&#xff0c;默认不可见,需要设置后才能显示出来。 二、Git状态与结构关系 2.1 三种状态 modif…

Zigbee 无线串口通信模块( DL-22 )

文章目录 一、DL-22简介二、模块配置三、串口通信(透明传输) 一、DL-22简介 DL-22无线串口模块为串口转2.4G无线模块&#xff0c;可以通过无线将两个或者多个串口连接起来。串口发入模块的数据会被模块使用无线发出&#xff0c;收到无线数据的模块会将这个数据使用串口发出&am…

大数据分析案例-基于XGBoost算法构建居民收入分类预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

互联网明厨亮灶智慧监管算法 yolov7

互联网明厨亮灶智慧监管系统基于pythoyolov7网络模型AI视觉图像分析技术&#xff0c;互联网明厨亮灶智慧监管算法模型可以识别人员行为及穿戴是否合规&#xff0c;不穿厨师服、不按要求穿戴厨师帽或者佩戴口罩和手套、行为如违规在后厨抽烟、出现老鼠等情景。近几年来&#xff…

数字化转型导师坚鹏:数字化时代企业管理变革与创新营销

数字化时代企业管理变革与创新营销 课程背景&#xff1a; 很多饮水机企业存在以下问题&#xff1a; 不清楚数字化时代企业面临的机遇与挑战&#xff1f; 不知道如何利用大数据发现问题与机会&#xff1f; 不清楚如何进行精准的数字化营销&#xff1f; 不知道如何进行…