打印
[STM32F1]

基于STM32F103C8T6的EXTI外部中断感应灯

[复制链接]
616|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#一、EXTI外部中断
#二、NVIC中断
##1)中断流程
##2)STM32中断
##3)中断NVIC与EXTI基本结构
##4)中断优先级分组
##5)AFIO复用IO口
##6)EXTI功能框图
#三、EXTI外部中断结构
#四、EXTI中断函数配置
#五、程序代码

使用特权

评论回复
评论
雨果喝水 2022-12-25 15:06 回复TA
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_72921448/article/details/127378136 ———————————————— 版权声明:本文为CSDN博主「不是山谷547」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_72921448/article/details/127378136 
沙发
雨果喝水|  楼主 | 2022-12-25 15:13 | 只看该作者
EXTI外部中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

EXTI可以检测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序。

支持触发方式:上升沿/下降沿/双边沿/软件触发

支持GPIO口:所有的GPIO口,但相同的Pin不能同时触发中断(如,PA1、PB1、PC1则不能同时触发中断,经AFIO_EXTICR1寄存器分配,任选其一产生中断)

通道数:16个GPIO_Pin,外加PVD输出(注1)、RTC闹钟(注2)、USB唤醒、以太网唤醒

在程序中应用中断可以代替While(1)以减少单片机在程序运行过程中等待的时间,进一步提高了单片机的利用率及其工作效率,今天程序应用到的是外部中断EXTI。

使用特权

评论回复
板凳
雨果喝水|  楼主 | 2022-12-25 15:14 | 只看该作者
注:
1)PVD = Programmable Votage Detector 可编程电压监测器
它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。
2)RTC是Real Time Clock的简称,定时开机闹钟,它在硬件电路上单独供电,当系统关机时,CPU和其他外部硬件设备全部掉电,但是RTC仍然继续工作。

硬件如上个项目一致

使用特权

评论回复
地板
雨果喝水|  楼主 | 2022-12-25 15:16 | 只看该作者
NVIC中断

1)中断流程

中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行

使用特权

评论回复
5
雨果喝水|  楼主 | 2022-12-25 15:22 | 只看该作者
中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源

使用特权

评论回复
6
雨果喝水|  楼主 | 2022-12-25 15:23 | 只看该作者
中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回

使用特权

评论回复
7
雨果喝水|  楼主 | 2022-12-25 15:26 | 只看该作者

使用特权

评论回复
8
雨果喝水|  楼主 | 2022-12-25 15:29 | 只看该作者
STM32中断

向量表:

68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设(灰色部分为芯片内部中断)

使用特权

评论回复
9
雨果喝水|  楼主 | 2022-12-25 15:31 | 只看该作者

使用特权

评论回复
10
雨果喝水|  楼主 | 2022-12-25 15:31 | 只看该作者

使用特权

评论回复
11
雨果喝水|  楼主 | 2022-12-25 15:32 | 只看该作者

使用特权

评论回复
12
雨果喝水|  楼主 | 2022-12-25 15:33 | 只看该作者

使用特权

评论回复
13
雨果喝水|  楼主 | 2022-12-25 15:34 | 只看该作者
中断NVIC与EXTI基本结构

使用特权

评论回复
14
雨果喝水|  楼主 | 2022-12-25 15:34 | 只看该作者

使用特权

评论回复
15
雨果喝水|  楼主 | 2022-12-25 15:41 | 只看该作者
EXTI中断结构图分析:
GPIOA、GPIOB、GPIOC等各有16个Pin口(0~15),相同Pin口由AFIO中断引脚选择寄存器选择GPIOx为通道之一,如, GPIOA_Pin1,GPIOB_Pin1,GPIOC_Pin1,AFIO中断引脚选择寄存器选择GPIOA_Pin1为中断通道,则GPIOA_Pin1为EXTI1通道,其他两个Pin口产生的中断不会得到响应。

使用特权

评论回复
16
雨果喝水|  楼主 | 2022-12-25 15:51 | 只看该作者
通道数:AFIO中断引脚选择器选择出16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒,一共20个通道通往EXTI边沿检测及控制寄存器

使用特权

评论回复
17
雨果喝水|  楼主 | 2022-12-25 15:56 | 只看该作者
由EXTI边沿检测及控制寄存器检测中断信号,产生相应的中断请求信号沿通道送往NVIC中断

使用特权

评论回复
18
雨果喝水|  楼主 | 2022-12-27 15:59 | 只看该作者
NVIC中断结构图分析:
NVIC中断收集各个外设的中断请求,分配优先级组,将中断事件依次送入CPU处理。

使用特权

评论回复
19
雨果喝水|  楼主 | 2022-12-27 16:01 | 只看该作者
中断优先级分组

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

NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级

抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队

使用特权

评论回复
20
雨果喝水|  楼主 | 2022-12-27 16:02 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

1165

帖子

0

粉丝