单片机学习之STM32中断

来源:本站
导读:目前正在解读《单片机学习之STM32中断》的相关信息,《单片机学习之STM32中断》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机学习之STM32中断》的详细说明。
简介:STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。

1.中断优先级管理

嵌套向量中断控制器:Nested Vectored Interrupt Controller (NVIC)

CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。

STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。

STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。

STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)

1.1中断管理方法

首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。

分组配置是在寄存器SCB->AIRCR中配置

单片机学习之STM32中断

参考如上的方式,3bit 可分为5个组,0~4,而当其分组号确定之后,对应的抢占式和响应优先级的数目也对应的已经确定了。

比如分组2,,对应于2bit抢占式优先级和2bit响应优先级,因此对应的抢占式优先级必须在0~3,同理响应优先级也是0~3.

1.2抢占优先级 & 响应优先级区别:

高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。

抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。

抢占优先级相同的中断,即:响应优先级:当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。

如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;

以上说明:只要符合中断分组方式,只需要注意对应的抢占式和响应的优先顺序,如果是同一个等级,可分配抢占式和响应优先级相同。

NVIC_InitTypeDef NVIC_InitStructure;

/* Configure the NVIC Preemption Priority Bits */

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

/* Enable the USARTy Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

2.中断优先级设置步骤

1.系统运行后先设置中断优先级分组。调用函数:

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

整个系统执行过程中,只设置一次中断分组。

②针对每个中断,设置对应的抢占优先级和响应优先级:

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

③ 如果需要挂起/解挂,查看中断当前激活状态,分别调用相关函数即可。

3.外部中断的一般配置步骤:

3.1初始化IO口为输入。

GPIO_Init();

3.2 开启IO口复用时钟。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

3.3设置IO口与中断线的映射关系。

void GPIO_EXTILineConfig();

3.4初始化线上中断,设置触发条件等。

EXTI_Init();

3.5配置中断分组(NVIC),并使能中断。

NVIC_Init();

3.6 编写中断服务函数。

EXTIx_IRQHandler();

3.7清除中断标志位 (在中断服务函数最后)

EXTI_ClearITPendingBit();

提醒:《单片机学习之STM32中断》最后刷新时间 2024-03-14 00:54:16,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机学习之STM32中断》该内容的真实性请自行鉴别。