打印
[STM32F0]

STM32f030rct6系统节拍不工作

[复制链接]
277|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SocialButterfly|  楼主 | 2025-7-3 22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 SocialButterfly 于 2025-7-29 23:00 编辑

使用STM32F030RCT6进行开发,用Cube IDE时系统滴答定时器(SysTick)无法正常工作,此时HAL_Delay或HAL_GetTick函数失效。
但是在Keil MDK中这些功能全部正常。

使用特权

评论回复
沙发
公羊子丹| | 2025-7-31 13:39 | 只看该作者
CubeIDE里SysTick不工作,第一步确认下系统时钟配置是否正确,时钟没配好,SysTick就没计数基准。

使用特权

评论回复
板凳
周半梅| | 2025-7-31 13:40 | 只看该作者
你检查一下HAL_Init()有没有调用,SysTick的初始化就是在这里完成的。

使用特权

评论回复
地板
帛灿灿| | 2025-7-31 13:40 | 只看该作者
有时候CubeIDE工程默认不生成SysTick中断处理函数,确保SysTick_Handler在你的代码里有实现。

使用特权

评论回复
5
童雨竹| | 2025-7-31 13:42 | 只看该作者
HAL_Delay和HAL_GetTick依赖SysTick中断,要保证中断优先级和使能都正确。

使用特权

评论回复
6
万图| | 2025-7-31 13:47 | 只看该作者
在Keil里正常,CubeIDE里异常,建议对比两边启动文件和中断向量表是否一致。

使用特权

评论回复
7
Wordsworth| | 2025-7-31 13:49 | 只看该作者
CubeIDE可能有生成的startup文件和链接脚本版本不同,导致中断入口错乱。

使用特权

评论回复
8
Bblythe| | 2025-7-31 13:49 | 只看该作者
你试试手动在main函数里调用HAL_IncTick()和HAL_SYSTICK_IRQHandler(),看能否让tick走起来。

使用特权

评论回复
9
Pulitzer| | 2025-7-31 14:00 | 只看该作者
有时候FreeRTOS或者其他中断会屏蔽SysTick,检查一下中断优先级冲突。

使用特权

评论回复
10
Uriah| | 2025-7-31 14:00 | 只看该作者
CubeIDE的系统时钟配置要在SystemClock_Config()函数里仔细检查,特别是PLL和HSI源。

使用特权

评论回复
11
Clyde011| | 2025-7-31 14:01 | 只看该作者
如果你用的是裸机或者非HAL版本,SysTick的初始化需要自己写,CubeIDE默认是HAL工程。

使用特权

评论回复
12
和下土| | 2025-7-31 21:42 | 只看该作者
学习学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

34

帖子

0

粉丝