你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
pkoko 发表于 2019-12-20 00:50 可以在main()的适当位置 加入 NVIC_GetPriorityGrouping() 函数,其返回值为当前的中断分组。获取当 ...
butterflyspring 发表于 2019-12-20 11:09 你好,我这边试了一下,没有错。在 HAL_Init(void) 中设置了默认值,若果你又对IO口的中断优先级分组配置了 ...
fantasyhpu 发表于 2019-12-23 10:14 谢谢,你用的是STM32CUBEMX自动生成的代码吗?我用STM32CUBEMX5.4自动生成代码后,在HAL_MspInit()中并没 ...
pkoko 发表于 2019-12-23 10:58 用CubeMX5.4自动生成的代码中,在HAL_MspInit()确实没有调用HAL_NVIC_SetPriorityGrouping()函数。而是通 ...
butterflyspring 发表于 2020-1-2 16:10 查查CUBEMX上哪里没配置到么?
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
tiwen
BBBB
aaa
2222
可用 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2); 函数自己设置分组。
评分
查看全部评分
谢谢,确实可以手动添加。
谢谢,你用的是STM32CUBEMX自动生成的代码吗?我用STM32CUBEMX5.4自动生成代码后,在HAL_MspInit()中并没有HAL_NVIC_SetPriorityGrouping()函数。
用CubeMX5.4自动生成的代码中,在HAL_MspInit()确实没有调用HAL_NVIC_SetPriorityGrouping()函数。而是通过类似HAL_NVIC_SetPriority(USART2_IRQn, 1, 0) 这样的函数调用。函数 HAL_NVIC_SetPriority()的原型在 stm32f1xx_hal_cortex.c 文件中定义,在该函数中调用了 NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
原来如此,万分感谢
正如pkoko所言,HAL_NVIC_SetPriority()函数中确实调用了
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority))
函数,但是无论在cubemx中怎样选择中断分组(我挨个试了),生成的代码里,传入NVIC_EncodePriority()函数中的prioritygroup参数的值始终没有改变,即cubemx中断分组设置没有起作用。
通过上图可见,尽管在HAL_NVIC_SetPriorityGrouping()函数设置中断分组为NVIC_PRIORITYGROUP_4,但是又调用了HAL_MspInit(),在stm32f4xx_hal_msp.c中打开HAL_MspInit()函数源码:
通过上图可见,又把中断分组改成在cubemx5.5中设置的值了。