HAL库(STM32CubeMX)之外部中断(STM32F103C8T6)

系列文章目录

HAL库(STM32CubeMX)——ADC学习总结(包含单次/连续模式下的轮询/中断/DMA)(蓝桥杯STM32G431RBT6)

HAL库(STM32CubeMX)——DAC学习(STM32G431RBT6)

HAL库(STM32CubeMX)——USART配置(中断接收/STM32G431RBT6)

HAL库(STM32CubeMX)——基本定时器、PWM、输入捕获、输出比较、互补式PWM等综合学习(STM32G431RBT6)

stm32下的IIC实现EEPROM代码-stm32G431RBT6(蓝桥杯嵌入式)

stm32f103c6t6下的HAL库搭建三种低功耗模式及实战分析(stm32通用)

HAL库(STM32CubeMX)之看门狗学习及实操(STM32F767IGTX)


文章目录

  • 系列文章目录
  • 外部中断配置
  • 标准库


外部中断配置

配置IO口为外部中断输入源
![![在这里插入图片描述](https://img-blog.csdnimg.cn/b100684dbf8041719f7b6a53219f9798.png)
在IO设置中配置好触发方式和默认拉低或拉高
在这里插入图片描述
在NVIC中使能外部中断,并分配优先级。在这里插入图片描述
实际的中断执行函数:
在这里插入图片描述
和之前的一样,还是存在中断回调函数:
在这里插入图片描述
仍然是weak定义的,可以自己重新定义编写该函数
这里的函数名字有些奇怪:EXTI15_10_IRQHandler
使能中断时:
在这里插入图片描述
像10-15这几个外部中断线捆在一起
在这里插入图片描述
如图,只有0-4是单独的

标准库

参考:【STM32标准库】【基础知识】外部中断

void GPIO(void)
{
	GPIO_InitTypeDef GPIO_Initstruct;						//声明GPIO初始化结构体
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);	//打开GPIO时钟
	GPIO_Initstruct.GPIO_Mode=GPIO_Mode_IN;					//输入模式
	GPIO_Initstruct.GPIO_OType=GPIO_OType_OD;				//开漏输入模式
	GPIO_Initstruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;			//引脚0,1
	GPIO_Initstruct.GPIO_PuPd=GPIO_PuPd_UP;					//上拉模式
	GPIO_Initstruct.GPIO_Speed=GPIO_High_Speed;				//高速模式
	GPIO_Init(GPIOB,&GPIO_Initstruct);						//初始化GPIO
}
//外部中断初始化
void EXTI_init(void)
{
	EXTI_InitTypeDef EXTI_Initstruct;								//创建外部中断初始化结构体
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);			//打开时钟
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource0);	//将GPIO与外部中断连接
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource1);	//同上
	EXTI_Initstruct.EXTI_Line=EXTI_Line0|EXTI_Line1;							//配置的是外部中断0,1
	EXTI_Initstruct.EXTI_LineCmd=ENABLE;							//使能
	EXTI_Initstruct.EXTI_Mode=EXTI_Mode_Interrupt;					//选择中断模式
	EXTI_Initstruct.EXTI_Trigger=EXTI_Trigger_Falling;				//下降沿模式
	EXTI_Init(&EXTI_Initstruct);									//初始化外部中断0,1
}
//配置NVIC
void EXTI_NVIC(void)
{
	NVIC_InitTypeDef NVIC_Initstruct;						//声明NVIC初始化结构体
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);			//选定NVIC分组
	NVIC_Initstruct.NVIC_IRQChannel=EXTI0_IRQn;				//配置的外部中断0
	NVIC_Initstruct.NVIC_IRQChannelCmd=ENABLE;				//使能
	NVIC_Initstruct.NVIC_IRQChannelPreemptionPriority=1;	//主优先级
	NVIC_Initstruct.NVIC_IRQChannelSubPriority=1;			//副优先级
	NVIC_Init(&NVIC_Initstruct);							//初始化外部中断0的NVIC
	NVIC_Initstruct.NVIC_IRQChannel=EXTI1_IRQn;				//配置的外部中断1
	NVIC_Initstruct.NVIC_IRQChannelCmd=ENABLE;				//同上
	NVIC_Initstruct.NVIC_IRQChannelPreemptionPriority=1;	//同上
	NVIC_Initstruct.NVIC_IRQChannelSubPriority=2;			//同上
	NVIC_Init(&NVIC_Initstruct);							//初始化外部中断1的NVIC
}
//初始化函数
void Init(void)
{
	GPIO();
	EXTI_init();
	EXTI_NVIC();
}
//外部中断0的中断服务函数
void EXTI0_IRQHandler(void)
{
	if(EXTI_GetITStatus(EXTI_Line0)!=RESET)			//标志位被值位(产生中断)
  	{
  		/*需要操作的内容*/
  		EXTI_ClearITPendingBit(EXTI_Line0);			//清除中断标志位
  	}
}
//外部中断1的中断服务函数
void EXTI1_IRQHandler(void)
{
	if(EXTI_GetITStatus(EXTI_Line1)!=RESET)			//标志位被值位(产生中断)
  	{
  		/*需要操作的内容*/
  		EXTI_ClearITPendingBit(EXTI_Line1);			//清除中断标志位
  	}
}

