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秒。
如果有什么不对的地方,希望路过的大佬,及时指正。如果能够帮助您解决一些问题,望您能够用您发财的小手给我点个赞,顺便转发出去,帮助更多有需要的人。谢谢!