STM32——中断概览(中断优先级)

中断是指计算机运行过程中,出现某些意外情况需要主机干预时,机器能够自动停止正在运行的程序并转入处理新情况的程序,处理完毕后有返回原来被暂停的程序继续运行

STM32的中断和异常

(1)对于异常和外部中断的功能,对于STM32单片机而言,是由芯片内的Cortex-M内核提供支持,这部分功能时有ST公司在Cortex-M内核上拓展或修改而来的

(2)异常和中断概念相近,异常可以说是内核活动产生(比如执行指令出错),中断一般是指,有连接到内核的外部器件(外设)产生(比如外设产生中断,提示数据传输完成),它们的触发或者说处理机制相同,使用中并不严格区分二者

STM32异常和中断一览表

 可以看到,异常都是由编号表示的,并且中断类型也很多,中断存在优先级

中断优先级

(1)中断优先级分为两种,可编程和不可编程,可编程的表示可以自己修改中断优先级,不可编程的就不能修改

(2)对于STM32中断优先级,决定着内核优先响应谁的中断请求

(3)小值优先原则,中断优先级数值越小,中断就会被优先相应

(4)中断优先级按照优先级分组配置

中断优先级分组

以F103为例,STM32上只使用M3内核支持的8bit优先级中的高4位bit,也就是STM32支持2^4个优先级

bit7 bit6</
### STM32 CAN 配置教程 在使用 STM32 和 CubeMX 进行 CAN 通信配置时,需要完成硬件和软件两部分设置。以下是详细的说明: #### 硬件配置 通过 CubeMX 工具可以轻松初始化 STM32 的外设资源。对于 CAN 外设的启用,需按照以下方式操作。 1. **启动项目并选择微控制器型号** 打开 STMCubeMX 软件,创建一个新的工程文件,并选择目标 MCU 型号(如 STM32H743 或其他支持 CAN 功能的芯片)[^1]。 2. **使能 CAN 外设** 在 Pinout & Configuration 页面中找到 RCC 设置项,在 Peripherals 下拉菜单里勾选 `CAN` 并将其模式设定为 Active。这一步会自动分配必要的 GPIO 引脚给 CAN 收发器接口 TX 和 RX。 3. **GPIO 配置** 对应于选定的 CAN 控制器实例 (例如 CAN1),其默认使用的物理引脚通常如下所示: - PA11 -> CAN_RX - PA12 -> CAN_TX 如果需要更改这些映射关系,则可以在 I/O 模块下手动调整连接到不同端口上的管脚组合。 #### 中断与 DMA 设定 为了提高数据传输效率以及减少 CPU 占用率,推荐开启中断服务程序或者利用直接内存访问(DMA)技术来处理消息收发事务。 - **中断向量表管理**: 当前版本可能已经预定义好了一些标准异常入口地址;如果打算自定义优先级等级的话,请记得同步修改 NVIC 寄存器中的相关参数值以便匹配实际需求场景下的响应速度要求。 - **DMA 流通道绑定**: 若采用双缓冲区循环读写机制实现高效的数据交换过程,则应该指定一对独立的工作队列分别服务于发送方(Send Buffer)及接收方(Receive Buffer)。 #### 初始化代码生成 完成上述所有选项的选择之后点击 Generate Code 键钮即可获得一份初步框架结构供后续开发人员继续完善逻辑功能模块。此时产生的源码目录树里面包含了几个重要的头文件(.h/.c pair sets),它们共同构成了整个应用层的基础支撑体系: ```c // main.c excerpt showing basic initialization sequence. #include "stm32fxxx_hal.h" int main(void){ HAL_Init(); // Reset of all peripherals, Initializes the Flash interface and Systick. SystemClock_Config(); // Configure system clock settings MX_GPIO_Init(); MX_CAN_Init(); while(1){ /* Infinite loop */ } } void Error_Handler(void){ // User can add his own implementation to report the HAL error return state } ``` 以上片段展示了典型的应用流程概览图谱——从全局变量声明到最后进入死循环等待事件触发为止的一系列必要步骤均已囊括其中。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值