OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2837|回复: 4

HAL_Delay函数默认是ms怎么实现us延时

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-11-19
在线时间
5 小时
发表于 2020-4-22 09:38:22 | 显示全部楼层 |阅读模式
STM32CUBEmx生成项目的HAL_Delay函数默认是ms怎么实现us延时
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-22 14:00:42 来自手机 | 显示全部楼层
不建议使用微秒级延迟,因为很容易不准
回复 支持 反对

使用道具 举报

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1617
金钱
1617
注册时间
2019-4-22
在线时间
310 小时
发表于 2020-4-22 15:28:22 | 显示全部楼层
自己写一个
#define CPU_FREQUENCY_MHZ 72                                // CPU主频,根据实际进行修改
void delay_us(uint32_t delay)
{
        int last, curr, val;
        int temp;

        while (delay != 0)
        {
                temp = delay > 900 ? 900 : delay;
                last = SysTick->VAL;
                curr = last - CPU_FREQUENCY_MHZ * temp;
                if (curr >= 0)
                {
                        do
                        {
                                val = SysTick->VAL;
                        }
                        while ((val < last) && (val >= curr));
                }
                else
                {
                        curr += CPU_FREQUENCY_MHZ * 1000;
                        do
                        {
                                val = SysTick->VAL;
                        }
                        while ((val <= last) || (val > curr));
                }
                delay -= temp;
        }
}
回复 支持 反对

使用道具 举报

2

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-11-19
在线时间
5 小时
 楼主| 发表于 2020-4-22 17:30:58 | 显示全部楼层
谢谢楼上,我像要的就是STM32CUBEMX生成项目之后HAL_Delay(1);默认是1ms,怎么通过修改SysTick参数达到HAL_Delay(1)延迟1us
回复 支持 反对

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-22 21:50:20 来自手机 | 显示全部楼层
hal_delay可以使用TIMx作为时基,是基于定时器中断的
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 21:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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