打印
[STM32F0]

HAL_Delay不起作用

[复制链接]
252|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Treasure101|  楼主 | 2025-6-5 01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在F072RB开发,但HAL_Delay不起作用,只使用最简单的IO控制LED闪烁进行测试。
就算是程序优先级=0,同时取消ide上的所有优先级。
就是最简单的HAL_Delay延时LED闪烁的不起作用。

使用特权

评论回复
沙发
夜阑风雨| | 2025-6-9 10:30 | 只看该作者
对于STM32F072RB,默认HSI为8MHz,需通过PLL或分频器生成系统时钟(如48MHz)。

使用特权

评论回复
板凳
在main.c中,打印SystemCoreClock的值(通过调试或串口),确保其与实际时钟一致。若时钟错误,调用SystemCoreClockUpdate()更新该变量

使用特权

评论回复
地板
光辉梦境| | 2025-6-9 12:00 | 只看该作者
确保主时钟源(如HSI或HSE)已启用并正确分频

使用特权

评论回复
5
别乱了阵脚| | 2025-6-9 13:00 | 只看该作者
HAL_Delay依赖SysTick中断实现延时,若中断未启用,延时函数会阻塞

使用特权

评论回复
6
三生万物| | 2025-6-9 14:04 | 只看该作者
检查SysTick中断优先级是否合理(通常为最低优先级,如0xF)

使用特权

评论回复
7
codingtuzi| | 2025-6-9 14:17 | 只看该作者
这个调用挺稳定的。非常方便。再查查哪里的问题!不行,就把工程删除掉,重新生成一下

使用特权

评论回复
8
远山寻你| | 2025-6-9 16:01 | 只看该作者
可以在IDE中禁用优化(如Keil的-O0,IAR的-O0,GCC的-Og)。对LED控制变量使用volatile关键字,防止编译器优化

使用特权

评论回复
9
淡漠安然| | 2025-6-9 17:00 | 只看该作者
确认LED的GPIO引脚配置为输出模式(GPIO_MODE_OUTPUT_PP)

使用特权

评论回复
10
江河千里| | 2025-6-9 20:22 | 只看该作者
使用万用表测量GPIO引脚电压,确认输出电平变化

使用特权

评论回复
11
冰春彩落下| | 2025-6-9 23:32 | 只看该作者
确保HAL_Delay和HAL_GPIO_WritePin的参数正确。确认GPIOA和GPIO_PIN_5与实际硬件一致

使用特权

评论回复
12
一秒落纱| | 2025-6-10 01:00 | 只看该作者
HAL_Delay依赖系统时钟(SysTick)计时,若时钟配置错误,延时将不准确

使用特权

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

本版积分规则

22

主题

22

帖子

0

粉丝