STM32实战篇:按键(外部输入信号)触发中断

news2024/12/26 9:21:55

功能要求

将两个按键分别与引脚PA0、PA1相连接,通过按键按下,能够触发中断响应程序(不需明确功能)。

代码流程如下:


实现代码

#include "stm32f10x.h"                  // Device header

int main()
{
	//开启时钟:GPIO、AFIO
	RCC_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);
	//EXTI0
	NVIC_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);
	//EXTI1
	NVIC_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);//清除标志位
	//需要执行的功能
}

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

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

相关文章

ZGC的流程图

GC标记过程 1、初始标记 扫描所有线程栈的根节点,然后再扫描根节点直接引用的对象并进行标记。这个阶段需要停顿所有的应用线程(STW),但由于只扫描根对象直接引用的对象,所以停顿时间很短。停顿时间高度依赖根节点的数…

鸿蒙HarmonyOS应用开发为何选择ArkTS不是Java?

前言 随着智能设备的快速发展,操作系统的需求也变得越来越多样化。为了满足不同设备的需求,华为推出了鸿蒙HarmonyOS。 与传统的操作系统不同,HarmonyOS采用了一种新的开发语言——ArkTS。 但是,刚推出鸿蒙系统的时候&#xff0…

uni-app 保存号码到通讯录

1、 添加模块 2、添加权限 3、添加策略 Android: "permissionExternalStorage" : {"request" : "none","prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片…

Prometheus + alermanager + webhook-dingtalk 告警

添加钉钉机器人 1. 部署 alermanager 1.1 下载软件包 wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz 网址 :Releases prometheus/alertmanager (github.com) 1.2 解压软件包 mkdir -pv …

用 Kotlin 编写四则运算计算器:从零开始的简单教程

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

电-气阀门定位器YT-1000系列产品说明

电-气阀门定位器YT-1000系列 使用注意事项 • 搬运安装或使用中对产品过大的震动或撞击会成为产品故障的原因。 • 超过规定参数范围使用也会成为产品故陷的原因。 • 不使用的气路接口要用堵塞堵住。 • 不使用产品而长时间放悝在室外时,要盖上产品外壳以免雨水进入产品…

八款主流电脑监控软件推荐|2024年最佳电脑监控软件排行榜

在现代社会中,电脑监控软件已经成为企业和家庭不可或缺的工具。无论是为了确保员工的工作效率,还是保护孩子在互联网上的安全,这些软件都能提供有力的支持。本文将为大家介绍2024年最受欢迎的八款电脑监控软件。 1. 固信软件 固信软件是一款综…

服务重启时容器未自动启动

1、容器重启策略 通过设置容器的重启策略,‌可以决定在容器退出时Docker守护进程是否重启该容器。‌常见的重启策略包括:‌ no:‌不重启容器,‌默认策略。‌always:‌无论容器是如何退出的,‌总是重启容器…

2024年公共文化与社会服务国际会议(ICPCSS 2024)

2024年公共文化与社会服务国际会议 2024 International Conference on Public Culture and Social Services 【1】会议简介 2024年公共文化与社会服务国际会议是一个集学术性、实践性和国际性于一体的盛会。我们期待与您共同探讨公共文化与社会服务的未来发展方向,为…

【公益案例展】华为云X《无尽攀登》——攀登不停,向上而行

‍ 华为云公益案例 本项目案例由华为云投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 夏伯渝,中国无腿登珠峰第一人,一生43年…

基于GIS矿产勘查靶区优选技术

定义: 找矿远景区(ore-finding prospect): 一般将中小比例尺(小于等于1:10万)成矿预测所圈定的找矿有利地段(preferable ore-finding area)成为找矿远景区 找矿靶区(ore-finding t…

IPD流程学习笔记

一、前言 互联网行业讲究的是快速试错,所以IPD流程的应用并不多,但是传统企业数字化转型中,怎么确保项目投入可以切合市场需求,有较好的ROI及落地性,轻量级的IPD还是很有必要了解下的,特别是重资产类的业务…

LAMP万字详解(概念、构建步骤)

目录 LAMP Apache 起源 主要特点 软件版本 编译安装httpd服务器 编译安装的优点 操作步骤 准备工作 编译 安装 优化执行路径 添加服务 守护进程 配置httpd 查看 Web 站点的访问情况 虚拟主机 类型 部署基于域名的虚拟主机 为虚拟主机提供域名解析&#xff…

原料药合成偶联反应中钯残留去除

摘要:海普开发的HP214 是一种具有螯合硫脲基团的大孔树脂,专为选择性去除汞、铂族贵金属、金和银而设计。同时还特别适用于从有机工艺流程中回收钯催化剂。 #原料药合成偶联反应中钯残留去除 在有机合成中,以过渡金属络合物催化进行高选择性…

博士论文 | 神经网络的结构与表示 147页

由于神经网络在人工智能领域占据主导地位,一个试图了解其内部工作原理的研究分支领域应运而生。这个子领域的一个标准方法是将神经网络主要理解为代表人类可理解的特征。另一种探索较少的可能性是将它们理解为多步骤的计算机程序。这样做的一个先决条件似乎是某种形…

中霖教育:税务师和中级会计师哪个难?

税务师和中级会计师是财会专业的两个比较常见的证书,二者之间哪个更难? 税务师考试包含五个不同的科目:包括《税法一》、《税法二》、《涉税服务实务》、《涉税服务相关法律》以及《财务与会计》,考生在连续五个年度内通过即可。 中级会计…

【人工智能】-- 迁移学习

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉迁移学习 🍈基本概念 🍍定义 🍌归纳迁移学习(Induct…

[IDEA插件] JarEditor 编辑jar包(直接新增、修改、删除jar包内的class文件)

文章目录 1. 安装插件 JarEditor2. 在IDEA中添加外部JAR包3. JarEditor 使用介绍 之前我们需要修改jar内文件的时候需要解压jar包,反编译class,新建java源文件,修改代码,再编译成class,替换jar包内的class文件。 现在…

亚马逊IP关联是什么?要怎么解决呢?

亚马逊不仅提供了广泛的商品和服务,也是许多企业和个人选择的电子商务平台。然而,与亚马逊相关的IP关联问题,特别是在网络安全和运营管理方面,经常成为使用亚马逊服务的用户和商家关注的焦点。通过了解亚马逊IP关联的含义、可能的…

ensp防火墙综合实验作业+实验报告

实验目的要求及拓扑图: 我的拓扑: 更改防火墙和交换机: [USG6000V1-GigabitEthernet0/0/0]ip address 192.168.110.5 24 [USG6000V1-GigabitEthernet0/0/0]service-manage all permit [Huawei]vlan batch 10 20 [Huawei]int g0/0/2 [Huawei-…