当前位置: 首页 > news >正文

STM32 配置中断常用库函数

单片机学习

目录

一、配置AFIO相关库函数

1.1函数GPIO_AFIODeInit

1.2函数GPIO_EventOutputConfig

1.3函数GPIO_EventOutputCmd

1.4函数GPIO_EXTILineConfig

二、配置EXTI相关库函数

2.1函数EXTI_DeInit

2.2函数EXTI_Init

2.3函数EXTI_StructInit

2.4函数 EXTI_GenerateSWInterrupt

2.5 对状态寄存器读写的EXIT库函数

2.5.1在主函数里,查看和清除标志位的函数

1.函数 EXTI_GetFlagStatus

2.函数 EXTI_ClearFlag

2.5.2在中断函数里,查看和清除标志位的函数

1.函数 EXTI_GetITStatus

2.函数 EXTI_ClearITPendingBit

三、配置NVIC相关库函数

3.1函数 NVIC_PriorityGroupConfig

3.2函数NVIC_Init

3.3函数NVIC_SetVectorTable

3.4函数NVIC_SystemLPConfig


一、配置AFIO相关库函数

1.1函数GPIO_AFIODeInit

        复位AFIO外设,调用函数,AFIO外设配置会全部清除。

1.2函数GPIO_EventOutputConfig

        配置AFIO的事件输出功能。

        GPIO_PortSource 用以选择用作事件输出的 GPIO 端口。下表给出了该参数可取的值。

1.3函数GPIO_EventOutputCmd

        配置AFIO的事件输出功能。

1.4函数GPIO_EXTILineConfig

        配置中断,调用这个函数可以配置AFIO的数据选择器,来选择需要的中断引脚。

代码示例:

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource14);//配置AFIO外部中断引脚选择

二、配置EXTI相关库函数

2.1函数EXTI_DeInit

        调用这个函数就可以把EXTI的配置都清除,恢复成上电默认的状态

2.2函数EXTI_Init

        调用这个函数就可以根据这个结构体里的参数配置EXIT外设,初始化EXTI主要用这个函数,使用方法和GPIO_Init一样。

        EXTI_Line 选择了待使能或者失能的外部线路。下表给出了该参数可取的值。

        EXTI_Mode 设置了被使能线路的模式。下表给出了该参数可取的值。

        EXTI_Trigger 设置了被使能线路的触发边沿。下表给出了该参数可取的值。

代码示例:

	EXTI_InitTypeDef EXIT_InitSrtucture;EXIT_InitSrtucture.EXTI_Line=EXTI_Line14;EXIT_InitSrtucture.EXTI_LineCmd=ENABLE;EXIT_InitSrtucture.EXTI_Mode=EXTI_Mode_Interrupt;EXIT_InitSrtucture.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_Init(&EXIT_InitSrtucture);

2.3函数EXTI_StructInit

        调用这个函数就可以把参数传递的结构体变量赋一个默认值。

        下表为EXTI_InitStruct 各个成员的缺省值。

2.4函数 EXTI_GenerateSWInterrupt

        这个函数是用来软件触发外部中断的,调用这个函数,参数给一个指定的中断线,就能软件触发一次这个外部中断。

2.5 对状态寄存器读写的EXIT库函数

        下面四个函数用来程序操作标志位,都是对状态寄存器的读写。

2.5.1在主函数里,查看和清除标志位的函数

1.函数 EXTI_GetFlagStatus

        这个函数是用来获取指定标志位是否被置1的。

2.函数 EXTI_ClearFlag

        这个函数是用来对置1的标志位进行清除的。

2.5.2在中断函数里,查看和清除标志位的函数

1.函数 EXTI_GetITStatus

         这个函数是用来获取中断标志位是否被置1的。

2.函数 EXTI_ClearITPendingBit

         这个函数是用来清除中断挂起标志位的。

代码示例:

void EXTI15_10_IRQHandler (void)
{if(EXTI_GetITStatus(EXTI_Line14) == SET)//判断所选定的中断标志位是不是为1.{//中断执行程序EXTI_ClearITPendingBit(EXTI_Line14);//清除中断标志位函数}
}

