| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> EXTI外部中断(上) -> 正文阅读 |
|
[嵌入式]EXTI外部中断(上) |
一、中断系统中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续进行。 ? ? ? ?中断就是在正常主程序执行的某一时刻,发生了中断触发条件。对于外部中断来说,可以是引脚发生电平跳变;对于定时器来说,可以是定时的时间到了;对于串口通信来说,可以是接收到了数据。 ? ? ? ?当事件发生时,时间会比较仓促,比如外部中断来了,如果不处理,下一个跳变信号就会跟着过来,如果时串口接收中断来了,你不读取接收到的数据,那么下一个数据再过来,就会把原来的数据覆盖。 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。 中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。(能否进行中断嵌套,是由中断优先级来决定的) 图1-1中断执行流程 图1-1中,左边的是普通的中断程序,而右边的是一个嵌套中断程序。 二、STM32中断STM32有68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设。68个中断通道(中断源)是F1系列最多的中断数量,具体多少了中断通道还需要参考对应型号的数据手册为准。 使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先级,可优先级进行分组,进一步设置抢占优先级和响应优先级。 三、NVIC基本结构图3-1 NVIC结构图? NVIC叫嵌套中断向量控制器,在STM32中式用来统一分配中断优先级和管理中断的。NVIC是一个内核外设,是CPU的小助手。STM32的中断非常多,(如果把中断全部街道CPU上,那么CPU还得引出很多线进行设配,所以很麻烦。并且如果很多中断同时申请,或者中断很多产生了拥堵,CPU会很难处理,毕竟CPU主要是用来运算的,所以需要NVIC的出现)在图3-1中我们可以看到NVIC有很多个输入口,有多少个中断线路都可以接过来,NVIC又只有一个输出口,NVIC根据每个中断的优先级分配中断的先后顺序,再通过输出口告诉CPU,该处理哪个中断。 四、NVIC优先级分组NVIC的中断优先级由优先级寄存器的4位(0~15)决定,优先级的数值越小,优先级越高,0就是最高优先级。这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级。 抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队。 ?图4-1优先级分组表 ?由图4-1可以知道优先级的分组方式有5种,分别是(0,4)、(1,3)、(2,2)、(3,1)、(4,0)。在程序种分组方式是由我们自己来选择的,选好分组方式,我们在配置优先级的时候需要注意抢占优先级和响应优先级的取值范围。 五、EXTI简介EXTI(Extern Interrupt)外部中断 EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO 口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序 支持的触发方式:上升沿/下降沿/双边沿/软件触发 支持的GPIO口:所有的GPIO口,但相同的Pin不能同时触发中断 通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒 触发响应方式:中断响应/事件响应 六、EXTI基本结构?图6-1 外部中断整体结构图 ?图6-1,我们可以看到GPIO外设有A、B、C,每个GPIO外设有16个引脚,所以图中显示每个GPIO进来16根线,但是在第五点中,我们说EXTI只有16个引脚,所以需要AFIO中断引脚选择电路模块,AFIO可以在3个GPIO外设中的16个引脚选择其中一个连接到后面的EXTI通道中。所以前面说不能相同的Pin同时触发中断(如PA1、PB1、PC1中,只有一个Pin可以连接到通道1上)。通过AFIO的选择之后的16个通道,街道EXTI边沿检测及控制电路上,同时下面4个外设并列接进来,加起来就组成EXTI的20个输入信号。 AFIO主要用于引脚复用功能的选择和重定义 在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择 下一章是关于代码的程序:EXTI外部中断(下)? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:19:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |