python如何微秒级延时?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何微秒级延时?相关的知识,希望对你有一定的参考价值。

貌似最小的延时就是time.sleep(0.001)请问如何实现微秒级的延时?最好别用第三方库

Python中的sleep函数可以传小数进去,就可以进行毫秒级的延时了,代码如下:
# 例1:循环输出休眠1秒
import time
i = 1
while i <= 3:
print i # 输出i
i += 1
time.sleep(1) # 休眠1秒
# 例2:循环输出休眠100毫秒
import time
i = 1
while i <= 3:
print i # 输出i
i += 1
time.sleep(0.1) # 休眠0.1秒
参考技术A python中的最小时间单位是毫秒,没办法精确到微秒
用time包的time()函数可以获得当前计算机的挂钟时间,利用它可以获得时间差
import time
time1 = time.time()
#要度量时间的程序
time2 = time.time()
print time2 - time1

Windows下,如何获得微秒级时间

#ifdef _WIN32#include <windows.h>#else#include <time.h>#endif // _WIND32// 定义64位整形#if defined(_WIN32) && !defined(CYGWIN)typedef __int64 int64_t;#elsetypedef long long int64t;#endif // _WIN32// 获取系统的当前时间,单位微秒(us)int64_t GetSysTimeMicros()#ifdef _WIN32// 从1601年1月1日0:0:0:000到1970年1月1日0:0:0:000的时间(单位100ns)#define EPOCHFILETIME (116444736000000000UL) FILETIME ft; LARGE_INTEGER li; int64_t tt = 0; GetSystemTimeAsFileTime(&ft); li.LowPart = ft.dwLowDateTime; li.HighPart = ft.dwHighDateTime; // 从1970年1月1日0:0:0:000到现在的微秒数(UTC时间) tt = (li.QuadPart - EPOCHFILETIME) /10; return tt;#else timeval tv; gettimeofday(&tv, 0); return (int64_t)tv.tv_sec * 1000000 + (int64_t)tv.tv_usec;#endif // _WIN32 return 0; 参考技术A 感觉只能到毫秒

以上是关于python如何微秒级延时?的主要内容,如果未能解决你的问题,请参考以下文章

织女星开发板RISC-V内核实现微秒级精确延时

求一个C语言的微秒级延时函数

windows下基于(QPC)实现的微秒级延时

STC89C52RC单片机额外篇 | 05 - 把NOP指令封装成微秒级延时函数

stm32 微秒定延时问题

这两个延时函数该怎么理解,又怎么使用,请大神指教?