STM32笔记之EXTI外部中断

2023-12-23 21:19:30

系列文章目录

第N章 STM32学习笔记之OLED屏幕

第N章 STM32学习笔记之EXTI外部中断


目录

系列文章目录

前言:

一、中断系统

1.中断

2.中断优先级

3.中断嵌套

二、NVIC

1.来源

2.基本结构

2.优先级分组

三、EXTI外部中断

1.简介

2.基本结构

3.AFIO复用IO

4.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的一些理论知识,具体的实操步骤见后面章节

文章来源:https://blog.csdn.net/qq_52746299/article/details/132782386
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。