MicroPython 开发板K210的延时函数的使用

python中有时间函数模块,可以直接使用,不像是51单片机中还要自己来编写延时函数。python中已经有前人编写好了,咱么拿来直接使用就好了。

下面代码中的毫秒和微秒延时数不能太小了,不然就看不到对应的灯亮了,不是不亮而是速度太快你看不到而已。

K210开发板的流水灯实验效果

具体的代码如下:

from Maix import GPIO               # 导入GPIO模块
from fpioa_manager import fm        # 导入fm模块

import utime as t                   # 导入定时器模块

fm.register(12, fm.fpioa.GPIO0, force = True)     # 注册外部12口为 GPIO1
fm.register(13, fm.fpioa.GPIO1, force = True)     # 注册外部13口为 GPIO2
fm.register(14, fm.fpioa.GPIO2, force = True)     # 注册外部14口为 GPIO3

led1 = GPIO(GPIO.GPIO0, GPIO.OUT)   # led1对象是GPIO1,输出模式
led2 = GPIO(GPIO.GPIO1, GPIO.OUT)   # led2对象是GPIO2,输出模式
led3 = GPIO(GPIO.GPIO2, GPIO.OUT)   # led3对象是GPIO3,输出模式

while(1):
    led1.value(0)                   # 对象led1的值为0
    t.sleep(1)                      # 延时1秒
    led1.value(1)                   # 对象led1的值为1
    t.sleep(1)                      # 延时1秒
    
    led2.value(0)                   # 对象led2的值为0
    t.sleep_ms(1000)                # 延时1000毫秒
    led2.value(1)                   # 对象led2的值为1
    t.sleep_ms(1000)                # 延时1000毫秒
    
    led3.value(0)                   # 对象led3的值为0
    t.sleep_us(1000000)             # 延时1000000微秒
    led3.value(1)                   # 对象led3的值为1
    t.sleep_us(1000000)             # 延时1000000微秒

上面的代码有点不够简洁,下面我们在优化一下:

from Maix import GPIO               # 导入GPIO模块
from fpioa_manager import fm        # 导入fm模块

import utime as t                   # 导入定时器模块

fm.register(12, fm.fpioa.GPIO0)     # 注册外部12口为 GPIO1
fm.register(13, fm.fpioa.GPIO1)     # 注册外部13口为 GPIO2
fm.register(14, fm.fpioa.GPIO2)     # 注册外部14口为 GPIO3

led1 = GPIO(GPIO.GPIO0, GPIO.OUT)   # led1对象是GPIO1,输出模式
led2 = GPIO(GPIO.GPIO1, GPIO.OUT)   # led2对象是GPIO2,输出模式
led3 = GPIO(GPIO.GPIO2, GPIO.OUT)   # led3对象是GPIO3,输出模式

led=[led1,led2,led3]                # 创建led的列表,把3个led灯的对象装进去
m = 500                             #  m 为延时的时间,后面用毫秒所以用500

while(1):
    for i in range(2):              # 使用for循环把led列表中的每个对象都取出来
        led[i].value(0)
        t.sleep_ms(m)
        led[i].value(1)
        t.sleep_ms(m)

最后的效果是一样的,就是时间上有点差别,后面的是500毫秒,前面的程序是1秒。
如果有什么不对的地方,希望路过的大佬,及时指正。如果能够帮助您解决一些问题,望您能够用您发财的小手给我点个赞,顺便转发出去,帮助更多有需要的人。谢谢!

猜你喜欢

转载自blog.csdn.net/xingyuncao520025/article/details/130448237