做个DEMO,让LED闪起来 ~~~
知识点
utime
utime 模块用于获取当前时间和日期、测量时间间隔和延迟。
格式化时间戳
utime.localtime([secs])
该函数用来将一个以秒表示的时间转换为一个元组,元组包含了了年、月、日、时、分、秒、星期、一年中第几天;如果没有给定参数sec,则使用RTC时间。返回值形式如下:(year, month, mday, hour, minute, second, weekday, yearday)
year :年份,int型
month :月份,1~12,int型
mday :日,当月多少号,1~31,int型
hour :小时,0~23,int型
minute :分钟,0~59,int型
second :秒,0~59,int型
weekday :星期,周一到周日是0~6,int型
yearday :一年中的第多少天,int型
示例:
>>> import utime
>>> utime.localtime()
(2020, 9, 29, 8, 54, 42, 1, 273)
>>> utime.localtime(646898736)
(2020, 7, 1, 6, 5, 36, 2, 183)
反向格式化时间戳
utime.mktime(date)
该函数作用与locatime()相反,它将一个存放在元组中的时间转换为以秒计的时间戳。
示例:
>>> import utime
>>> date = (2020, 9, 29, 8, 54, 42, 1, 273)
>>> utime.mktime(date)
1601340882
休眠给定秒数的时间
utime.sleep(seconds)
休眠给定秒数的时间。
注意:sleep()函数的调用会导致程序休眠阻塞。
休眠给定毫秒数的时间
utime.sleep_ms(ms)
休眠给定毫秒数的时间。
注意:sleep_ms()函数的调用会导致程序休眠阻塞。
休眠给定微秒的时间
utime.sleep_us(us)
休眠给定微秒的时间。
注意:sleep_us()函数的调用会导致程序休眠阻塞。
返回自纪元以来的秒数
utime.time()
返回自纪元以来的秒数(以整数形式)。如果未设置RTC,则此函数返回自特定于端口的参考时间点以来的秒数(对于不具有电池后备RTC的嵌入式板,通常是由于加电或复位)。如果要开发可移植的MicroPython应用程序,则不应依赖此功能提供高于秒的精度。如果需要更高的精度,请使用 ticks_ms()和ticks_us()函数,如果需要日历时间,则 localtime()不带参数会更好。
获取时区
utime.getTimeZone()
获取当前时区,单位小时,范围[-12, 12],负值表示西时区,正值表示东时区,0表示零时区。
设置时区
utime.setTimeZone(offset)
设置时区,单位小时,范围[-12, 12],负值表示西时区,正值表示东时区,0表示零时区。设置时区后,本地时间会随之变化为对应时区的时间。
计算时间间隔
返回不断递增的毫秒计数器 —— utime.ticks_ms()
返回不断递增的微秒计数器 —— utime.ticks_us()
返回不断递增的高精度CPU 时钟计数器 —— utime.ticks_cpu()
以上计数值本身无特定意义,只适合用在 ticks_diff()
函数中,计算两次调用 ticks_ms()
,ticks_us()
或 ticks_cpu()
之间的时间:
utime.ticks_diff(ticks1, ticks2)
计算两次调用 ticks_ms()
, ticks_us()
,或 ticks_cpu()
之间的时间。因为这些函数的计数值可能会回绕,所以不能直接相减,需要使用 ticks_diff() 函数。“旧” 时间需要在 “新” 时间之前,否则结果无法确定。这个函数不要用在计算很长的时间 (因为 ticks_*() 函数会回绕,通常周期不是很长)。通常用法是在带超时的轮询事件中调用。
示例:
import utime
start = utime.ticks_us()
while pin.value() == 0:
if utime.ticks_diff(time.ticks_us(), start) > 500:
raise TimeoutError
Pin
引脚是指从集成电路(芯片)内部电路引出与外围电路的接线,引脚构成了这块芯片的接口。
GPIO
GPIO
:(英语:General-purpose input/output),通用型之输入输出的简称。
GPIO可以输出高电平、低电平两种状态,设置为1即高电平,0即为低电平。
GPIO可以读取外部电平状态,读到高电平返回1,读到低电平返回0。
引脚与GPIO对照表
创建对象
gpio = Pin(GPIOn, direction, pullMode, level)
GPIOn
GPIO 编号。direction
输入输出模式:IN – 输入模式,OUT – 输出模式。pullMode
拉取模式:PULL_DISABLE – 浮空模式,PULL_PU – 上拉模式,PULL_PD – 下拉模式。level
设置引脚电平,0 - 设置引脚为低电平, 1- 设置引脚为高电平。返回值
返回创建出来的对象。
获取引脚电平
Pin.read()
参数
无返回值
返回0 - 低电平,1 - 高电平。
设置引脚电平
Pin.write(value)
参数
value:1为高电平,0为低电平。返回值
设置成功返回整型值0,失败返回-1。
源码分享
led.py
"""
@Author: zhangqin
@Date: 2022-08-20
@Description: led
@FilePath: led.py
"""
from machine import Pin
import utime
LED = Pin(Pin.GPIO9, Pin.OUT, Pin.PULL_DISABLE, 0)
if __name__ == '__main__':
for i in range(10):
LED.write(0 if LED.read() else 1)
utime.sleep(1)