嵌入式学习小组
直播中

李华

7年用户 1343经验值
私信 关注

M0516中断优先级的设置,有没有示例,没找到相关接口?

新唐M0516中断优先级的设置,有没有示例,没找到相关接口,谢谢!

回帖(1)

孔妞妞

2024-1-18 16:07:28
以下是设置M0516的中断优先级的示例代码:

首先,需要设置全局中断优先级,可以使用以下函数:

```c
void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
```

该函数用于设置中断优先级分组,其中PriorityGroup参数为优先级分组值。例如,如果要将抢占优先级和子优先级分别设置为4位和0位,可以使用以下代码:

```c
NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
```

然后,需要设置具体的中断优先级,可以使用以下函数:

```c
void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
```

该函数用于设置指定中断IRQn的优先级。其中IRQn是指中断号,可以是所有支持的中断类型,如UART中断、定时器中断等,priority是指要设置的优先级值。优先级值范围从0到15,0是最高优先级,15是最低优先级。例如,为UART0中断设置优先级4,可以使用以下代码:

```c
NVIC_SetPriority(UART0_IRQn, 4);
```

注意,在设置中断优先级时,要先设置分组优先级,再设置具体中断的优先级。另外,如果多个中断具有相同的优先级,那么将触发抢占优先级相同的中断首先处理。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分