这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32在FreerRTOS中出现HALDelay卡死以及解决方法

共1条 1/1 1 跳转至

STM32在FreerRTOS中出现HALDelay卡死以及解决方法

工程师
2025-06-15 17:46:37     打赏

【前言】

今天我在移植STM32U385的TouchGFX工程,在没有使用FreeRTOS时,LCD的驱动是正常的,但是配置好FreeRTOS,就卡死了,经查找发现卡死在HAL_Delay中,现将查找过程与解决方法分享如下:

【缘由】

我在TouchGFX中 ,首先是移植好LCD驱动的,也是能正常显示的,但是适配好FreeRTOS后,就不显示了,经调试发现卡死在LCD初始化上面。

image.png

经步入调试发现获取系统的Tick不到,我使用的系统滴答是TIM15的,在TIM回调函数中不进入中断:

image.png

查找TIM15的初始化,发现没有问题,那问题出现在哪里了呢?

在系统配置中,发现TIM15的中断优先级为15,因此中断得不到进入,因此问题就出在了这里,经查资料也是这样的问题。

【解决方法】

把TIM15的中断优先级调到4(FreeRTOS的中断优先级为5)

image.png

重新编译工程后,一切都正常了。

【总结】

在FreeRTOS中,需要注意中断优先级的配置,特别是在一些外设的初始化中,在HAL库中使用的超时判断是使用HAL_Tick来计时的,很容易就出现这样的问题。





关键词: STM32     FreerRTOS     Delay     卡死    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]