K210_MaixPy IDE外设开发之六 串口UART接发以及接受控制LED

开发板:K210 AIRV R3版 widora

开发环境:MaixPy IDE 矽速家的

必须的参考网站:

https://cn.maixpy.sipeed.com/zh/api_reference/Maix/fpioa.html

https://cn.maixpy.sipeed.com/zh/api_reference/Maix/gpio.html

https://cn.maixpy.sipeed.com/zh/api_reference/machine/uart.html

新建文件 _5uart.py

代码用上一节定时器TIM的 在里面修改

把串口调用进来,把GPIO管理的也调用了

from machine import UART
from fpioa_manager import fm

看看原理图

wifi串口对应IO6和IO7

参照上面的代码修改

fm.register(6,fm.fpioa.UART2_TX)
fm.register(7,fm.fpioa.UART2_RX)

uart_wifi = UART(UART.UART2, 115200, 8, None, 1, timeout=1000, read_buf_len=4096)

uart: UART.UART2 #使用串口2

波特率115200,8为数据位,奇偶校验,停止位1

tiimeout超时接受时间为1000ms

接受缓存大小为4096

发送函数

uart_wifi.write("AT\r\n")

接受函数

read_data = uart_wifi.read()

要实现功能:

K210发送AT给电脑

K210接受电脑发给K210的命令,判断接受的字符,点亮熄灭LED灯

代码如下

import utime
from Maix import FPIOA
from Maix import GPIO
from machine import UART
from fpioa_manager import fm

fpioa = FPIOA()
fpioa.set_function(17,fpioa.GPIOHS0)
fpioa.set_function(18,fpioa.GPIOHS1)

led1 = GPIO(GPIO.GPIOHS0,GPIO.OUT)
led2 = GPIO(GPIO.GPIOHS1,GPIO.OUT)

led1.value(0)
led2.value(0)

fm.register(6,fm.fpioa.UART2_TX)
fm.register(7,fm.fpioa.UART2_RX)


uart_wifi = UART(UART.UART2, 115200, 8, None, 1,
            timeout=1000, read_buf_len=4096)

uart_wifi.write("AT\r\n")
while(1):
    read_data = uart_wifi.read()
    if(read_data != None):
        print(read_data)

    if(read_data == b'A'):
        led1.value(1)
    elif (read_data ==b'a'):
        led1.value(0)

敲好代码后, 连接开发板,点击运行

现象:

打开串口助手, 选择端口为WIFI的端口(我这边是COM3, 而COM4是K210的串口,我不动他)

MAIXPY IDE那边 点击运行,会给COM3发送AT这个字符(没有发送的就重新取消运行,重新运行一次)

在串口助手中,发送字符串,K210会照单全收

发送A,可以看到K210的LED会亮

发送其他字符,都不影响LED灯亮

当发送a时,才会熄灭LED灯

猜你喜欢

转载自blog.csdn.net/jwdeng1995/article/details/108940079