首页 > 其他分享 >STM32_5(中断)

STM32_5(中断)

时间:2023-05-02 16:25:12浏览次数:42  
标签:NVIC 优先级 中断 STM32 GPIO CPU EXTI

中断系统

  • 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行
  • 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源
  • 中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回

 

中断执行流程

           

 

NVIC基本结构

CPU相当于一个医生,NVIC相当于叫号系统,EXTI、TIM、ADC、USART相当于病人,看这里面谁的更紧急谁就优先级越小。

 

NVIC优先级分组

响应优先级:上个病人在看病,这个病人看病完了之后,紧急的病人即使后来的,也会最先进去看病,插队的优先级。

抢占优先级:如果这个病人更加紧急,并且此时已经有人在看病,那么就会把看病的人放在一边,先让更紧急的病人看病,看完之后再看放在一边的病人。

 

EXTI简介

  • EXTI(Extern Interrupt)外部中断
  • EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序
  • 支持的触发方式:上升沿/下降沿/双边沿/软件触发
  • 支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断
  • 通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒
  • 触发响应方式:中断响应/事件响应

 

AFIO复用IO口

  • AFIO主要用于引脚复用功能的选择和重定义
  • 在STM32中,AFIO主要完成两个任务:复用功能引脚重映射、中断引脚选择

 

EXTI框图

 

旋转编码器介绍

  • 旋转编码器:用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向
  • 类型:机械触点式/霍尔传感器式/光栅式

 

建议

  尽量别在中断函数里调用复杂函数,可以执行一个标志位,在主函数或其他函数里执行其他代码。

标签:NVIC,优先级,中断,STM32,GPIO,CPU,EXTI
From: https://www.cnblogs.com/toutiegongzhu/p/17367421.html

相关文章

  • 在cubeide中移植u8g2到STM32的流水账
    首先在github克隆项目源码到本地硬盘复制该文件夹到工程的core目录并改个名字,方便自己明天还能记得起来这是干毛用的文件夹,哈哈哈哈这个文件夹里边有121个文件包含了很多芯片的驱动,也就是名字中有_d_和芯片型号的文件先不管这些直接打开u8g2_d_setup.c 搜索关键字,比......
  • STM32CubeMX生成的代码无启动文件
    编译报错没有启动文件,编译不通过,报错Nosectionmatches selector -nosectiontobeFIRST/LAST。解决方法:cubemx生成的工程中就有启动文件,只是没有被keil添加到路径当中,启动文件具体路径如下:工程文件夹\MDK-ARM\RTE\Device\STM32F103C6\startu_f103xxxx.s在keil中双击......
  • stm32cubemx 笔记
    1、时间频率配置界面  FSMC-> FlexibleStaticMemoryController,即灵活的静态存储器控制器->专门用于连接外部存储器的总线接口。FSMC可连接到各种外部存储器,包括SRAM、NORFlash、NANDFlash、LCD显示器  FCLK->FCLK的作用是提供给FLASH读取的时钟,以便芯片内部的程序......
  • STM32_4(OLED)
    OLED简介OLED(OrganicLightEmittingDiode):有机发光二极管OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*64 OLED......
  • linux 软中断
    中断的分类中断分为硬中断和软中断,其分类依据是实现机制,而不是触发机制,比如CPU硬中断,它是由CPU这个硬件实现的中断机制,但它的触发可以通过外部硬件(比如GPIO),软件的INT指令,或者CPU执行检测(访问非法地址、除法异常)。一些资料会把以上三种方式做区分,把INTn这种方式叫做软件中断,因......
  • stm32cubeIde中使用shift+鼠标单击批量删除多行代码
    先从一个位置点击鼠标左键,然后拖动滚动条在需要开始或者结束的地方按着shift在点击鼠标左键,这样就可以批量删除了,对于几千行的代码来说,特别有用!什么?一个文件不会这么多行?呵呵。你再想想。......
  • 【带DC引脚SPI屏】STM32L010K8超低功耗单片机软件模拟SPI驱动ST7567点阵屏12864示例
    显示屏驱动芯片多种多样,有的不带DC,通过接收的数据的某个特定位确定是命令还是数据,比如常见的12864移植案例在【不带DC脚的spi屏】STM32F103C8移植u8g2在软件模拟spi模式下驱动st7920带字库的12864显示屏-不打鱼光晒网-博客园(cnblogs.com)和【不带DC脚的spi屏】stm32f1......
  • STM32单片机软件模拟I2C读取AM2320温湿度传感器数据
    STM32单片机使用软件模拟IIC读取AM2320温湿度传感器的数据并显示在0.96寸OLED屏上。我用的单片机是STM32F103C8T6,程序用的是ST标准库写的。STM32使用硬件I2C读取SHTC3温湿度传感器:https://blog.zeruns.tech/archives/692.htmlSTM32单片机读取AHT10温湿度传感器数据:https://blog.ze......
  • 使用VSCode取代Keil实现STM32和51单片机的开发
    使用VisualStudioCode开发STM32和51单片机,VSCode作为编辑器来开发嵌入式程序。视频教程:https://www.bilibili.com/video/BV18e4y1H7xX/VSCode简介VisualStudioCode是是由微软研发的一个轻量级但功能强大的源代码编辑器,这个软件是免费开源的,可在您的桌面上运行,并且可用于Windo......
  • STM32:RTthread_线程
    1微处理器系统    随着产品功能的增多,裸机系统不能够满足产品需求,引入RTOS实时操作系统的多线程管理,可以增加程序的稳定性逻辑性,便于管理;2线程  通常默认一个能独立实现功能的函数,称之为线程;多线程管理的意思就是这个程序可以实现多个功能管理;  2.1线程栈   ......