STM32中断及其优先级

这篇博客详细介绍了Cortex-M3处理器的异常概念,包括异常优先级、优先级分组,特别是抢占优先级和子优先级的设置。接着,文章深入探讨了STM32中断系统的中断寄存器组,并通过实例分析了STM32如何实现中断处理。
摘要由CSDN通过智能技术生成


STM32中断配置示例:
/* NVIC config */
void NVIC_config(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;

	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);	

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
	NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);	 
}

这里涉及异常(中断)相关的:
1、异常与中断
2、优先级分组,NVIC_PriorityGroupConfig
3、抢占优先级,NVIC_IRQChannelPreemptionPriority
4、子(亚)优先级,NVIC_IRQChannelSubPriority
5、中断号定义,NVIC_IRQChannel
6、优先级配置的寄存器实现,NVIC_Init()的实现
此篇对上述内容进行整理,以下内容参考资料《Cortex-M3权威指南》

一、Cortex-M3异常简介

CM3  在内核水平上搭载了一个异常响应系统,所有中断机制都由NVIC实现。CM3有256个预定义的异常(所有能打断正常执行流的事件都称为异常)类型 其中编号为 1 - 15  的对应系统异常,大于等于 16  的则全是外部中断。如下图示:



虽然CM3 是支持240 个外中断的,但具体使用了多少个是由芯片生产商决定。比如:STM32 84 个中断,包括16 个内核中断和68 个可屏蔽中断。不同系列支持的中断数也是不同的,需参考具体芯片datasheet。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值