二、STM32(Cortex-M3)中有几个优先级的概念?
时间: 2023-03-20 14:02:54 浏览: 86
在STM32(Cortex-M3)中,有16个可编程的中断优先级。这些优先级从0到15,0表示最高优先级,15表示最低优先级。
此外,STM32还具有两个特殊的优先级:
1. 用于处理硬件错误的“硬错误优先级”(HardFault)优先级,其优先级高于所有可编程的中断优先级。
2. 用于处理非屏蔽中断的“不可屏蔽中断”(NMI)优先级,其优先级高于所有优先级,包括硬错误优先级。
这些优先级的使用非常重要,可以确保在多个中断同时发生时,高优先级的中断先得到处理,从而确保系统的可靠性和稳定性。
相关问题
Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32F103x把指定中断优先级的寄存器减少到4位,写出这4个寄存器位的分组方式。
STM32F103x使用基于NVIC的优先级分组方式来指定中断源的优先级。在这种方式下,使用了4个寄存器位来指定中断源的优先级,这4个寄存器位被分为两个组。
具体来说,STM32F103x使用了以下的分组方式:
- 前两个寄存器位表示组优先级,后两个寄存器位表示子优先级;
- 组优先级的值越小,优先级越高;
- 子优先级的值越小,优先级越高;
- 在同一组中,所有中断源的优先级相同,但是可以使用不同的子优先级来实现中断源之间的优先级区分。
因此,STM32F103x使用了4位寄存器来实现8个不同的优先级级别。具体的分组方式如下所示:
|组优先级|子优先级|
|--------|--------|
| 0 | 0 |
| 0 | 1 |
| 0 | 2 |
| 0 | 3 |
| 1 | 0 |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
STM32F103R6有几个中断
STM32F103R6是一款ARM Cortex-M3内核的单片机,它支持多达59个中断向量。这些中断向量包括CPU内核内部的异常中断和外部设备的中断,具体如下:
- 16个基本异常中断(如硬件错误、系统滤波器、NMI等)
- 43个外部中断(如GPIO、USART、SPI、I2C、ADC、TIM等)
- 2个DMA中断
这些中断都可以通过NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器)进行优先级控制和使能。在使用中,可以根据需要选择相应的中断进行配置和使用。