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还不行的主要内容,如果未能解决你的问题,请参考以下文章

STM32Cube基础工程配置

stm32f107vc的eth的时钟线在stm32cubemx中怎么配置

FPGA开发基础-------------Glitch Free时钟切换技术

亚稳态与多时钟切换

exy4412—CMU裸板复习

systemverilog 测试台中的时钟切换