新手上路
- 积分
- 43
- 金钱
- 43
- 注册时间
- 2019-11-4
- 在线时间
- 5 小时
|
1金钱
各位大佬,HAL库中中断优先级配置函数中的第二个参数,第三个参数,也就是响应优先级和抢占优先级,函数中有对其有效性判断的代码,((PRIORITY) < 0x10),如果中断优先级分组为2,即响应和抢占都为2位,按原子哥视频中说的这两个参数取值可以是0-3,而有效性判断时要求((PRIORITY) < 0x10),0X10为2,这里没理解。难道这里不是有效性判断?
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority){
uint32_t prioritygroup = 0x00;
/* Check the parameters */
assert_param(IS_NVIC_SUB_PRIORITY(SubPriority));
assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
prioritygroup = NVIC_GetPriorityGrouping();
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
}
#define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x10)
#define IS_NVIC_SUB_PRIORITY(PRIORITY) ((PRIORITY) < 0x10)
|
|