cube切换了时钟haldelay还不行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cube切换了时钟haldelay还不行相关的知识,希望对你有一定的参考价值。
cube切换了时钟haldelay还不行是因为不管是在main中的task还是中断服务函数,调用HAL_Delay系统就处于卡死状态,起初怀疑优先级过低导致,但NVIC配置Base SysTick优先级高于中断优先级也不触发Base SysTick中断。 参考技术A cube切换了时钟haldelay还不行:CUBEMX实现微秒毫秒延迟 基于HAL库实现微妙毫秒延迟使用时仅在main函数里添加delay_init(168),进行初始化即可即可。 参考技术B 一.现象(未使用freertos等操作系统)不管是在main中的task还是中断服务函数,调用HAL_Delay系统就处于卡死状态;(起初怀疑优先级过低导致,但NVIC配置Base SysTick优先级高于中断优先级也不触发Base SysTick中断)
二.断点调试
发现HAL_GetTick()->uwTick始终不变,问题确定uwTick未进行设置,对应到改变uwTick的库函数HAL_IncTick,发现没有地方调用;
而系统时钟中断函数SysTick_Handler也未实现任何功能,在Core\Src\stm32f1xx_it.c添加如下代码:
以上是关于cube切换了时钟haldelay还不行的主要内容,如果未能解决你的问题,请参考以下文章
stm32f107vc的eth的时钟线在stm32cubemx中怎么配置