stm32卡死在hal_delay
时间: 2023-12-08 20:03:39 浏览: 249
如果STM32卡在`HAL_Delay()`函数上,可能是因为在调用`HAL_Delay()`函数时,中断被禁用或者优先级被设置得太高,导致`SysTick`中断无法被触发,从而导致`HAL_Delay()`函数一直阻塞在等待`SysTick`中断的位置上。可以通过检查`SysTick`中断是否被触发来确认这个问题。解决方法是在调用`HAL_Delay()`函数前确保中断处于使能状态,并且将当前任务的优先级降低到比`SysTick`中断的优先级低。
相关问题
为什么stm32 HAL_Delay函数卡死
stm32 HAL_Delay函数卡死可能有多种原因,以下是其中一些可能的原因:
1. 系统时钟配置错误:如果系统时钟配置错误,可能会导致HAL_Delay函数无法正确计数,从而卡死。
2. 中断嵌套:如果在HAL_Delay函数执行期间,发生了中断嵌套,可能会导致HAL_Delay函数卡死。
3. 调用其他延时函数:如果在HAL_Delay函数执行期间,调用了其他延时函数,可能会导致系统死循环,从而卡死。
4. 硬件故障:如果硬件出现故障,可能会导致HAL_Delay函数卡死。
需要具体分析具体情况,才能找到问题所在。
__weak uint32_t HAL_GetTick(void)卡死
根据引用\[1\]和引用\[3\]的代码,可以看出HAL_GetTick()函数是用来获取系统时钟的函数。它通过返回变量uwTick的值来表示经过的时间。在HAL_Delay()函数中,会调用HAL_GetTick()函数来获取当前的系统时钟,并通过比较当前时钟与起始时钟的差值来实现延时功能。根据引用\[2\]的代码,可以看出在延时期间,会不断地调用HAL_GetTick()函数来判断是否达到延时的时间。如果HAL_GetTick()函数卡死,可能是由于uwTick变量没有被正确更新导致的。这可能是由于uwTick变量没有被正确地增加,或者在增加uwTick变量时发生了错误。为了解决这个问题,可以检查HAL_IncTick()函数的实现,确保uwTick变量被正确地增加。另外,还可以检查系统时钟的配置是否正确,以及时钟中断是否正常工作。
#### 引用[.reference_title]
- *1* [STM32+Cube MX使用MPU6050 DMP时,在外部中断中调用read_dmp函数发生系统卡死问题的根本原因分析](https://blog.csdn.net/phmatthaus/article/details/120749696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [关于STM32的HAL库中超时函数中的tick溢出后产生的问题的思考及求证](https://blog.csdn.net/eibo51/article/details/53615060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [用STM32开发小记及排坑小记](https://blog.csdn.net/qq515973568/article/details/122208017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文