为了账号安全,请及时绑定邮箱和手机立即绑定

这个函数是怎么完成优先级设置的?

这个函数是怎么完成优先级设置的?

慕妹3146593 2022-10-01 14:10:39
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);关于SHP[11]是怎么完成优先级设置的?SysTick_IRQn=-1;__NVIC_PRIO_BITS=4;***************************************************************************************************************static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority){if(IRQn < 0) {SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */else {NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */}**************************************************************************************************************
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);               

 NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;   //通道

 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//优先级设置0 或者1

 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;   //优先级设置

 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

 NVIC_Init(&NVIC_InitStructure); 

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

NVIC_PriorityGroup_0:则只看NVIC_IRQChannelSubPriority 的值

NVIC_PriorityGroup_1:

NVIC_PriorityGroup_2:

NVIC_PriorityGroup_3:

NVIC_PriorityGroup_4:则只看NVIC_IRQChannelPreemptionPriority 的值



查看完整回答
反对 回复 2022-10-06
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

正如你所见,systick计时器是Cortex-M3的内核外设,它的中断号小于0,所以它的优先级寄存器在SHP。其他的外部外设的中断号大于等于0,所以它的优先级寄存器在IP

查看完整回答
反对 回复 2022-10-06
  • 2 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号