averyleigh 发表于 2023-9-7 12:40

内部延时函数:
void DelayUs(uint32_t us)
{
    uint32_t i;
    for (i = 0; i < us / 1000; i++);
}

beacherblack 发表于 2023-9-7 13:12

使用循环延时

c
void Delay(uint32_t nTime) {
while(nTime--) {
    // 根据系统时钟频率调整延时时间
    for (volatile uint32_t i = 0; i < SystemCoreClock / 1000000; ++i) {
      __NOP(); // 空操作,用于防止编译器优化
    }
}
}

wengh2016 发表于 2023-9-7 13:18

// 初始化SysTick定时器
void SysTick_Init(void) {
    SystemCoreClockUpdate(); // 更新系统时钟
    SysTick_Config(SystemCoreClock / 1000); // 设置每毫秒中断一次
}

// 毫秒级延时
void Delay_ms(uint32_t milliseconds) {
    uint32_t start = SysTick->VAL;
    uint32_t delayTicks = milliseconds * (SystemCoreClock / 1000);

    while ((SysTick->VAL - start) < delayTicks) {
      // 等待SysTick定时器达到指定延时
    }
}

bartonalfred 发表于 2023-9-7 13:43

定时器 来生成一个精确的延时。在定时器中断处理程序中,可以实现需要延时的操作。

鹿鼎计 发表于 2023-10-7 11:11

系统定时器实现延时功能。

digit0 发表于 2023-10-7 11:37

提供实现延迟功能的函数。

Pretext 发表于 2023-11-10 18:04

延迟功能可以在系统中断服务程序中实现。

weifeng90 发表于 2023-11-11 10:34

这种延时虽然简单,但是耗资源。

小华单片机代理 发表于 2023-11-13 11:18

学习了

天天向善 发表于 2023-12-10 19:21

嵌入式的定时器模块,可以编写更切确的延时函数。

AIsignel 发表于 2023-12-12 16:02

延迟功能可以通过使用计时器来实现。

理想阳 发表于 2024-1-2 13:40

上编写延时函数凡是有几种法子,详细的法子取决于您的需求以及利用场景。

朝生 发表于 2024-1-3 19:42

定时器用于产生精确的延迟,在定时器中断处理程序中,可以实现需要延迟的操作。

LinkMe 发表于 2024-1-11 12:12

体系定时器实现延时功效。

芯路例程 发表于 2024-1-11 17:54

供给实现耽误功效的函数。

V853 发表于 2024-2-2 00:21

耽误功效可以在体系间断服务程序中实现。

软核硬核 发表于 2024-2-6 02:50

虽然这种延迟很简单,但它会消耗资源。

LLGTR 发表于 2024-2-18 14:19

一个嵌入式定时器模块可以用来编写更精确的延迟函数。

小华单片机代理 发表于 2024-2-21 17:27

小华代理,有FAE,13538292986

呐咯密密 发表于 2024-2-22 14:34

这种不好用,还是用滴答定时器最方便
页: 1 [2]
查看完整版本: HC32l130单片机的delay函数怎么写