一. 延时和计时

使用time模块:

import time

time.sleep(1) # sleep for 1 second

time.sleep_ms(500) # sleep for 500 milliseconds

time.sleep_us(10) # sleep for 10 microseconds

start = time.ticks_ms() # get millisecond counter

delta = time.ticks_diff(time.ticks_ms(), start) # compute time difference

这些延时是阻塞式延时, 后续程序需要等待其完成

二. 计时器

ESP32端口有四个硬件计时器。使用machine.Timer类,其计时器ID为0到3(包括3):

from machine import Timer

tim0 = Timer(0)

tim0.init(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(0))

tim0.deinit()

tim1 = Timer(1)

tim1.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(1))

tim1.deinit()

这些延时是计数器延时, 不会阻塞其他程序

下面这个例子能够很好的看出这一点

import time

from machine import Timer

tim0 = Timer(0)

tim0.init(period=5000, mode=Timer.PERIODIC, callback=lambda t:print('beep'))

while 1:

print('blink')

time.sleep(3)

值得注意的是, 回调函数必须有一个形参t来接收定时器本身 ,这样可以从回调中停止定时器了

三. IO口

from machine import Pin

p0 = Pin(0, Pin.OUT) # create output pin on GPIO0

p0.on() # set pin to "on" (high) level //测试无效

python的延时函数delay_ESP32玩转MicroPython(三) 延时、计时 和GPIO操作相关推荐

  1. 【51单片机】延时函数计算问题以及如何准确延时

    几种周期介绍 周期名称 描述 时间 振荡(时钟) 单片机提供时钟脉冲信号的振荡源的周期 T=1/f 状态 振荡周期经二分频后得到的 2T 机器 在一个机器周期内,CPU可以完成一个独立的 操作 12T ...

  2. 玩转树莓派三、树莓派安装GPIO库接口wiringpi

    WiringPi简介 WiringPi 是由 Gordon Henderson 使用 C 语言编写的一个基于 PIN接口的 GPIO 控制函数库,适用于所有Raspberry Pi 中使用的 BCM2 ...

  3. MicroPython支持图形化编辑了:Python Editor带你轻松玩转MicroPython

    当你看到这篇文章的时候,显然你已经阅读了很多类似的文章,那么本篇文章会深入讲解一些新手的需求,提供详细的建议,当然我不会告诉你具体怎么做,一切答案都是肤浅的. 就拿我自己来说,初步接触编程的阶段是兴奋 ...

  4. python中高阶函数和装饰器_三.Python高阶函数和装饰器

    1高阶函数 1.1 数学概念回顾下数学知识: y=f(x) 这是最开始接触的普通函数 y=g(f(x)) 这个就是我们接触到的高阶函数 在数学和计算机科学中,高阶函数至少应当是满足下面一个条件的函数: ...

  5. python读写文件函数_Python开发【第三篇】:函数读写文件

    三元运算 三元运算,是条件语句的简单的写法.如果条件为真,则返回值1,否则,返回值2. ret = 值1 if 条件 else 值2 深浅拷贝 对于数字(int)和字符串(str)而言,赋值.深拷贝. ...

  6. python创建线程函数_Python多线程编程(三):threading.Thread类的重要函数和方法...

    这篇文章主要介绍threading模块中的主类Thread的一些主要方法,实例代码如下: 复制代码 代码如下: ''' Created on 2012-9-7 @author:  walfred @m ...

  7. linux内核态延时函数及头文件,Linux内核延时函数

    linux内核提供3个函数分别进行纳秒,微妙和毫秒延时(使用时包要含头文件): void ndelay(unsigned long nsecs); void udelay(unsigned long ...

  8. python中主函数循环_python入门(三):分支、循环、函数详解

    1.分支 if循环格式: if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_b ...

  9. python拷贝文件函数_python笔记2小数据池,深浅copy,文件操作及函数初级

    小数据池就是在内存中已经开辟了一些特定的数据,经一些变量名直接指向这个内存,多个变量间公用一个内存的数据. int: -5 ~ 256 范围之内 str: 满足一定得规则的字符串. 小数据池: 1,节 ...

最新文章

  1. Learn OpenGL (五):向量
  2. android h5 禁止缩放,vue h5移动端禁止缩放代码
  3. Boost:使用accumulator_set <>和std :: for_each()计算一些有用的统计信息
  4. SAP Spartacus键盘按下tab键之后,出现的focus state border是如何实现的
  5. html 图片防盗链,配置.htaccess文件实现图片防盗链
  6. oracle表段是什么,【DB笔试面试274】在Oracle中,什么是延迟段创建(Deferred Segment Crea......
  7. php创建多级目录函数,php创建多层(多级)目录的函数
  8. CF724G. Xor-matic Number of the Graph
  9. C# 操作json 序列化 反序列化
  10. C++学生信息管理系统
  11. 计算机地质制图CAD,CAD地质制图线型
  12. 安卓版微信自带浏览器和IE6浏览器ajax请求abort错误处理
  13. 跳出固化语境,固化思维,坚持反洗脑
  14. 苹果退款_这里有颗“后悔药”:苹果App Store退款流程
  15. 复杂性研究面临的难题
  16. CPU设计实战(一)
  17. 重装系统显示“安装程序正在应用系统设置“静止不动
  18. Spark面试题及其答案
  19. oracle数据库的使用
  20. 理解LINQ预编译查询(Compiled LINQ)

热门文章

  1. AttributerError: HTTPServer instance has no attribute 'server_forever'
  2. reactor与proactor模式
  3. ADMT3.2域迁移之Server2003至Server2012系列(八)生成密钥文件及安装密码迁移工具...
  4. windows8.1与centos7.0双系统启动项设置
  5. EMC开发实习生电面经验
  6. SQL语句的增删改查
  7. ADSL的PPPOE拨号客户端上的ppp authentication pap “callin”的正确理解
  8. SSL ×××与IPSec ×××特点比较
  9. 数据访问层之数据库访问设计(转)
  10. linux时间轮算法,关于时间轮的设计 linux hashed Hierarchical timing wheel