Nucleo-F411RE (STM32F411)LL库体验 6 - EXTI外部中断的使用

news2024/11/16 11:37:32

Nucleo-F411RE (STM32F411)LL库体验 6 - EXTI外部中断的使用

1、简述

开发板蓝色按键连接PC13管脚,且断开时为高电平,闭合时低电平。我们将pc13设置为中断模式,低电平触发,当按键按下时,触发中断处理函数,我们就可以捕获按键动作了。
在这里插入图片描述

2、设置PC13外部中断

pa0 pb0 pc0 — pH0 用的是0这条中断线
pa1 pb1 pc1 — pH1 用的是1这条中断线

pa13 pb13 pc13用的是13这条中断线,

0 1 2 3 4这五条中断线有自己单独的中断函数。
5-9这五条中断线,共用 EXTI9_5_IRQHandler中断函数
10-15这五条中断线,共用EXTI15_10_IRQHandler中断函数。

按键相关定义

/**
  * @brief Key push-button
  */
#define USER_BUTTON_PIN                         LL_GPIO_PIN_13
#define USER_BUTTON_GPIO_PORT                   GPIOC
#define USER_BUTTON_GPIO_CLK_ENABLE()           LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC)
#define USER_BUTTON_EXTI_LINE                   LL_EXTI_LINE_13
#define USER_BUTTON_EXTI_IRQn                   EXTI15_10_IRQn
#define USER_BUTTON_EXTI_LINE_ENABLE()          LL_EXTI_EnableIT_0_31(USER_BUTTON_EXTI_LINE)
#define USER_BUTTON_EXTI_FALLING_TRIG_ENABLE()  LL_EXTI_EnableFallingTrig_0_31(USER_BUTTON_EXTI_LINE)
#define USER_BUTTON_SYSCFG_SET_EXTI()           do {                                                                     \
                                                  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);                  \
                                                  LL_SYSCFG_SetEXTISource(LL_SYSCFG_EXTI_PORTC, LL_SYSCFG_EXTI_LINE13);  \
                                                } while(0)
#define USER_BUTTON_IRQHANDLER                  EXTI15_10_IRQHandler
#define LED_TOGGLE() LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_5)
#define LED_ON() LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5)
#define LED_OFF() LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_5)

外部中断初始化:

static void BOARD_UserButtonConfigureEXTI()
{
	/* -1- GPIO Config */
	/* Enable GPIO Clock (to be able to program the configuration registers) */
	USER_BUTTON_GPIO_CLK_ENABLE();
	/* Configure IO */
	LL_GPIO_SetPinMode(USER_BUTTON_GPIO_PORT, USER_BUTTON_PIN, LL_GPIO_MODE_INPUT);
	LL_GPIO_SetPinPull(USER_BUTTON_GPIO_PORT, USER_BUTTON_PIN, LL_GPIO_PULL_NO); 

	/* -2- Connect External Line to the GPIO*/
	USER_BUTTON_SYSCFG_SET_EXTI();

	/*-3- Enable a falling trigger EXTI line 13 Interrupt */
	USER_BUTTON_EXTI_LINE_ENABLE();
	USER_BUTTON_EXTI_FALLING_TRIG_ENABLE();
	
	/*-4- Configure NVIC for EXTI15_10_IRQn */
	NVIC_EnableIRQ(USER_BUTTON_EXTI_IRQn); 
	NVIC_SetPriority(USER_BUTTON_EXTI_IRQn,0);
}

中断回调函数:

/**
  * @brief  This function handles external line 13 interrupt request.
  * @param  None
  * @retval None
  */
void USER_BUTTON_IRQHANDLER(void)
{
    /* Manage Flags */
    if(LL_EXTI_IsActiveFlag_0_31(USER_BUTTON_EXTI_LINE) != RESET)
    {
      	LL_EXTI_ClearFlag_0_31(USER_BUTTON_EXTI_LINE);
    }
	if (LL_GPIO_IsInputPinSet(USER_BUTTON_GPIO_PORT,USER_BUTTON_PIN) == 0)
	{
		printf("key press\r\n");
	}
}

3、现象

编译后烧录进板卡,当我们按下蓝色按键时,会打印key press字样。
在这里插入图片描述

代码

下载路径

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

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

相关文章

Hadoop完全分布式运行环境的搭建

Hadoop完全分布式运行环境的搭建 文章目录 Hadoop完全分布式运行环境的搭建0. 写在前面1. 模板虚拟机环境准备安装模板虚拟机hadoop01虚拟机配置要求如下关闭防火墙,关闭防火墙开机自启创建普通用户配置新用户权限修改所属主和所属组卸载虚拟机自带的JDK重启虚拟机 …

