【STM32CubeMX】外部中断

news2024/9/19 17:38:54

前言

  本文记录下我学习STM32CubeMX时的流程,方便以后回忆。本章记录外部中断。

步骤

该实验步骤以,配置PA1为外部中断下降沿触发事件,在触发事件后点亮板载PC13LED灯

  1. 时钟配置和生成文件配置之类的,其它文章讲过了,这里就不重复了。

  2. 引脚配置(PC13点灯引脚配置忽略,讲过了):

    在这里插入图片描述

    在GPIO模式中一共有六个选择,大体分为中断模式和事件模式,和各三种检测模式,上升沿,下降沿,边沿检测。

    在这里插入图片描述

    配置完成后,直接生成Keil工程文件。

  3. keil中打开,生成的工程。

    重写回调函数HAL_GPIO_EXTI_Callback,和在回调函数中判断触发中断的路线,因为外部中断都是共用一个中断事件的回调的。

    //重写回调函数
    void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    {
        //判断触发中断的路线
    	if(GPIO_Pin & GPIO_PIN_1)
    	{
            //点灯事件(PC13->LED)
    		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
    	}
        //假如存在线路2,因为是都是共用一个回调的,所以要在里面判断。
        //if(GPIO_Pin & GPIO_PIN_1)
    	//{
        //  //事件区
    	//}
    }
    

    在这里插入图片描述

    stm32f1xx_hal_gpio.h文件的234行中,有I/O操作函数和外部中断的回调事件的声明。想要详细了解,可以去看。

    /* IO operation functions *****************************************************/
    GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
    void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
    void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
    HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
    void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
    void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
    

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

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

相关文章

MySQL高级篇——性能分析工具

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线设计模式牛客面试题 目录 1. 数据库服务器的优化步骤 2. 查看系统性能参数 2.1 SHOW STATUS LIKE 参数 2.2 查看SQL的查询成本 3. 定位执行慢的 SQL&am…

【Java虚拟机】JVM垃圾回收机制和常见回收算法原理

1.垃圾回收机制 (1)什么是垃圾回收机制(Garbage Collection, 简称GC) 指自动管理动态分配的内存空间的机制,自动回收不再使用的内存,以避免内存泄漏和内存溢出的问题最早是在1960年代提出的,程…

20230501-win10-制作U盘启动盘-firpe

20230501-win10-制作U盘启动盘-firpe 一、软件环境 zh-cn_windows_10_consumer_editions_version_22h2_updated_march_2023_x64_dvd_1e27e10b.isofirpe 1.8.2标签:firpe win10分栏:WINDOWS 二、硬件环境 8G或以上的U盘一个FX86笔记本一台 三、官方下…

2。硬件基础知识

介绍嵌入式软件开发所需要了解的硬件基础知识,与软件相结合学习 一 电阻 阻值:直标法,或色标法(碳膜电阻上的横线) 类型:线性,非线性(压敏电阻、热敏电阻) 基本参数&a…

HQL - 查询首次下单后第二天连续下单的用户比率

水善利万物而不争,处众人之所恶,故几于道💦 题目: 从订单信息表(order_info)中查询首次下单后第二天仍然下单的用户占所有下单用户的比例,结果保留一位小数,使用百分数显示, 解题: …

STL常用梳理——STRING

容器——string篇 STL简介String常见接口函数深度了解String构造函数拷贝构造赋值重载析构函数运算符重载查找 STL简介 STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统 称。现在主要出现在 c中,但是在引入 c之前该技术已…

Day959.架构现代化模式 -遗留系统现代化实战

架构现代化的新城区模式 Hi,我是阿昌,今天学习记录的是关于架构现代化的新城区模式的内容。 前面的四个现代化并不是层层递进的关系,而是既可以同时进行,也可以颠倒顺序。 比如,既可以先重构代码,再拆分…

在外远程NAS群晖Drive - 群晖Drive挂载电脑磁盘同步备份【无需公网IP】

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 转发自CSDN远程穿透的文章:【…

