STM32的中断优先级 分为 抢占优先级和响应优先级
前者是对抢占优先级的划分
后者是相同抢占优先级的优先级别划分
如 中断A的抢占优先级大于B的抢占优先级 则A的中断kezaiB里面触发,忽略响应优先级
若 A+B 则谁响应优先级来决定。
首先给中断分组,一共5个组,即组0——4
其中 :
组0 : 0位抢占优先级 4位响应优先级
组1: 1 3
组2: 2 2
组3: 3 1
组4: 4 0
值越小 优先级越高
每组最多村4个(有待考证),且中断的优先级不能超过设定的组的优先级范围
如:
MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,响应优先级2,组2
MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,响应优先级1,组2
其中 组2的话 其抢占优先级不能大于2 响应优先级不能大于2.
关键字:STM32 中断优先级
引用地址:
STM32的中断优先级
推荐阅读最新更新时间:2024-03-16 14:30
STM32的官方库函数调用
例如添加 #include stm32f10x.h 添加stm32f10x_gpio.c、stm32f10x_usart.c 再在stm32f10x_conf.h 中去掉相应的头文件注释
[单片机]
关于STM32单片机GPIO口上拉与下拉输入
以前GPIO上接的电路都是低电平触发的那种,新画了个板子有一个按键设计的是高电平触发,结果IO口设置成上拉输入后,怎么读都不正确,按键电路如图1。无奈只能去调试一下,发现当设置为上拉输入后,其ODR(GPIO输出数据寄存器)相应的也置为1,百思不得其解。 图1 按键电路 于是去看一下GPIO的结构图: I/O引脚结构图 由图可以发现其实输出寄存器与输入寄存器之间在I/O引脚处是线与状态,在GPIO设置成上位输入时,其上拉电阻闭合,这时如果输出寄存器设置为0那么在IO口内部就会自己损耗电流,而这些电流的损耗是会增加功耗的。因此当GPIO设置成上拉输入时,相应的输出寄存器也设置为1. 将按键电路与I/O
[单片机]
STM32中断NVIC部分知识总结
1.assert_param 实际上assert_param是一个宏定义,在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。当参数无效时,assert_param()可以在运行的程序调用到这个函数时报告错误,使程序员可以及时发现错误。 2.NVIC_TypeDef结构体成员: (1)ISER (Interrupt Set Enable Register)中断使能,ISER 的bit0~bit31对应中断0~31,ISER 的bit0~bit27对应中断的32~59,置1对应中断被使能;(还要分组、屏蔽、IO映射) (2)ICER (Clear),置1有效; (3)ISPR (Set Pending)置1正在执行的对应中
[单片机]
stm32 SD卡
容量等级 SD容量有8MB、16MB、32MB、64MB、128MB、256MB、512MB、1GB、2GB SDHC容量有2GB 、4GB、8GB、16GB、32GB SDXC容量有32GB、48GB、64GB、128GB、256GB、512GB、1TB、2TB SD卡寄存器 命令格式 所有命令均遵守此格式,总共48位。一个起始位,一个方向位,6个命令位,32位参数(有些命令需要),CRC 7位校验,1个停止位 Command Classes 注: 命令详细解释见SD卡2.0协议 部分命令 应答 应答格式有多种,以R1举例 初始化流程 以SPI模式举例 典型初始化流程 1.使能SPI时钟 2.使能GPIO
[单片机]
STM32超声波测距
超声波测距模块是HC-SR04,C-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测 距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。 HC-SR04基本工作原理: (1)采用IO口TRIG触发测距,给最少10us的高电平信呈。 (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回, 通过IO口ECHO输出一个高电平, 高电平持续的时间就是超声波从发射到返回的时间。 测试距离=(高电平时间*声速(340M/S))/2。 程序编写思路是:1、配置好使用到的GPIO以及定时器; 2、给模块TRIG端口发送大于10us的高电平信号,当收、收到ECHO回响信号是,打开定时
[单片机]
STM32 外部中断 易出错总结
前言:这些问题都是我之前在工作中遇到的,后来觉得需要总结,自己记忆不好,所以在这个给自己打个mark。 一:触发方式 STM32 的外部中断是通过边沿来触发的,不支持电平触发; 二:外部中断分组 STM32 的每一个GPIO都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。 STM32 分组和对应中断处理函数分配: 管脚 中断标志
[单片机]
STM32什么时候使用AFIO?
什么时候要开启AFIO呢?参考手册: 说的很明白,操作AFIO的三类寄存器时需要开启: AFIO_EVCR AFIO_MAPR AFIO_EXTICRx 这三类其实是AFIO的全部寄存器, AFIO_EVCR是事件相关的,AFIO_MAPR是与重映射相关的,AFIO_EXTICRx是与外部中断相关的。 因此管脚重映射、外部中断、事件时开启AFIO。
[单片机]
STM32输入捕获,实现红外解码,支持长按
初始化代码: static void RCC_Configuration( void ); static void GPIO_Configuration( void ); static void NVIC_Configuration( void ); void InputCaptureInit( void ) { TIM_ICInitTypeDef TIM_ICInitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; RCC_Configuration(); NVIC_Configuration(); GPIO_Conf
[单片机]