• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的定时器可以实现延时1us吗

Linux小学童 2020-08-22 浏览量:2466

如题,STM32的定时器可以实现延时1us吗?读写一些存储器件,比如E2PROM,需要用到us级别延时,如何做到。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 很难做到精确定时到1us,每条指令也在消耗时间,等转到需要用到定时的调用那里,还有其他处理流程,最终可能比1us要多。


    • 发布于 2020-08-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 可以的,但是需要注意定时器执行也会消耗几百ns所以,定时1us可能是,1.几和us有一点误差的
    • 发布于2020-08-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般的都可以,不过要看你的中断处理函数了,你的中断处理函数只要不超过1us那就没事,不过你要留出处理别的程序的时间,具体的你可以试试。
    • 发布于2020-08-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 1us延时,可直接通过  nop  来实现。

    • 发布于2020-08-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 1us还是关中断用nop指令来做比较准确,用定时器的话,定时器配置+中断响应时间基本就要消耗0.5us了。
    • 发布于2020-08-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以啊,直接72分频,就是1M了。不过你这么干的话,main里的代码时间稍长的就执行不了了
    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,精度可能不是很高,相差个几十ns吧,
    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 定时器都是上M的时钟频率,1us是肯定可以的,只是精度问题了。

    有很多用GPIO模拟IIC的,完全没有问题

    • 发布于2020-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个1us不是精准的,如果要驱动EEPROM,一种方法是使用硬件I2C,这种最稳定,否则就要降低I2C的通信速度,降到100K,这样只需要10us级别的延时,这样即使延时不准,也是I2C器件可以接受的范围内
    • 发布于2020-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以,通过滴答时钟做延时源,或者用nop延时
    • 发布于2020-09-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32的定时器可以实现延时1us吗