首页 > 其他分享 >STM32学习笔记_外部中断EXTI

STM32学习笔记_外部中断EXTI

时间:2023-12-12 23:32:24浏览次数:48  
标签:NVIC 优先级 中断 笔记 STM32 响应 GPIO EXTI

中断:

在主程序中运行过程中,出现了特定的中断触发条件,使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。

中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。

中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂定当前中断程序,转而去处理新的中断程序,处理完成后依次返回。

 

STM32中断:

68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设。

使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级。

 

NVIC基本结构:

嵌套中断向量控制器,用来分配中断优先级和管理中断的。

 

STM32学习笔记_外部中断EXTI_外部中断

 

NVIC优先级分组:

NVIC的中断优先级由优先级寄存器的4位(0-15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的i响应优先级。---优先级的数越小,优先级越高,0就是最高优先级。

抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队。

STM32学习笔记_外部中断EXTI_中断优先级_02

 

 

EXTI: Extern Interrupt(外部中断):

EXTI可以检测GPIO口的电平信号,当GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,执行对应的EXTI中断程序。

支持的触发方式:上升沿、下降沿、双边沿、软件触发

支持的GPIO口:所有GPIO口

通道数:16个GPIO_PIN、外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒

触发响应方式:中断响应、事件响应(事件响应会触发别的外设操作,属于外设之间的联合工作)

 

外部中断结构图:

STM32学习笔记_外部中断EXTI_STM32学习笔记_03

 

AFIO复用IO口:

AFIO主要用于引脚复用功能的选择和重定义

在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择。

 


外部中断的结构:

STM32学习笔记_外部中断EXTI_外部中断_04

 

 

旋转编码器介绍:

用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向。

类型分为机械触电式、霍尔传感器式、光栅式。

接下来使用旋转编码器来学习外部中断的使用。

标签:NVIC,优先级,中断,笔记,STM32,响应,GPIO,EXTI
From: https://blog.51cto.com/lion99/8791894

相关文章

  • sql学习笔记
    数据库原理1.数据库概念数据库定义数据库的特点2.数据库管理系统(DBMS)DBMS的功能常见的DBMS软件3.数据模型关系模型的基本概念数据库范式的概念和应用4.数据库事务和并发控制事务的ACID特性并发控制的方法和技术SQL语言基础1.SQL概述SQL语言的起源和......
  • 《软件需求模式》阅读笔记二
    《软件需求模式》第3、4章阅读笔记其中第3章描述了需求模式扮演的角色,解释了每个模式的一些具体内容和具体结构。而第4章则介绍了何时以及如何去使用需求模式,如何从原有的模式创造出新的模式或者直接编写新的模式。第3章首先为我们解释了需求模式的概念:定义一种特定类型需求的方......
  • 前端学习笔记DAY2 HTML5基础(2)(b站pink老师)
    二.HTML标签4.HTML常用标签4.1标签语义学习标签的重点是记住每个标签的语义。就是指标签的含义,即这个标签是用来干嘛的。根据标签的语义,在合适的地方给一个最为合理的标签,可以让页面结构更清晰。※4.2标题标签<h1>-<h6>HTML提供了6个等级的网页标题,即<h1>-<h6>。......
  • Kubernetes学习笔记——Kubernetes进阶
    一、深入理解Service1、Service存在的意义•防止Pod失联(服务发现)•定义一组Pod的访问策略(负载均衡)2、Pod与Service的关系•通过label-selector相关联•通过Service实现Pod的负载均衡(TCP/UDP4层)3、Service的三种类型-**ClusterIP**:集群内部使用,默认**,**分配一个稳定......
  • 笔记本睡眠结束后耳机没声音/音频无法播放
    可能原因睡眠结束后WindowsAudio服务没有启动[1].解决思路参考[2]编写bat在电脑睡眠结束后重启该服务,参考[3]让其自动运行.具体步骤编写bat在服务中找到WindowsAudio服务,其属性中复制服务名称编写如下程序以bat为后缀、UTF-8为编码保存实现自动重启按下Win+R,输入t......
  • Go语言学习笔记
    Go语言入门教程:https://c.biancheng.net/golang/Go语言的基本类型有:boolstringint、int8、int16、int32、int64uint、uint8、uint16、uint32、uint64、uintptrbyte//uint8的别名rune//int32的别名代表一个Unicode码float32、float64complex64、complex128当......
  • openGauss学习笔记-154 openGauss 数据库运维-备份与恢复-闪回恢复
    openGauss学习笔记-154openGauss数据库运维-备份与恢复-闪回恢复闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚......
  • openGauss学习笔记-155 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_d
    openGauss学习笔记-155openGauss数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-概述155.1概述openGauss提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库......
  • Flask ORM 学习笔记Part09:数据查询(中)
    聚合操作聚合操作是指对一组值进行汇总、计算或统计的操作。这些操作通常应用于数据库中的列(字段),并用于生成单个标量值(例如平均值AVG、总和SUM、最大值MAX、最小值MIN、计数COUNT等)。示例代码fromappimportappfrommodelimport*frompprintimportpprintfromsqlalchemyi......
  • 笔记:Qt开发之多线程的实现(QThread、moveToThread)
    目标:了解Qt实现多线程的两种基本方式(QThread、moveToThread),各自的实现方式、使用场景。1,子类化QThread实现方式:继承QThread类,重写run()函数实现多线程classWorkerThread:publicQThread{ Q_OBJECT public: explicitMyThread(QObject*parent=nullptr):QObject(pare......