标准库还是需要自己明白许多外部中断线与IO口,时钟线对应关系的
不同IO时钟对应的总线:(简单利用HAL库找一下,具体的还要看stm32的参考手册)
在这里插入图片描述
参考stm32参考手册:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring源码】讲讲Bean的生命周期

1、前言 面试官:“看过Spring源码吧,简单说说Spring中Bean的生命周期” 大神仙:“基本生命周期会经历实例化 -> 属性赋值 -> 初始化 -> 销毁”。 面试官:“......” 2、Bean的生命周期 如果是普通Bean的生命周期&am…

ZYNQ中的AXI DMA

AXI DMA简介 DMA—直接内存访问—从外设到内存或者从内存到外设,不干涉CPU 硬核DMA和DMA软核如何选择 硬核—内存到内存、内存到PL(通过GP传输速率低)、内存到IO外设软核—从PL部分将大量数据进行搬运到内存(连接到HP速率更高&am…

【中级软件设计师】—数据结构与算法基础考点总结篇(八)

【中级软件设计师】—数据结构与算法基础考点总结篇(八) 课程大纲 1.1 数组 按行存储:a(2*53)*2 其中a表示的就是a[0][0] 1.2 稀疏矩阵 本题采用代入法,首先代入A0,0,A0,0存入的位置是M【1】,把i0,j0分别…

[网络原理] TCP 协议的相关特性

TCP和UDP都是传输层的协议. 文章目录1. TCP协议格式2. TCP连接及断开连接管理2.1 三次握手2.2 四次挥手3. TCP可靠性机制3.1 确认应答3.2 超时重传4. 滑动窗口5. 流量控制6. 拥塞控制7. 延迟应答8. 捎带应答9. 面向字节流10. 异常情况1. TCP协议格式 TCP的特点是有连接,可靠性…

Ceres 自动求导解析-从原理到实践

Ceres 自动求导解析-从原理到实践 文章目录Ceres 自动求导解析-从原理到实践1.0 前言2.0 Ceres求导简介3.0 Ceres 自动求导原理3.1 官方解释3.2 自我理解4.0 实践4.1 Jet 的实现4.2 多项式函数自动求导4.3 BA 问题中的自动求导Reference1.0 前言 Ceres 有一个自动求导功能&…

Java 读取Excel模板中的数据到实体类

目录一. 前提条件1.1 需求1.2 分析二. 准备2.1 自定义注解2.2 封装Excel的实体类三. 前台四. Controller层五. Service层💪💪💪六. 效果一. 前提条件 1.1 需求 从指定的Excel模板中读取数据,将读取到的数据存储到数据库中。 1.2…

VBA定位文本框控件中光标位置

实例需求:用户窗体中有如下4个TextBox控件,TextBox1中已经有文字内容,点击【定位】按钮,统计TextBox1中段落数量,并定位TextBox1中光标位置(箭头处),如下图所示。 示例代码如下。 P…

谈谈你对ThreadLocal的理解

谈谈你对ThreadLocal的理解 ThreadLocal是Java中的一个线程本地变量,它可以在多线程环境下,为每个线程提供独立的变量副本,保证了线程之间的数据隔离。ThreadLocal通常用于解决多线程共享变量的线程安全问题。 ThreadLocal通过一个ThreadLo…

第03章_基本的SELECT语句

第03章_基本的SELECT语句 🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,…

【Redis】十大数据类型(上篇)

文章目录概述命令官网Key命令Redis 的过期时间设置有四种形式:redis字符串(String)最最常用 set key value常用命令图示多值设置 mset、mget获取指定区间范围内的值 getrange、setrange数值增减 INCR key、DECR key获取内容长度及内容追加 STRLEN key、APPEND key x…

基于Android的停车场车位预约系统app-动态计算停车时长-公告-反馈

在设计时,用现代多媒体技术对 进行存储、加载智能码、调用、对比及识别,使得进出的车辆同时处于该系统电脑的监控之下,创建车库管理与车牌识别两者完美结合的管理流程。 智能停车场收费管理系统是一种高效快捷、公正准确、科学经济的停车场管理手段,是停…

工具:dumpbin.exe : COFF DLL 动态库依赖库 :VS工具

摘要: 速度快,不会像depend.dll 那样卡顿。但是无法查看调用dll 调用的dll,所以不如depend.exe 好用。查看方式不如depend.exe 直观。 总结:** 可能不怎么用** 介绍: dumpbin.exe是微软二进制文件转储器。显示有关…

字节跳动软件测试岗,前两面过了,第三面被面试官吊打,结局我哭了

阎王易见,小鬼难缠。我一直相信这个世界上好人居多,但是也没想到自己也会在阴沟里翻船。我感觉自己被字节跳动的HR坑了。 在这里,我只想告诫大家,offer一定要拿到自己的手里才是真的,口头offer都是不牢靠的&#xff0…

Uni-Mol: A Universal 3D Molecular Representation Learning Framework

Uni-Mol: 一个通用的三维分子表示学习框架 ICLR 2023 Uni-Mol 论文:Uni-Mol: A Universal 3D Molecular Representation Learning Framework | OpenReview Uni-Mol 代码::GitHub - dptech-corp/Uni-Mol: Official Repository for the Uni-Mo…

Python:《寻找整数》

问题描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 有一个不超过 1017 的正整数 n,知道这个数除以 2 至 49 后的余数如下表所示,求这个正整数最小是多少。 运行限制 最大运行时间:…

辉煌优配|人民币将可直接买港股 多家港股公司申请 增设人民币柜台

3月以来,多家港股公司发布公告称,已正式提交有关增设人民币货台的请求。这意味着港交所力推的港股“港币-人民币双货台形式”进入实质性推进阶段,离岸人民币行将迎来愈加丰富的出资标的。 多位业内人士表明,树立双货台形式是港交所…

Java设计模式(十七)—— 组合模式

组合模式的定义如下:将对象组合成树形结构以表示“部分-整体”的层次结构,让用户对单个对象和组合对象的使用具有一致性。 适用组合模式的情景如下: 希望表示对象的“部分—整体”层次结构希望用户用一致方式处理个体和组合对象一、问题的提…

这是一篇能够教会你运营阿里巴巴国际站的文章

对于很多跨境人来说,运营真的是一个让人头疼的大事情。不知道要从哪个方面下手,不知道要往哪方面努力等等问题都是很常见的,所以今天龙哥就解剖一下阿里巴巴国际站的运营方法,简单地给大家讲一下要掌握哪些方面的知识。运营这条路…

【数据结构篇C++实现】- 哈希表

文章目录🚀一、哈希表的原理精讲🚢(一)概念🚢(二)常见哈希函数的构造方法1.直接定址法2.数字分析法3.平方取中法4.除留余数法5.随机数法🚢(三)哈希冲突与处理…

web服务器—nginx

一、nginx介绍Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因…