完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用F407遇到一个抢占优先级的问题:
现设置优先级分组 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);也就是15个优先级分组。按照手册说明0抢占优先级具有最高优先级别。 现在我使用两个定时器: 1)tiM2设置优先级为0,TIM4设置优先级为1 2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4中断),现象为:TIM2无法抢占。 3)若先启动TIM2,则TIM4也无法抢占中断。 再次实验其他优先级: 1)TIM2设置优先级为1,TIM4设置优先级为2 2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4中断),现象为:TIM2成功抢占。 再次实验: 1)TIM2设置优先级为0,TIM4设置优先级为15 2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4中断),现象为:TIM2无法抢占。 总结现象: 1)实验现象证明0优先级确实无法被抢占,具有最高优先级(因为先触发有限级为0的中断后,优先级为1的没能抢占) 2)0优先级无法抢占其他优先级,无法形成中断嵌套。(因为先触发非0优先级的中断后,0优先级没有抢占到) 疑问: 优先级为0的中断不具备抢占能力吗? 注:下图是我使用0优先级以上实现了抢占的波形图: 紫色优先级3,蓝色2,黄色1,三个中断执行同样的任务,黄色最先执行完毕,证明可以实现抢占。 |
|
相关推荐
1个回答
|
|
首先,我们需要了解一下STM32F4的中断优先级和抢占规则。在STM32F4中,中断优先级分为抢占优先级和子优先级。抢占优先级用于确定中断的优先级顺序,而子优先级则用于具有相同抢占优先级的中断之间的优先级排序。
在您的问题中,您使用了两个定时器:TIM2和TIM4。您设置了TIM2的优先级为0,TIM4的优先级为1。根据您的描述,当先启动TIM4时,TIM2无法抢占;当先启动TIM2时,TIM4也无法抢占。这可能是因为您的中断优先级设置不正确或者中断配置有误。 为了解决这个问题,请按照以下步骤操作: 1. 确保您已经正确设置了优先级分组。您已经使用了HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);,这意味着有15个优先级分组。 2. 确保您已经正确设置了每个定时器的抢占优先级和子优先级。您可以使用HAL_NVIC_SetPriority()函数来设置。例如: ```c HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); // 设置TIM2的抢占优先级为0,子优先级为0 HAL_NVIC_SetPriority(TIM4_IRQn, 1, 0); // 设置TIM4的抢占优先级为1,子优先级为0 ``` 3. 确保您的定时器中断配置正确。在启动定时器之前,您需要配置定时器的中断,并在中断服务例程中处理相应的中断。例如: ```c HAL_TIM_Base_Start_IT(&htim2); // 启动TIM2的中断 HAL_TIM_Base_Start_IT(&htim4); // 启动TIM4的中断 ``` 4. 在相应的中断服务例程中,处理中断事件。例如: ```c void TIM2_IRQHandler(void) { HAL_TIM_IRQHandler(&htim2); } void TIM4_IRQHandler(void) { HAL_TIM_IRQHandler(&htim4); } ``` 5. 如果问题仍然存在,请检查您的代码逻辑,确保在启动定时器之前没有其他可能导致中断抢占的问题。 6. 如果以上步骤都无法解决问题,您可以尝试使用不同的优先级分组或者调整抢占优先级和子优先级的设置,以找到合适的解决方案。 希望以上步骤能帮助您解决STM32F4中断优先级0无法抢占的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1937浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
730浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
553浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:23 , Processed in 0.804963 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号