stm32中有没有延时的库函数

关注

单片机 STM32 liangeeg    2018-11-28   |   浏览量 115  
stm32的库函数中有没有精确的延时函数,想直接用库函数操作

全部回答

  • 向悫 发表于 2018-11-28 云汉达人

    使用HAL库,就有精确的MS延时,可以使用CubeMX软件生成工程

    如果使用标准库,那就只有自己写延时了

    回答点赞:   fighter-12315 Andrewz 举报 评论 2

  • Spirit 发表于 2018-11-28

    HAL库有精确到毫秒的延时HAL_Delay()

    它是利用SYSTICK实现的

    举报 评论 0

  • Sier_手插口袋 发表于 2018-11-28

    要设置SYSTICK

    举报 评论 0

  • 小白爱32 发表于 2018-11-28

    我用标准外设库,需要将systick功能自己封装为一个函数使用,网上很多,建议直接看原子的例程

    举报 评论 0

  • yhj416606438 发表于 2018-11-28

    有的,就是用滴答定时器做延时函数的,如果用操作系统就要用操作系统的延时函数

    举报 评论 0

  • hangtao 发表于 2018-11-28

    可以使用hal库

    HAL_Delay 延时

    举报 评论 0

  • Andrewz 发表于 2018-11-28

    我建议自己编写延时函数.这样比较好控制.

    举报 评论 0

  • 9c77b96831e94e0e 发表于 2018-11-28

    有的,用HAL_Delay就可以

    举报 评论 0

  • Linux小学童 发表于 2018-11-28

    HAL库有延时函数;标准库可以用定时器或滴答器延时。

    举报 评论 0

  • @曲终人散@ 发表于 2018-11-28

    这类基础的函数当然有了,HAL_Delay就是,当然也可以自己写

    举报 评论 0

  • 我是假管 发表于 2018-11-28

    固件库中是没有延时函数的,但是可以使用滴答定时器或者是外设定时器进行计时延时,比较精确的。一下是407上的寄存器版本延时函数。

    void delay_us(u32 us)
    {
    SysTick->CTRL &=~(0x1<<2); //选择时钟(外部的时钟)
    SysTick->LOAD = 21*us;  //写入自动重装载值 (21/21000000 = 1us)
    SysTick->VAL=0; //清空当前数值寄存器
    SysTick->CTRL |=(0x1<<0); //打开定时器开始递减计数
    while((SysTick->CTRL & (1<<16))==0); //等待当前数值计数器递减到0
    SysTick->CTRL &=(0x1<<0); //等待完成以后一次滴答计时结束关闭定时器
    }

    举报 评论 0

  • 1667 发表于 2018-11-28

    hal 库里面有延时函数,HAL_Delay()  延时单位是 ms。

    hal 库中自带一个timer 实现的,没有RTOS 的话,hal 延时就是用的 systick 时钟

    参考这一片文章,有人分析过:

    http://www.icxbk.com/article/detail?aid=284

    举报 评论 0

  • 你中有我 发表于 2018-11-28

    在使用HAL库时,是有一个HAL_delay的函数是延时用的

    举报 评论 0

  • fighter-12315 发表于 2018-11-28

    HAL库里有HAL_Delay。是使用systick时钟实现的,固定毫秒级延时,微秒级的得自己实现

    举报 评论 0

  • LoveMyDog 发表于 2018-11-29

    试试原子的例程吧,还有视频讲解!

    举报 评论 0

  • FEItwo 发表于 2018-11-29

    如果有能力最好自己编写

    举报 评论 0

  • donatello 发表于 2018-11-30

    有,HAL_Delay()就是,延时1毫秒。

    举报 评论 0

  • 捷波 发表于 2018-11-30

    HAL库有HAL_Delay()函数延时。

    举报 评论 0

  • chen0000009 发表于 2018-12-14

    HAL库里面有个HAL_Delay函数用于延时

    举报 评论 0

  • mo_sui 发表于 1天前

    需要使用HAL 的HAL_Delay()函数

    举报 评论 0

我来回答

试用推荐

Beetle-ESP32控制器

产品总数:5个  申请人数:7

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
×
恭喜您成功领取锦鲤卡
幸运锦鲤将在12月28日晚8点的直播中公布
敬请期待...
确定
邀请答题送话费,邀的多赚的多