三、配置NVIC相关库函数

        下表例举了 NVIC 所有寄存器

3.1函数 NVIC_PriorityGroupConfig

        这个函数是用来中断分组,参数是中断分组的方式。

        NVIC_PriorityGroup 该参数设置优先级分组位长度。

代码示例:

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

3.2函数NVIC_Init

        这个函数是根据结构体里指定的参数初始化NVIC。

        NVIC_IRQChannel 该参数用以使能或者失能指定的 IRQ 通道。下表给出了该参数可取的值。

        NVIC_IRQChannelPreemptionPriority 参数设置了成员 NVIC_IRQChannel 中的先占优先级

        NVIC_IRQChannelSubPriority 参数设置了成员 NVIC_IRQChannel 中的从优先级。

下表给出了由函数NVIC_PriorityGroupConfig 设置的先占优先级和从优先级可取的值。

代码示例:

	NVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;NVIC_Init(&NVIC_InitStructure);

3.3函数NVIC_SetVectorTable

        这个函数是设置中断向量表的。

        NVIC_VectTab 参数设置向量表基地址:

3.4函数NVIC_SystemLPConfig

        这个函数的作用是系统低功耗配置。

        LowPowerMode 参数设置了设备的低功耗模式:

相关文章:

STM32 配置中断常用库函数

单片机学习 目录 一、配置AFIO相关库函数 1.1函数GPIO_AFIODeInit 1.2函数GPIO_EventOutputConfig 1.3函数GPIO_EventOutputCmd 1.4函数GPIO_EXTILineConfig 二、配置EXTI相关库函数 2.1函数EXTI_DeInit 2.2函数EXTI_Init 2.3函数EXTI_StructInit 2.4函数 EXTI_Gener…...

性能测试常见的指标详解

一、什么是性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求…...

【键盘变成了快捷键,怎么办?】

**最便捷的操作:**拔掉键盘有线插头,将键盘驱动进行卸载,重新插上键盘即可 键盘驱动如何卸载: 以win10为例,点击开始菜单栏选择设置 选择左上角系统 选择系统中,点击最下方关于,点击右侧的设备管理器 选…...

LeetCode Hot100 105.从前序与中序遍历序列构造二叉树

题目&#xff1a;给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 代码&#xff1a; class Solution {private Map<Integer, Integer> indexM…...

今天先水一章

水贴&#xff0c;可自动忽略...

网页设计作业-音乐网站首页

效果图 网盘链接 链接&#xff1a;https://pan.baidu.com/s/1CO4jAOY0zk1AWTx_pC3UmA?pwdfuck 提取码&#xff1a;fuck...

【2023 云栖】阿里云刘一鸣:Data+AI 时代大数据平台建设的思考与发布

云布道师 本文根据 2023 云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;刘一鸣 | 阿里云自研大数据产品负责人 演讲主题&#xff1a;DataAI 时代大数据平台应该如何建设 今天分享的主题是 DataAI 时代大数据平台应该如何建设&#xff0…...

【DP】mobiusp正在创作乐曲

输入样例1&#xff1a; 5 2 1 7 7 1 3 输出样例1&#xff1a; 2 输入样例2&#xff1a; 10 3 2 5 6 4 4 5 7 3 5 6 输出样例2&#xff1a; 1 #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; typede…...

docker国内镜像加速

创建或修改 /etc/docker/daemon.json 文件&#xff0c;修改为如下形式 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } Docker中国区官方镜像htt…...

Calling PeopleTools APIs 调用PeopleTools API

Calling PeopleTools APIs 调用PeopleTools API You can call all of the PeopleTools APIs from an Application Engine program. When using APIs, remember that: 您可以从应用程序引擎程序调用所有PeopleTools API。使用API时&#xff0c;请记住: All the PeopleTools …...

强化学习,快速入门与基于python实现一个简单例子(可直接运行)

文章目录 一、什么是“强化学习”二、强化学习包括的组成部分二、Q-Learning算法三、迷宫-强化学习-Q-Learning算法的实现全部代码&#xff08;复制可用&#xff09;可用状态空间检查是否超出边界epsilon 的含义更新方程 总结 一、什么是“强化学习” 本文要记录的大概内容&am…...

