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语言就不要了 编译器都给我们处理好了。

相关推荐
浅念-7 分钟前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
ZH154558913115 分钟前
Flutter for OpenHarmony Python学习助手实战:API接口开发的实现
python·学习·flutter
爱吃生蚝的于勒19 分钟前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
厦门辰迈智慧科技有限公司20 分钟前
全功能数据采集仪mcu主要用途
单片机·嵌入式硬件·水库大坝安全监测·数据采集仪mcu
奶茶精Gaaa27 分钟前
工具分享--F12使用技巧
学习
jl486382141 分钟前
变比测试仪显示屏的“标杆“配置!如何兼顾30000小时寿命与六角矢量图精准显示?
人工智能·经验分享·嵌入式硬件·物联网·人机交互
清风6666661 小时前
基于单片机的智能电热水壶设计与温度控制系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
久邦科技1 小时前
奈飞工厂中文官网入口,影视在线观看|打不开|电脑版下载
学习
好好学习天天向上~~1 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化