STM32学习历程(day5)

EXTI外部中断

中断

中断就是在主程序运行过程中 出现了特定的中断触发条件(中断源),CPU会暂停当前的程序,去处理中断程序 处理完会返回被暂停的位置 继续运行原来的程序。

中断优先级

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

中断嵌套

当一个中断程序正在运行时,又有更高优先级的中断源申请中断 CPU会再次中断当前程序,并保存位置 转而去处理新的中断程序 处理完之后依次返回。

EXTI外部中断

EXTI可以监测指定GPIO口的电平信号 当期指定的GPIO口产生电平变化时,EXTI立即像NVIC法出中断申请,经过NVIC裁决后即可中断CPU主程序 使CPU处理EXTI中断程序

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

支持的GPIO口:所有GPIO口都支持 但是相同的PIN不能同时触发中断(下面会讲为什么)

通道数:16个GPIO_Pin PVD输出 RTC闹钟 USB唤醒 以太网唤醒共20个

触发响应方式:中断响应/事件响应

NVIC(嵌套中断向量控制器)

NVIC(嵌套中断向量控制器)

STM32中用来管理中断和分配优先级的,一共有16个优先等级

CPU就像一个医生 而NVIC就像一个叫号器 医生只需要专心看病即可 当比较严重的病人来时 可以通过叫号器来通知医生

NVIC优先级分组

NVIC的中断优先级是通过优先级寄存器的4位来实现的,这四位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级,抢占优先级顾名思义可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均按中断号排队

一共4位 抢占优先级和响应优先级平分

EXIT结构讲解

AFIO会选择GPIO口中的一个引脚来接入到EXTI边沿检测及控制 一共可以选择16个 这就是前面为什么不同GPIO口的同个pin值不能同时接入的原因

外部中断的9-5是会触发同一个中断函数 同理5-15也会处理同一个中断函数 这两种都需要根据标志位来区分到底是哪个中断进来的

其他外设就是事件响应

输入线进来时会先经过边沿检测 看看是否满足上升沿或者下降沿 他与软件中断是走同一个或门 两个满足一个都会继续往下走,往上是触发中断的,往下是触发事件的。触发中断会先请求一个挂起寄存器,相当于中断标志位 可以通过这个判断是哪一个通道触发的中断,然后经过和中断屏蔽寄存器的与门 这就是屏蔽寄存器能生效的原因了 两个都为1才能中断。事件中断也是一样的。

总结

今天学习了OLED屏幕的用法 但是up主是直接给的程序 代码比较繁多 演示了下如何通过OLED调试程序 以及使用断点等、然后就学了EXTI外部中断 以前学习的时候 是通过汇编来学习的 算是了解一点 汇编在这块得自己保存CPU运行时的地址 以及保存现场 恢复现场。但是通过C语言就不要了 编译器都给我们处理好了。

相关推荐
一木 之林3 分钟前
Agent智能体学习总结:从一次调用到模型自主规划、工具调用与 ReAct 循环的项目实战-6/6
前端·人工智能·学习·react.js
来包番茄沙司23 分钟前
【网盘资源分享】2026新版尚硅谷AI Agent智能体极速版|全套课程资料+面经
人工智能·学习
每天题库39 分钟前
塔式起重机安装拆卸工考试题库 真题模拟考前押题精准覆盖
学习·安全·考试·题库·考证
别动我齐刘海10 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
gjf05_0513 小时前
人该怎样活着呢?版本75.8
学习
半杯咖啡半行码14 小时前
STM32之ARM通用汇编指令详解:从指令格式到寻址方式
汇编·arm开发·stm32
创界工坊工作室14 小时前
22-基于STM32的汽车防盗系统设计
stm32·单片机·嵌入式硬件·proteus
li星野15 小时前
【学习记录】PCB与PCBA核心知识全解析:从设计到制造的关键细节
学习·制造
卿卿的产品经理日记15 小时前
【AI产品经理实战】Day 35|从“沉迷工具“到回归 AI 底层:Skill 收官、系统复盘与下一个 13 天
人工智能·学习·产品经理
一条泥憨鱼16 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络