【手写实现一个简单版的Dubbo,深刻理解RPC框架的底层实现原理】

手写实现一个简单版的Dubbo&#xff0c;深刻理解RPC框架的底层实现原理 RPC框架简介了解Dubbo的实现原理服务暴露服务引入服务调用 手写实现一个简单版的Dubbo服务暴露ServiceBeanProxyFactory#getInvokerProtocol#exportRegistryProtocol#export 服务引入RegistryProto#referD…...

计数问题+约瑟夫问题(map)

目录 一、计数问题 二、约瑟夫问题 一、计数问题 #include<iostream> #include<map> using namespace std; int main() {int n,x;cin>>n>>x;map<int,int>m;for(int i1;i<n;i){if(i>1 && i<10){m[i];}else{int temp i;while (…...

Maven聚合项目发布至私服指定模块

无论是从事框架开发工作还是公共服务模块开发&#xff0c;为了解决通用性问题&#xff0c;常常需要发布一些依赖组件至maven私服。然而通常我们得maven工程都是由多个模块组成得聚合工程&#xff08;一个父工程下有多个模块&#xff09;。 这个时候可能会面临两个窘境&#xf…...

SpringCloud 微服务全栈体系(十六)

第十一章 分布式搜索引擎 elasticsearch 六、DSL 查询文档 elasticsearch 的查询依然是基于 JSON 风格的 DSL 来实现的。 1. DSL 查询分类 Elasticsearch 提供了基于 JSON 的 DSL&#xff08;Domain Specific Language&#xff09;来定义查询。常见的查询类型包括&#xff1…...

「快学Docker」监控和日志记录容器的健康和性能

「快学Docker」监控和日志记录容器的健康和性能 1. 容器健康状态监控2. 性能监控3. 日志记录几种采集架构图 4. 监控工具和平台cAdvisor&#xff08;Container Advisor&#xff09;PrometheusGrafana 5. 自动化运维 1. 容器健康状态监控 方法1&#xff1a;需要实时监测容器的运…...

midjourney过时了?如何使用基于LCM的绘图技术画出你心中的画卷。

生成 AI 艺术在近年来迅速发展&#xff0c;吸引了数百万用户。然而&#xff0c;传统的生成 AI 艺术需要等待几秒钟或几分钟才能生成&#xff0c;这对于快节奏的现代社会来说并不理想。 近日&#xff0c;中国清华大学和 AI 代码共享平台 HuggingFace 联合开发了一项新的机器学习…...

【代码随想录】算法训练计划28

回溯 1、子集 题目&#xff1a; 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2…...

量化交易:筹码理论的探索-筹码分布计算的实现

前言 很多朋友习惯了同花顺、大智慧等看盘软件&#xff0c;经常问到筹码分布如何计算。 说起来筹码分布的理论在庄股时代堪称是一个划时代产品&#xff0c;虽然历经level2数据、资金流统计、拆单算法与反拆单算法等新型技术的变革&#xff0c;庄股时代也逐渐淡出市场&#xf…...

常用Redis的键命令参考

一、DEL DEL key [key …] 删除给定的一个或多个 key 。 不存在的 key 会被忽略。 #删除单个键127.0.0.1:6379> set name zhangsan OK 127.0.0.1:6379> del name (integer) 1# 删除一个不存在的 key&#xff0c; 失败&#xff0c;没有 key 被删除127.0.0.1:6379> E…...

从数据清洗到模型部署:一个完整VGG16乳腺超声分类项目的避坑指南与优化思考

从数据清洗到模型部署&#xff1a;VGG16乳腺超声分类全流程实战精要 医学影像分析正经历着从传统人工判读到AI辅助诊断的范式转移。当我们聚焦于乳腺癌筛查这一关键领域时&#xff0c;超声图像分类任务因其非侵入性和普及性优势&#xff0c;成为计算机视觉技术落地医疗的重要突…...

2026年,杭州靠谱GEO服务商大揭秘,带你开启精准营销新体验!

