[STM32F0] STM32f030rct6系统节拍不工作

[复制链接]
 楼主| 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在你的代码里有实现。
童雨竹 发表于 2025-7-31 13:42 | 显示全部楼层
HAL_Delay和HAL_GetTick依赖SysTick中断,要保证中断优先级和使能都正确。
万图 发表于 2025-7-31 13:47 | 显示全部楼层
在Keil里正常,CubeIDE里异常,建议对比两边启动文件和中断向量表是否一致。
Wordsworth 发表于 2025-7-31 13:49 | 显示全部楼层
CubeIDE可能有生成的startup文件和链接脚本版本不同,导致中断入口错乱。
Bblythe 发表于 2025-7-31 13:49 | 显示全部楼层
你试试手动在main函数里调用HAL_IncTick()和HAL_SYSTICK_IRQHandler(),看能否让tick走起来。
Pulitzer 发表于 2025-7-31 14:00 | 显示全部楼层
有时候FreeRTOS或者其他中断会屏蔽SysTick,检查一下中断优先级冲突。
Uriah 发表于 2025-7-31 14:00 | 显示全部楼层
CubeIDE的系统时钟配置要在SystemClock_Config()函数里仔细检查,特别是PLL和HSI源。
Clyde011 发表于 2025-7-31 14:01 | 显示全部楼层
如果你用的是裸机或者非HAL版本,SysTick的初始化需要自己写,CubeIDE默认是HAL工程。
和下土 发表于 2025-7-31 21:42 | 显示全部楼层
学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

42

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

42

主题

42

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部