STM32笔记之EXTI外部中断
系列文章目录
第N章 STM32学习笔记之OLED屏幕
第N章 STM32学习笔记之EXTI外部中断
目录
前言:
笔记:跟着B站视频做的学习笔记
一、中断系统
1.中断
主程序运行过程中,当中断条件满足时,使CPU暂停当前运行的程序而去处理中断程序,处理完中断程序后又返回原来被暂停的位置继续运行,叫中断
如:定一个闹钟,就可以放心睡觉,时间到了闹钟会提醒你,就相当于产生了一个中断信号,如果没有这个闹钟,就得不断地看时间,生怕错过起床点
2.中断优先级
当有多个中断发生时,CPU会根据中断优先级进行裁决,优先响应优先级高的中断
3.中断嵌套
当一个中断程序正在运行时,又有新的更高优先级的中断来了,CPU会暂停当前中断,去执行新的优先级更高的中断,处理完成后依次进行返回
二、NVIC
1.来源
STM32有很多中断:如ADC、EXTI、TIM、USART、SPI等
如果把这些中断全部接到CPU上,那CPU还得引出很多线进行适配,设计上会很麻烦,并且如果很多中断同时申请,或者中断很多,产生了拥堵,CPU也很难处理
就像一个医生,如果同时出现很多病人一起看病,医生会忙不过来,这时候就需要一个叫号系统,叫到哪个病人的号码,医生就给哪个病人看病,一个一个解决,这个较好系统就是NVIC
2.基本结构
NVIC有很多输入口,可以连接很多中断线路,但只有一个输出口,NVIC根据每个中断的优先级,对中断程序进行先后顺序分配,最后通过输出口告诉CPU要处理哪个中断,至于中断先后顺序分配的任务,CPU不需要知道,交给NVIC处理
3.优先级分组
为了处理不同形式的优先级,NVIC可以对优先级进行分组,分为抢占优先级和响应优先级
- 抢占优先级:直接抢掉正在响应的中断,先给它响应
- 响应优先级:即使是后来的,但插队在正在响应的后面,下一个响应就是它
NVIC中断优先级由优先级寄存器的4位决定,可以自己配置如下分组:
三、EXTI外部中断
1.简介
EXTI(Extern Interrupt)外部中断:
- 可以监测指定GPIO口的电平信号,如果IO口电平发生变化,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后让CPU去响应中断
- 触发方式:上升沿(电平从低到高的瞬间触发)? ? ? ? ?下降沿(电平从高到低的瞬间触发)? ? ? ? ? ? ? ? ? ? ? ??双边沿(上升沿、下降沿都可以触发)? ? ?软件触发(引脚无变化,靠代码触发)
- 支持的GPIO口:所以GPIO口,但相同的Pin不能同时触发中断,如PB1和PC1不能同时触发
2.基本结构
每个GPIO外设有16个引脚,所以每个GPIO外设进去AFIO时都有16根线,但由于相同的pin只能选择一个,经过AFIO数据选择器后只能选择16个通道连接EXTI边沿检测及控制电路上,然后再接到NVIC触发中断和其它外设上
3.AFIO复用IO
主要功能:引脚复用功能的选择和重定义
- 如PA0~PG0只能选择其中一个,PA1~PG1只能其中的一个
4.EXTI框图
- 20根输入线进入到边缘检测电路,检测是以上升沿还是下降沿还是双边沿触发
- 在与软件中断寄存器进行或运算,只要软件或者边缘有一个触发,即为真
- 再兵分两路,一个走向中断触发,一个走向事件触发
- 中断触发:进入请求寄存器,相当于中断标志,再跟中断屏寄存器与运算
- 事件触发:直接与事件屏蔽寄存器进行与运算,屏蔽器即开关,给1时,为输入本身,给0即关
总结
本章节讲了中断系统和EXTI的一些理论知识,具体的实操步骤见后面章节
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!