找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 442|回复: 3
打印 上一主题 下一主题
收起左侧

HAL库自带的延时出现2倍延时

[复制链接]
跳转到指定楼层
楼主
ID:302293 发表于 2026-8-14 15:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个问题早就出现过了,不知道现在解决了没有,有解决的回复一下,感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶顶 踩踩
回复

使用道具 举报

沙发
ID:1175626 发表于 2026-8-20 11:02 | 只看该作者
检查时钟树: 使用示波器或逻辑分析仪,通过单片机的 MCO(时钟输出)引脚验证实际输出的系统主频是否与代码中配置的一致。
检查中断函数: 仔细检查 stm32f4xx_it.c(或对应芯片型号的中断文件)中的 SysTick_Handler,确保 HAL_IncTick() 只被调用了一次。
检查初始化顺序: 确保 SystemClock_Config() 在 HAL_Init() 之后被正确调用,且系统时钟确实切换到了目标频率。
高精度需求: 如果你的项目对延时精度要求极高,不建议使用 HAL_Delay()。可以考虑使用硬件定时器(Timer)或 Cortex-M 内核的 DWT(Data Watchpoint and Trace)模块来实现微秒级的高精度延时
回复

使用道具 举报

板凳
ID:883242 发表于 2026-9-15 19:25 | 只看该作者
c文件中主频的定义要与实物对应,另外HAL_Delay()并不准确,只保证延迟时间一定大于你的设定值,比如HAL_Delay(1)实际延迟时间在1~2个tick之间。
回复

使用道具 举报

地板
ID:1156764 发表于 2026-9-18 11:30 | 只看该作者
HAL库的delay就是不太准! 重新用芯片内部的硬件定时器重新定义延迟函数就好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表