中断优先组设置

视屏08-5中在void EnableDebugIRQ(void) 中 设置HAL_NVIC_SetPriority(USART1_IRQn,0,1); 在HAL_NVIC_SetPriority中设置1是否有用(已知在HAL_Init中设置HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4));还有假如设置HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0),HAL_NVIC_SetPriority(USART1_IRQn,0,8),HAL_NVIC_SetPriority(USART2_IRQn,0,9);能后设置HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_1),HAL_NVIC_SetPriority(USART3_IRQn,1,0),会导致前面两个(USART1_IRQn,USART2_IRQn)SubPriority无效吗?

请先 登录 后评论

1 个回答

百问网-邵老师
擅长:RTOS STM32

1. 是否有效可以去阅读cortex-m3的编程手册,也可以直接调试查看,在mdk中参考这样写:

attachments-2021-09-VNfB7D57614142f92ae2a.png

然后开启调试,打开

attachments-2021-09-aFmKoqqf614142cd3a68c.png

将断点放到HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_3);这一句,先别急着执行,看一看现在NVIC的情况:

attachments-2021-09-ePAUBtPk61414275b92be.png

2. 然后你后面的问题,就可以自己思考了。

请先 登录 后评论
  • 1 关注
  • 0 收藏,87 浏览
  • rtos40 提出于 2021-09-14 23:56

相似问题