【备战秋招】每日一题:4月23日美团春招第四题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第四题-01串的代价 在线评测链接:P1248 题目内容 塔子哥是一个喜欢研究密码的人,他经常在网上寻找各种有趣的密码挑战。他最近发现了一个神秘的网站&#xff…

指定字符串数组中每个元素sn的长度L如果sn长度比L短,则补充空格,且sn居中如果sn长度比L长,则保留sn左侧L个字符

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定字符串数组中每个元素sn的长度L 如果sn长度比L短,则补充空格,且sn居中 如果sn长度比L长,则保留sn左侧L个字符 [太阳]选择题 下列代码最后输出的结果是&#xff1f…

基于Java在线购物系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

MindFusion.Java Swing Pack 2023.R1 Crack

MindFusion.Java Swing Pack 2023.R1 改进了图表、电子表格和虚拟键盘。 6月 15, 2023 - 16:06 新版本 特征 MindFusion.Diagramming 的新功能 空间索引 - 创建项目位置索引,以便更快地进行命中测试和视口裁剪查询。这极大地提高了包含数…

ch8_1_CPU的结构和功能

1. cpu的结构 1.1CPU 的功能 控制器的功能 控制器的功能具体作用取指令指令控制分析指令操作控制执行指令, 发出各种操作命令控制程序输入与结果的输出时间控制总线管理处理中断处理异常情况和特殊请求数据加工 运算器的功能 实现算术运算 和 逻辑运算&#x…

基于Java多角色学生管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

基于Java网上服装销售系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

【大数据】可视化仪表板 - Superset的安装和使用

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

11-高性能JSON库——fastjson2

目录 1.具体使用 1.1.添加fastjson2依赖 1.2.常用类和方法 1.3.将JSON字符串转换成对象 1.3.1.JSON字符串转换成对象 1.3.2.JSON字符串转换成数组 1.4.将对象转换成JSON字符串 1.4.1.将对象转换成JSON字符串 1.4.2.将数组转换成 JSON 字符串 2.性能测试报告 3.总结 …

浪潮发布G2平台

2017年2月28日下午,浪潮在北京粤财JW万豪酒店以“智变”为主题,发布新一代智能存储平台G2,该平台基于统一架构和In系列智能软件设计,在保障”三高”特性满足企业级关键数据存储、处理需求的同时,更强调数据生命周期的智…

第六章 部署WSUS及RDS服务

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 适用范围:Windows Server 2022、Windows Server…

揭密ChatGPT背后团队鲜为人知的小秘密

ChatGPT引领的人工智能技术浪潮还在持续火爆,可是做出这款产品的OpenAI公司,熬得住多年的冷板凳,最终一飞冲天,他们是怎么做到的呢? 因此,我对这家企业的组织建设产生了浓厚的兴趣。我找啊找,最…

游戏开发日志13(利用PlayerPrefs来存储数据)

为游戏设置一个音量键,可以自由选择背景音乐是否开启,并且保存这个设置。 设计了UI如下: 其中BGM为Toggle,其余四个为Button 在canvas(set)上添加两个脚本:GameMnue,GameManage p…

【备战秋招】每日一题:4月15日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-交通规划 在线评测链接:P1237 题目内容 塔子哥所在的国家有 n 个城市,这 n 个城市排成一列,按顺序编号为 1,2,3,...,n。然而,由…

【备战秋招】每日一题:4月8日美团春招第五题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第五题-RGP种树 在线评测链接:P1170 题目描述: 塔子哥是一位著名的冒险家,他经常在各种森林里探险。今天,他来到了道成林,…

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

目录 用户上传文件存放media如何启用1. 在urls.py中进行配置:2. 在settings.py中进行配置:3. 能够通过media的url访问文件 moudleForm上传文件实现城市管理1. moudle.py2. url.py3. city.py4. city.html5. 文件上传小结6. 城市管理效果总结 欢迎关注 『D…

Vivado远程开发探索

平时主要用轻薄本办公,但是有时候又需要用Vivado做一些开发的工作,就感觉生产力不够。如果能在远程的高性能服务器上跑Vivado综合实现就好了。前段时间用ubuntu下安装的Vivado发现有一个Remote Host的设置。所以就准备折腾一下这个。 WSL WSL的安装看官…

chatgpt赋能python:Python怎么调成黑色背景?

Python怎么调成黑色背景? 随着人们对代码编辑器的要求越来越高,许多开发者都喜欢在黑色背景下编写代码。不仅仅是视觉审美方面考虑,黑色背景对眼睛的伤害也比浅色背景要小得多。本篇文章将介绍如何在Python中调整为黑色背景 介绍 默认情况…

[C++刷题之旅]反转链表

🌸心有所向,日复一日,必有精进 🌸专栏:C刷题之旅 🌸作者:早凉 目录 题目一:反转链表 【题目链接】 【题目描述】 【解题思路】 【代码实现】 进阶:链表中指定区间…