STM32实战篇:按键(外部输入信号)触发中断
功能要求
将两个按键分别与引脚PA0、PA1相连接,通过按键按下,能够触发中断响应程序(不需明确功能)。
代码流程如下:

实现代码
#include "stm32f10x.h" // Device headerint main()
{//开启时钟:GPIO、AFIORCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//配置GPIO初始化GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_InitStruct.GPIO_Mode= GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIO_InitStruct);//设置EXTI引脚映射GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1);//EXTI0通道初始化EXTI_InitTypeDef EXTI_InitStruct0;EXTI_InitStruct0.EXTI_Line=EXTI_Line0;EXTI_InitStruct0.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStruct0.EXTI_Trigger=EXTI_Trigger_Rising;EXTI_InitStruct0.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStruct0);//EXTI1通道初始化EXTI_InitTypeDef EXTI_InitStruct1;EXTI_InitStruct1.EXTI_Line=EXTI_Line1;EXTI_InitStruct1.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStruct1.EXTI_Trigger=EXTI_Trigger_Rising;EXTI_InitStruct1.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStruct1);//NVIC配置NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//EXTI0NVIC_InitTypeDef NVIC_InitStruct0;NVIC_InitStruct0.NVIC_IRQChannel=EXTI0_IRQn;NVIC_InitStruct0.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct0.NVIC_IRQChannelSubPriority=0;NVIC_InitStruct0.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct0);//EXTI1NVIC_InitTypeDef NVIC_InitStruct1;NVIC_InitStruct1.NVIC_IRQChannel=EXTI1_IRQn;NVIC_InitStruct1.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct1.NVIC_IRQChannelSubPriority=0;NVIC_InitStruct1.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct1);while(1){}
}void EXTI0_IRQHandler()
{EXTI_ClearITPendingBit(EXTI_Line0);//清除标志位//需要执行的功能
}void EXTI1_IRQHandler()
{EXTI_ClearITPendingBit(EXTI_Line1);//清除标志位//需要执行的功能
}
相关文章:
STM32实战篇:按键(外部输入信号)触发中断
功能要求 将两个按键分别与引脚PA0、PA1相连接,通过按键按下,能够触发中断响应程序(不需明确功能)。 代码流程如下: 实现代码 #include "stm32f10x.h" // Device headerint main() {//开…...
Android SurfaceView 组件介绍,挖洞原理详解
文章目录 组件介绍基本概念关键特性使用场景 SurfaceHolder介绍主要功能使用示例 SurfaceView 挖洞原理工作机制 使用SurfaceView展示图片示例创建一个自定义的 SurfaceView类在 Activity 中使用 ImageSurfaceView注意事项效果展示 组件介绍 在 Android 开发中,Sur…...
day2加餐 Go 接口型函数的使用场景
文章目录 问题价值使用场景其他语言类似特性 问题 在 动手写分布式缓存 - GeeCache day2 单机并发缓存 这篇文章中,有一个接口型函数的实现: // A Getter loads data for a key. type Getter interface {Get(key string) ([]byte, error) }// A Getter…...
摄像头 RN6752v1 视频采集卡
摄像头 AHD倒车摄像头比较好,AHD英文全名Analog High Definition,即模拟高清,拥有比较好的分辨率与画面质感。 RN6752v1 GQW AKKY2 usb 采集卡 FHD(1080p)、HD(720p)和D1(480i&am…...
记录vivado自带IP iBert眼图近端回环
记录利用vivado自带IP核工具测试信号质量 ibert是测试眼图的工具,在使用的时候并不用改太多的内容,只需要注意参考时钟及所需要的引脚即可。由于条件的限制,并没有使用光纤和电缆进行连接进行外部回环,仅使用内部回环做测试&…...
js | Core
http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ Object 是什么? 属性[[prototype]]对象。 例如,下面的,son是对象,foo不是对象。打印出来的son,能看到有一个prototype 对象。 prototype vs _proto_ v…...
Log4J reminder
Java JNDI and Log injection https://docs.oracle.com/javase/jndi/tutorial/ See also https://telegra.ph/Log4J-Vulnerability-Explained-07-21...
Unity XR Interaction Toolkit(VR、AR交互工具包)记录安装到开发的流程,以及遇到的常见问题(一)!
提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、XR Interaction Toolkit是什么?二、跨平台交互三、 AR 功能四、XR Interaction Toolkit的特点五、XR Interaction Toolkit 示例总结 前言 随着VR行业的发展&#…...
MongoDB文档整理
过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…...
【AI学习】关于Scaling Law的相关学习
一、苦涩的教训 首先,学习一段重要话语: The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin. 从70年的人工智能研究中…...
学习小记-Kafka相较于其他MQ有啥优势?
Kafka 相比于 RocketMQ 有以下几个优势: 1. 高吞吐量和低延迟: Kafka 以其出色的 I/O 性能和分布式架构设计,能够实现极高的吞吐量,每秒数百万的消息处理能力,适合大规模数据流处理。同时,Kafka 设计为…...
技能 | postman接口测试工具安装及使用
哈喽小伙伴们大家好!今天来给大家分享一款轻量级,高效好用的接口测试工具-postman. Postman是一个流行的API开发工具,主要用于测试、开发和文档化API。以下是关于Postman的介绍及其主要使用场景: Postman介绍: 1. 功能丰富的API客户端&#…...
移动UI:任务中心的作用,该如何设计更合理?
任务中心是移动应用中用于展示和管理用户待办任务、提醒事项、用户福利、打卡签到等内容的功能模块。合理设计任务中心可以提升用户体验和工作效率。 以下是一些设计任务中心的合理建议: 1. 易于查看和管理: 任务中心的设计应该使用户能够快速、直观地…...
pytorch学习(十)优化函数
优化函数主要有,SGD, Adam,RMSProp这三种,并且有lr学习率,momentum动量,betas等参数需要设置。 通过这篇文章,可以学到pytorch中的优化函数的使用。 1.代码 代码参考《python深度学习-基于pytorch》&…...
Ubuntu22.04:安装Samba
1.安装Samba服务 $ sudo apt install samba samba-common 2.创建共享目录 $ mkdir /home/xxx/samba $ chmod 777 /home/xxx/samba 3.将用户加入到Samba服务中 $ sudo smbpasswd -a xxx 设置用户xxx访问Samba的密码 4.配置Samba服务 $ sudo vi /etc/samba/smb.conf 在最后加入 …...
Powershell 使用介绍
0 Preface/Foreword 0.1 参考文档 Starting Windows PowerShell - PowerShell | Microsoft Learn 1 Powershell 介绍 2 命令介绍 2.1 新建文件夹 New-Item -Path C:\GitLab-Runner -ItemType Directory 2.2 切换路径 cd C:\GitLab-Runner 2.3 下载文件 Invoke-WebRequ…...
【Langchain大语言模型开发教程】记忆
🔗 LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、Langchain的历史记忆 ConversationBufferMemory 2、基于窗口限制的临时记忆 ConversationBufferWindowMemory 3、基于Token数量的临时记忆 ConversationTokenBufferMemory 4、基于历史…...
最新Qt6的下载与成功安装详细介绍
引言 Qt6 是一款强大的跨平台应用程序开发框架,支持多种编程语言,最常用的是C。Qt6带来了许多改进和新功能,包括对C17的支持、增强的QML和UI技术、新的图形架构,以及构建系统方面的革新。本文将指导你如何在Windows平台上下载和安…...
LeetCode 热题 HOT 100 (001/100)【宇宙最简单版】
【链表】 No. 0160 相交链表 【简单】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#x…...
Ubantu 使用 docker 配置 + 远程部署 + 远程开发
大家好我是苏麟 , Ubantu 一些配置 . 视频 : 服务器很贵?搞台虚拟机玩玩!保姆级 Linux 远程开发教程_哔哩哔哩_bilibili Docker安装及配置 安装命令 : sudo apt install docker.io 查看版本号 : docker -v 查看虚拟机地址命令 : ifconfig 虚拟机地址 或…...
[嵌入式]回调函数在嵌入式中的作用
回调函数(Callback Function) 是一个被作为参数传递给另一个函数,并在特定时机被自动调用的函数。简单理解:你告诉系统 “当 XX 事件发生时,帮我执行这个函数”,这个函数就是回调函数。核心作用(…...
如何利用OpenCode实现高效专业的AI驱动开发工作流?
如何利用OpenCode实现高效专业的AI驱动开发工作流? 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手,模型灵活可选,可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 在当今快速迭代的软件开发…...
为什么你的Polars清洗比Pandas还慢?3步定位CPU缓存未对齐、SIMD未启用、线程池饥饿这3大隐形杀手
第一章:Polars 2.0 大规模数据清洗技巧 性能调优指南Polars 2.0 引入了全新的执行引擎与内存管理机制,显著提升了大规模数据清洗场景下的吞吐量与低延迟响应能力。相比 Pandas,其在 10GB 数据集上的列式过滤、字符串标准化与缺失值插补操作平…...
仅限核心开发者知晓的Python多解释器通信“暗通道”:通过_cffi_interpreter_bridge实现C层直接调用(非pickle、零序列化开销)
第一章:Python多解释器通信的演进与挑战Python长期以来以全局解释器锁(GIL)为基石,在单进程内保障线程安全,却也天然限制了多线程对CPU密集型任务的并行能力。为突破GIL束缚,Python 3.12正式引入原生支持的…...
效率飙升:借助快马AI自动化生成openclaw社区核心功能模块
最近在给openclaw中文社区官网开发效率工具模块时,发现用传统方式从头写代码特别耗时。经过实践,我发现用InsCode(快马)平台可以大幅提升开发效率,今天就分享下具体实现过程。 需求分析与模块设计 这个效率工具模块需要包含三个核心功能&…...
别再只盯着顶刊了!这5本AI领域的SCI期刊,投稿友好、审稿快,适合你的第一篇论文
5本AI领域高性价比SCI期刊:避开顶刊内卷的投稿策略 在人工智能研究领域,发表SCI论文是衡量学术成果的重要指标。然而,Nature Machine Intelligence、IEEE TPAMI等顶刊的投稿竞争异常激烈,审稿周期动辄半年以上,对创新性…...
Folo信息整理神器:如何告别碎片化阅读,轻松构建专属知识库?
Folo信息整理神器:如何告别碎片化阅读,轻松构建专属知识库? 【免费下载链接】follow [WIP] Next generation information browser 项目地址: https://gitcode.com/GitHub_Trending/fol/follow 每天被数十个APP推送轰炸,有价…...
人工智能毕设新颖的课题帮助
1 引言 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应用需求ÿ…...
Halcon中值滤波,均值滤波,高斯滤波
均值滤波(一般用来消除高斯噪声创建一个高斯核参数1为σ 值越大高斯噪声越多gauss_distribution( 9 ,Distribution)添加到图片上add_noise_distribution( Image , ImageNoise , Distribution)参数3 4 是滤波核, 建议使用奇数矩阵核,值越小越清…...
如何让Flash内容重获新生?FlashPatch拯救过期浏览器插件的实战指南
如何让Flash内容重获新生?FlashPatch拯救过期浏览器插件的实战指南 【免费下载链接】FlashPatch FlashPatch! Play Adobe Flash Player games in the browser after January 12th, 2021. 项目地址: https://gitcode.com/gh_mirrors/fl/FlashPatch 一、价值定…...
