0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32延时函数的方法

ss 来源:CSDN的沐白001、ZJE_ANDY 作者:CSDN的沐白001、ZJ 2021-10-02 16:13 次阅读

STM32延时函数的方法

1.普通延时法

这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。

2.SysTick 定时器延时

CM3 内核的处理器,内部包含了一个SysTick 定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD寄存器中自动重装载定时初值。

延时函数delay的编写

原理:3层for循环,循环次数是 NUM = 4X5X248 = 4960次,由每次循环都有条件判断(如 i 》0)和自减语句(如 i--),因此每次循环又耗费两个机器周期

所以,总耗费的机器周期为 SUM = NUM x 2 = 9920个。

整合自:CSDN的沐白001、ZJE_ANDY

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19286

    浏览量

    229842
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    356012
  • 延时函数
    +关注

    关注

    0

    文章

    25

    浏览量

    10018
收藏 人收藏

    评论

    相关推荐

    实现一个ns级的延时函数延时时间不可控的原因?

    现在要实现一个ns级的延时函数,用nop指令已经调试完成,然而问题在于这个延时函数经常被中断,导致延时时间不可控,我在
    发表于 06-26 06:50

    如何使用定时器写一个延时函数

    不用中断,就是单纯一个用作延时函数,写了一个下午也没搞明白,可能我理解出错了 void delay_us(int us) { timer_config_t delay
    发表于 06-14 06:03

    函数发生器的常见故障及解决方法

    函数发生器,作为电子测试和测量领域的重要工具,其稳定性和可靠性对于实验和测试结果的准确性至关重要。然而,由于各种原因,函数发生器在使用过程中可能会遇到各种故障。本文将详细介绍函数发生器的常见故障及其解决
    的头像 发表于 05-15 11:45 1020次阅读

    使用STM32F030时,用wait函数延时时间不对,为什么?

    使用STM32F030时,发现用wait函数延时时间不对,比正常速度快了6倍。在Mbed网站上发现,这个问题已经被记录下来,从Mbed的102版开始就有这个问题了。
    发表于 05-11 08:33

    求助,关于STM8延时函数的奇怪问题求解

    自己写了个延时函数 void ps_Delay_ms(uint32_t dly) { uint32_t i = 0; uint32_t j = 0; for (j=0;j
    发表于 05-10 06:18

    STM8S延时问题怎么解决?

    我的延时函数,本来很精准,100us的时候示波器测试没问题,但是在STLink设置中,勾选 擦除 命令后,延时函数就不准了,100us示波器中大概有133us的样子,有没有大神解释下是
    发表于 05-07 08:20

    Go语言中的函数方法与接口详解

    Go 没有类,不过可以为结构体类型定义方法方法就是一类带特殊的接收者参数的函数方法接收者在它自己的参数列表内,位于 func 关键字和方法
    的头像 发表于 04-23 16:21 831次阅读

    STM32蜂鸣器音乐播放实例教程

    开启定时器TIM7,是为了写延时函数HAL_Delay_us()。具体过程请移步此文:STM32的HAL库实现自定义延时函数delay_us
    发表于 03-26 14:19 2201次阅读
    <b class='flag-5'>STM32</b>蜂鸣器音乐播放实例教程

    stm32f1xx_ll_utils.c中提供的延时函数,以下标红语句为什么要多加1呢?

    stm32f1xx_ll_utils.c中提供的延时函数,以下标红语句为什么要多加1呢?延时1ms不就变成2ms了吗? void LL_mDelay(uint32_t Delay)
    发表于 03-26 06:08

    stm32中FREERTOS的延时函数osDelayUntil()死机的原因?

    我在使用STM32F4跑freertos的时候发现一旦使用osDelayUntil()函数,就会死机,但是用osDelay()函数就不会,按理说不是都可以用的吗?有知道原因的吗,谢谢!
    发表于 03-22 07:56

    STM32L0使用延时函数使PWM波形移相,延时函数不起作用的原因?

    使用的是STM32L0系列,准备使用延时函数使PWM波形移相,现在延时函数不起作用 delay.c函数
    发表于 03-21 06:23

    回调函数(callback)是什么?回调函数的实现方法

    回调函数是一种特殊的函数,它作为参数传递给另一个函数,并在被调用函数执行完毕后被调用。回调函数通常用于事件处理、异步编程和处理各种操作系统和
    发表于 03-12 11:46 2943次阅读

    STM32L0相对某一通道输出的PWM波进行移相,通过延时函数可以实现吗?

    使用的是STM32L0系列,所用定时器没有互补输出功能,现在相对某一通道输出的PWM波进行移相,通过延时函数可以实现吗,或者还有别的啥办法
    发表于 03-07 07:06

    时间继电器通电延时与断电延时的区别

    时间继电器通电延时与断电延时的区别  时间继电器是一种常用的控制设备,可用于各种延时应用。常见的时间继电器主要包括通电延时继电器和断电延时
    的头像 发表于 02-04 13:43 4683次阅读

    ROUND函数的使用方法

    的使用方法,包括语法、参数、应用场景等方面的内容。 首先,我们来看一下ROUND函数的语法。在大多数编程语言中,ROUND函数通常采用如下的语法形式: ROUND(number, num_digits) 其中,number是要进
    的头像 发表于 01-14 11:19 1941次阅读