STM32学习笔记(3)

EXTI外部中断

终端系统

  • 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行
  • 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源
  • 中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回

终端执行流程

在这里插入图片描述
在中断执行前,会对程序的现场进行保护,中断执行后,会在还原现场。
在这里插入图片描述
终端嵌套

STM32中断

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

NVIC基本结构

请添加图片描述
NVIC对中断优先级进行统一管理,再把指令传入CPU

NVIC优先级分组

优先级高的先响应
NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级。抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队。请添加图片描述

EXTI简介(Extern Interrupt)外部中断

  • EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序(简单来说就是引脚电平变化,申请中断)
  • 支持的触发方式:上升沿(由低电平变道高电平的瞬间发生中断)/下降沿(与上升沿相反)/双边沿(上升和下降都可以触发中断)/软件触发(引脚未发生改变,由程序的代码导致中断)
  • 支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断
    (端口GPIO_Pin一样的,只能选一个作为中断引脚,例如PA1,PB1这样的)
  • 通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒(外部中断可以从低功耗模式下唤醒STM32)
  • 触发响应方式:中断响应/事件响应
    中断响应:正常的流程,引脚电平变化触发中断
    时间响应:不会触发中断,而是触发别的外设操作,属于外设之间的练合工作

EXTI基本结构请添加图片描述

AFIO复用IO口

在这里插入图片描述

  • AFIO主要用于引脚复用功能的选择和重定义
  • 在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择

EXTI框图

在这里插入图片描述

使用外部中断模块的特性:
对于STM32来说,想要获取信号时外部驱动的很快的突发信号

旋转编码器

旋转编码器:用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向 类型:机械触点式/霍尔传感器式/光栅式

配置外部中断

打通从GPIO到NVIC这一路中出现的外设模块
1.配置RCC,打开所涉及的外设时钟
2.配置GPIO,选择我们的端口为输入模式
3.配置AFIO,选择我们用的这一路GPIO,连接到后面的EXTI
4.配置EXTI,选择边沿触发方式,如上升沿,下降沿或双边沿,选择触发响应方式,可以选择中断响应和时间响应
5.配置NVIC给中断一个合适的优先级

EXTI模块是由NVIC模块直接控制,并不需要单独的外设时钟。

GPIO_AFIODenInit AFIO外设的配置就会全部清除
GPIO_PinLockConfig 锁定GPIO配置,锁定引脚配置,防止意外
GPIO_PinRemapConfig 用于引脚重映射,第一个参数选择要重映射的方式,第二个参数时新的状态
GPIO_EXTILineConfig 用于配置AFIO的数据选择器,来选择我们想要中断的引脚

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucky Ray

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值