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 参数设置了设备的低功耗模式:

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

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

相关文章

超越噪音,让音乐重获新生:iZotope RX 10音频降噪修复软件

在音乐制作或者音频处理的过程中,噪音往往是一个让人头痛的问题。无论是环境噪音,还是设备产生的噪音,都会对音频质量产生重大影响。而现在,我们有了iZotope RX 10,这款专业的音频降噪修复软件,可以将你从噪…

C# 使用NPOI操作Excel的工具类

写在前面 NPOI是POI项目的.NET迁移版本。POI是一个开源的Java 读写 Excel、Word 等微软Ole2组件文档的项目;使用NPOI可以在没有安装Office或者相应环境的机器上对Word或Excel文档进行读写操作。 NPOI类库中操作EXCEL有两个模块分别是: 1️.HSSF模块&a…

【UCAS自然语言处理作业二】训练FFN, RNN, Attention机制的语言模型,并计算测试集上的PPL

文章目录 前言前馈神经网络数据组织Dataset网络结构训练超参设置 RNN数据组织&Dataset网络结构训练超参设置 注意力网络数据组织&Dataset网络结构Attention部分完整模型 训练部分超参设置 结果与分析训练集Loss测试集PPL 前言 本次实验主要针对前馈神经网络&#xff0…

#define例题

我们已经学了#define的所有知识,让我们来看这道题,可不要又陷入陷阱 题目要求: #define N 4 #define Y(n) ((N2)*n) int main() {int z 2 * (N Y(5 1));printf("z%d\n", z);return 0; } 求这个z的值是多少? 我们直接…

机器学习算法——主成分分析(PCA)

目录 1. 主体思想2. 算法流程3. 代码实践 1. 主体思想 主成分分析(Principal Component Analysis)常用于实现数据降维,它通过线性变换将高维数据映射到低维空间,使得映射后的数据具有最大的方差。主成分可以理解成数据集中的特征…

Linux加强篇005-用户身份与文件权限

目录 前言 1. 用户身份与能力 2. 文件权限与归属 3. 文件的特殊权限 4. 文件的隐藏属性 5. 文件访问控制列表 6. su命令与sudo服务 前言 悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。舟遥遥以轻飏,风飘飘而吹衣。问征夫以…

ssm+vue的物资物流系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的物资物流系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体…

JDK源码系列:StringBuffer与StringBuilder对比

一、源码分析StringBuffer与StringBuilder的区别 1、StringBuffer是多线程安全的,StringBuilder是多线程不安全的 多线程安全指的是 多个线程同时对一个对象进行append 等操作,不会出现覆盖、丢失的情况。 看下StringBuffer是如何做到多线程安全的&#…

BART 并行成像压缩感知重建:联合重建

本文使用 variavle-density possion-disc 采样的多通道膝盖数据进行并行重建和压缩感知重建。 0 数据欠采样sampling pattern 1 计算ESPIRiT maps % A visualization of k-space dataknee = readcfl(data/knee); ksp_rss = bart(rss 8, knee);ksp_rss = squeeze(ksp_rss); figu…

基于单片机的肺活量检测系统(论文+源码)

1.系统设计 在基于单片机的肺活量检测系统中,在硬件上整个系统通过利用主控制器STC89C52单片机来实现对整个系统进行控制的功能,通过采用LCD1602实现实时液晶显示数据的功能,通过肺活量传感器XGZP6847ADC0832实现监测肺活量的工作&#xff0…

终端移动性管理

联系前面所学的知识我们知道,移动性管理主要分为两大类:空闲状态下的移动性管理、连接状态下的移动性管理。我们今天来详细了解他们的工作原理~ 目录 移动性管理分类 1、空闲状态下的移动性管理 2、连接状态下的移动性管理 手机选择天线的原则 4G天…

使用Kibana让es集群形象起来

部署Elasticsearch集群详细步骤参考本人: https://blog.csdn.net/m0_59933574/article/details/134605073?spm1001.2014.3001.5502https://blog.csdn.net/m0_59933574/article/details/134605073?spm1001.2014.3001.5502 kibana部署 es集群设备 安装软件主机名…

Kafka系列 - 生产者客户端架构以及3个重要参数

整体架构 整个生产者客户端由两个县城协调运行,这两个线程分别为主线程和Sender线程(发送线程)。 主线程中由KafkaProducer创建消息,然后通过可能的拦截器,序列化器和分区器之后缓存到消息累加器(RecordAc…

nodejs+vue+python+PHP+微信小程序-健身俱乐部在线管理平台的设计与实现-安卓-计算机毕业设计

随着经济的发展、财富的累积,人们生活水平、生活质量大幅度提高,生活环境得到明显改善,但是竞争激烈、人们生活压力大、生活节奏快加上饮食习惯和生活方式不合理导致国内 亚健康人群逐年增多。统计数据表明当前我国亚健康人群比例已经超过了7…

VScode

一、VSCode设置中文 1、首先我们打开vscode,进入编辑页面后点击左边栏的图示图标进入“EXTENSIONS”面板 2、进入后,在上方搜索“Chinese”,搜索到中文(简体)后,点击“install”按钮。 3、等待自动下载安装…

【一文讲清楚 Anaconda 相关环境配置】

文章目录 0 前言1 Package 与环境1.1 module1.2 package1.3 环境 2 Conda、Miniconda、Anaconda和Pip & PyPI2.1 Conda2. 2 Miniconda2.3 Anaconda2.3.1 Anaconda Navigator2.3.2 Anaconda PowerShell Prompt & Anaconda Prompt2.3.3 Jupyter notebook 2.4 Pip & P…

深度学习第二天:RNN循环神经网络

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 文章目录 介绍 记忆功能对比展现 任务描述 导入库 处理数据 前馈神经网络 循环神经网络 编译与训练模型 模型预测 可能的问题 梯度消失 梯…

2023/11/24JAVAweb学习

age只会执行成立的,show其实都展示了,通过display不展示 使用Vue,必须引入Vue.js文件 假如运行报错,以管理员身份打开vscode,再运行 ------------------------------------------------------------------- 更改端口号

HarmonyOS简述及开发环境搭建

一、HarmonyOS简介 1、介绍 HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。有三大系统特性,分别是:硬件互助,资源共享;一次开发,多端部署;统一OS,弹性部署。 HarmonyOS通过硬件互…

微服务实战系列之Nginx(技巧篇)

前言 今天北京早晨竟然飘了一些“雪花”,定睛一看,似雪非雪,像泡沫球一样,原来那叫“霰”。 自然中,雨雪霜露雾,因为出场太频繁,认识门槛较低,自然不费吹灰之力,即可享受…