发新帖我要提问
12
返回列表
打印
[STM32F1]

STM32延时函数三种实现方法

[复制链接]
楼主: janewood
手机看帖
扫描二维码
随时随地手机跟帖
21
eefas| | 2024-5-13 22:56 | 只看该作者 回帖奖励 |倒序浏览
这是一种最简单的延时方法,通过循环等待实现延时。但这种方**占用CPU资源,且延时的精度受系统时钟频率的影响。通常不建议在需要高精度延时的场合使用这种方法。

使用特权

评论回复
22
kkzz| | 2024-5-14 11:08 | 只看该作者
使用循环计数实现延时函数是一种简单的方法,但它的准确性取决于编译器优化和处理器速度。

使用特权

评论回复
23
vivilyly| | 2024-5-14 19:32 | 只看该作者
SysTick定时器是STM32内置的一个定时器,可以用来生成周期性中断。通过设置SysTick定时器的频率和计数值,你可以实现延时功能。

使用特权

评论回复
24
cashrwood| | 2024-5-15 11:59 | 只看该作者
void Delay_ms(uint16_t ms)
{
    uint32_t i, j;
    for(i = 0; i < ms; i++)
    {
        for(j = 0; j < 1000; j++)
        {
            // 这里的空循环消耗时间
        }
    }
}

使用特权

评论回复
25
saservice| | 2024-5-15 16:03 | 只看该作者
void delay_ms(uint32_t ms)
{
   uint32_t current_tick = SysTick->VAL;
   uint32_t delay_tick = SystemCoreClock / 1000 * ms;
   
   while(delay_tick > current_tick)
   {
       current_tick = SysTick->VAL;
   }
}

使用特权

评论回复
26
modesty3jonah| | 2024-5-15 19:13 | 只看该作者
STM32 内部集成了一个 SysTick 定时器,它是 ARM Cortex-M 系列处理器的一部分。这个定时器可以用来实现精确的延时功能。通过配置 SysTick 定时器的 reload 寄存器和控制寄存器,可以实现微秒、毫秒甚至是秒级别的延时。

使用特权

评论回复
27
alvpeg| | 2024-5-16 12:13 | 只看该作者
void delay_ms(uint16_t ms){   uint32_t i, j;   for(i = ms; i > 0; i--)       for(j = 0; j < 1000; j++);  // 这里根据实际CPU频率调整循环次数}

使用特权

评论回复
28
usysm| | 2024-5-16 16:09 | 只看该作者
普通延时法              

使用特权

评论回复
29
lzmm| | 2024-5-16 19:18 | 只看该作者
利用STM32的定时器功能,设置好相应的预分频和重载值,启动定时器后,定时器会自动计数,当达到预设的值时,可以通过中断或查询的方式来通知CPU延时结束。这种方法不占用CPU资源,可以实现精确延时。

使用特权

评论回复
30
louliana| | 2024-5-16 23:02 | 只看该作者
使用STM32的SysTick定时器或外部中断源,当某个事件触发或时间到达预设值时,产生中断信号,CPU响应中断服务程序来处理后续动作。这种方法同样可以实现较为精确的延时,并且可以在延时过程中让CPU去执行其他任务。

使用特权

评论回复
31
uytyu| | 2024-5-17 11:29 | 只看该作者
通用定时器(TIM),它们可以被配置为具有多种功能,其中包括延时功能。通用定时器通常可以产生比较精确的定时事件

使用特权

评论回复
32
wwppd| | 2024-5-17 14:34 | 只看该作者
void Delay_ms(uint32_t ms) {
    uint32_t i, j;
    for (i = 0; i < ms; i++) {
        for (j = 0; j< SystemCoreClock / 1000; j++) {
            __NOP();
        }
    }
}

使用特权

评论回复
33
天天向善| | 2024-5-21 14:09 | 只看该作者
延迟是通过循环等待来实现的,但是这种方法消耗了 CPU 资源,延迟的准确性受到系统时钟频率的影响。

使用特权

评论回复
34
Pretext| | 2024-6-22 15:57 | 只看该作者
延迟是通过循环等待来实现的,但是这种方**消耗 CPU 和资源,而且延迟的准确性会受到系统时钟速率的影响。

使用特权

评论回复
35
童雨竹| | 2024-9-6 07:02 | 只看该作者

这些引线越窄越好

使用特权

评论回复
36
童雨竹| | 2024-9-6 07:02 | 只看该作者

这些引线越窄越好

使用特权

评论回复
37
童雨竹| | 2024-9-6 07:02 | 只看该作者

这些引线越窄越好

使用特权

评论回复
38
Wordsworth| | 2024-9-6 08:05 | 只看该作者

图像由前景和背景组成,在灰度直方图上,前景和背景会形成高峰,在双峰之间的最低谷处就是阈值。

使用特权

评论回复
39
Clyde011| | 2024-9-6 09:08 | 只看该作者

要将多余空间去除。对于第一个字符从第一行开始向下扫描,把那些一行中所有的点的灰度值全为0的点去掉,直到扫描到有一行不全为0时为止。

使用特权

评论回复
40
公羊子丹| | 2024-9-6 10:01 | 只看该作者

输入滤波电容的公共端应作为其他交流电流地的唯一接点

使用特权

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

本版积分规则