在数字化营销的浪潮中&#xff0c;GEO&#xff08;地理定位&#xff09;营销凭借其精准触达目标客户的优势&#xff0c;成为众多实体商家提升业绩的关键手段。在杭州&#xff0c;有不少GEO服务商&#xff0c;其中成都煜见科技有限公司脱颖而出。接下来&#xff0c;我们就一起深…...

客户反馈闭环体系怎么搭?6 个模块讲透流程设计思路

很多企业并不缺客户反馈&#xff0c;真正缺的是一条能跑通的闭环链路。客服在记&#xff0c;销售在提&#xff0c;客户成功在跟&#xff0c;产品也在收&#xff0c;但信息一旦分散&#xff0c;后面就很容易断掉&#xff1a;有人收&#xff0c;没人判&#xff1b;有人判&#xf…...

计算机毕业设计 | vue+SpringBoot凌云在线阅读平台 图书借阅管理系统(附源码)

1&#xff0c; 概述 1.1 课题背景 随着现在科学技术的进步&#xff0c;人类社会正逐渐走向信息化&#xff0c;图书馆拥有丰富的文献信息资源&#xff0c;是社会系统的重要组成部分&#xff0c;在信息社会中作用越来越重要&#xff0c;在我国图书馆计算机等 信息技术的应用起步…...

HarmonyOS APP开发实战指南:从入门到精通

引言随着物联网和智能设备的快速发展&#xff0c;鸿蒙操作系统&#xff08;HarmonyOS&#xff09;凭借其分布式架构和高效性能&#xff0c;成为移动端开发的新热点。本文基于职位描述的技能要求&#xff0c;聚焦HarmonyOS APP开发&#xff0c;涵盖ArkTS语言、开发框架、实战项目…...

Orwell Dev-C++ 和 Embarcadero Dev-C++ 哪个更好

在选择 Orwell Dev-C 和 Embarcadero Dev-C 时&#xff0c;可以从以下几个角度进行比较&#xff1a;1. 开发背景Orwell Dev-C由独立开发者维护&#xff0c;是原始 Dev-C 的分支版本&#xff0c;专注于修复原版漏洞并保持轻量级特性。Embarcadero Dev-C由软件公司 Embarcadero 维…...

【5G MAC】从RAR到MAC-CE:深入解析NR Timing Advance的同步机制与演进

1. 什么是NR Timing Advance&#xff1f; 想象一下你参加一场线上会议&#xff0c;如果所有人都在不同时间说话&#xff0c;主持人根本听不清谁在说什么。5G网络中的上行同步也是类似的道理——当多个终端设备&#xff08;UE&#xff09;同时向基站&#xff08;gNB&#xff09;…...

如何用Bulk Crap Uninstaller彻底清理Windows软件:免费高效的批量卸载工具指南

如何用Bulk Crap Uninstaller彻底清理Windows软件&#xff1a;免费高效的批量卸载工具指南 【免费下载链接】Bulk-Crap-Uninstaller Remove large amounts of unwanted applications quickly. 项目地址: https://gitcode.com/gh_mirrors/bu/Bulk-Crap-Uninstaller Bulk …...

职业深度解析:AI/ML Engineer——从模型设计到生产落地

摘要&#xff1a;本文对AI/ML工程师岗位进行系统性解构&#xff0c;涵盖职业定位、工作内容拆解、硬性与软性能力要求、知识体系构建、典型工作场景、就业市场现状、薪酬结构、职业发展路径、适配人群画像、进入门槛路径及常见认知误区。适合机器学习从业者、转行意向者及技术管…...

告别ESP32环境配置噩梦:用Python虚拟环境一劳永逸管理ESP-IDF依赖

ESP32开发者的Python虚拟环境实战指南&#xff1a;彻底解决依赖冲突难题 每次打开ESP-IDF项目时&#xff0c;那些烦人的Python依赖报错是不是让你血压飙升&#xff1f;不同项目间的包版本冲突是否让你在pip install和pip uninstall之间反复横跳&#xff1f;作为一名长期奋战在E…...