开发板: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灯