DAY07_常用API下

1:String 1.1 String(构造方法) String类,它涉及到两个案例:用户登录和聊天室。 先来看用户登录案例:需要输入用户名和密码,和已知的用户名和密码进行比较,涉及到比较的方法, 一般来说&…

【Springboot+Vue+MP+ElementUI+axios项目实战记录】

写在最前:仅用于记录项目中遇到的问题,并不一定解决 1、 想要实现,点击配置自动跳转页面 2、 虽然使用了push追加了url,但是在跳转下一个,比如 配置跳转到用户会因为之前的url是http://localhost:8080/admin/pagetw…

【SpringBoot】MyBatisPlus代码生成器

项目准备 数据库 MySql 5.7 新建数据库votedb,新建两个测试表user、vote_theme user表 vote_theme表 建表代码如下 -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS user; CREATE TABLE…

muduo 网络库数据流分析

最近自己实现了一个 Tiny_WebServer 服务器,是一个半同步半反应堆的模式,具体可以看我 github 上面的描述。但是春招实习二面被面试官表示项目太简单了,疯狂被怼分布式、集群等知识,故想进一步重构项目,无奈我实现的 T…

Anaconda Prompt安装pytorch

详解Anaconda安装pytorch的全过程 1.首先切换Anaconda的镜像地址,切换的原因我想大家应该明白😊 在anaconda prompt中输入以下四行命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add ch…

医学图像分割之Attention U-Net

目录 一、背景 二、问题 三、解决问题 四、Attention U-Net网络结构 简单总结Attention U-Net的操作:增强目标区域的特征值,抑制背景区域的目标值。抑制也就是设为了0。 一、背景 为了捕获到足够大的、可接受的范围和语义上下文信息,在标…

Anaconda安装教程

最新Anaconda3安装教程 1.Anaconda3下载 官网下载地址 缺点: 下载速度比较慢,对速度有要求的小伙伴往下看 通过清华镜像加速的方式下载比较快 清华镜像加速地址 2.Anaconda3安装 双击安装包,点击next 点击 I agree 选择使用的用户&am…

攻防世界-Crypto-不仅仅是Morse

题目描述:题目太长就不拷贝了,总之,就是对以下字符进行解密 --/.-/-.--/..--.-/-..././..--.-/..../.-/...-/./..--.-/.-/-./---/-/...././.-./..--.-/-.././-.-./---/-.././..../..../..../..../.-/.-/.-/.-/.-/-.../.-/.-/-.../-.../-.../…

QML应用动画(Applying Animations)

目录 一 扩展可点击图像元素版本2(ClickableImage Version2) 1 第一个火箭 2 第二个火箭 3 第三个火箭 动画可以通过以下几种方式来应用: 属性动画 - 在元素完整加载后自动运行; 属性动作 - 当属性值改变时自动运行&#xf…

通讯录的实现(静态入手版)

🍉博客主页:阿博历练记 📖文章专栏:c语言(初阶与进阶) 🎁代码仓库:阿博编程日记 🌹欢迎关注:欢迎友友们点赞收藏关注哦 文章目录 🍭前言&#x1f…

python学习之【类和对象】

前言 五一快乐! 上一篇文章python学习——【第八弹】中,给大家介绍了python中的函数,这篇文章接着学习python中的类和对象。 我们知道,python中一切皆对象。在这篇文章开始之前,我们先了解一下编程界的两大阵营——面…

[渗透教程]-004-长城防火墙GFW的原理

文章目录 1. baidu.com 请求过程2. GFW原理2.1 GFW拦截方法1:DNS渲染2.2 通过IP黑名单2.3 VPN阻断1. baidu.com 请求过程 家庭的路由器具备了交换机的功能.域名–>ip,优先检测本地的缓存,没有的话就查找DNS服务器,传输层对应该层的数据进行封装增加了端口的信息,网络层对传输…