UART(通用异步收发器)是一种串行通信协议。
from machine import UART, Pin
# 创建 UART 对象
# UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))
uart = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))
# 发送数据
uart.write('Hello World\r\n')
# 接收数据
if uart.any():
data = uart.read() # 读取所有数据
print(data)
# 读取指定长度
data = uart.read(10) # 最多读取 10 字节
# 读取一行
data = uart.readline() # 读取到 \n 为止
# 完整配置示例
uart = UART(
0, # UART 端口号
baudrate=115200, # 波特率
bits=8, # 数据位
parity=None, # 校验位:None, 0 (偶校验), 1 (奇校验)
stop=1, # 停止位
tx=Pin(0), # 发送引脚
rx=Pin(1) # 接收引脚
)
# 发送字符串
uart.write('Hello\r\n')
# 发送字节
uart.write(b'\x00\x01\x02')
# 发送列表(会被转换为字节)
data = [65, 66, 67] # ASCII: A, B, C
uart.write(bytes(data))
# 检查是否有数据
if uart.any():
# 读取所有可用数据
data = uart.read()
if data:
# 转换为字符串
text = data.decode('utf-8')
print(text)
# 读取指定长度
data = uart.read(5) # 最多读取 5 字节
# 读取一行
data = uart.readline()
if data:
print(data.decode('utf-8').strip())
from machine import UART, Pin
import time
# GPS 模块通常使用 9600 波特率
uart = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5))
while True:
if uart.any():
line = uart.readline()
if line:
try:
text = line.decode('utf-8')
# 寻找 GGA 语句(包含位置信息)
if text.startswith('$GPGGA'):
print('GPS 数据:', text.strip())
except UnicodeError:
pass
time.sleep(0.1)
from machine import UART, Pin
import time
# 蓝牙模块通常使用 9600 波特率
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
print('等待蓝牙连接...')
while True:
# 接收蓝牙数据
if uart.any():
data = uart.read()
if data:
text = data.decode('utf-8').strip()
print('收到:', text)
# 回复
uart.write('收到: ' + text + '\r\n')
# 发送测试数据
time.sleep(5)
uart.write('测试消息\r\n')
print('发送: 测试消息')
from machine import UART, Pin
import time
# 配置 UART
uart = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))
print('串口调试助手 - 按 Ctrl+C 退出')
print('输入消息后按回车发送')
try:
while True:
# 接收数据
if uart.any():
data = uart.read()
if data:
text = data.decode('utf-8')
print('接收:', text, end='')
# 发送数据(如果支持 input)
# 注意:在 MicroPython 中,input() 可能会阻塞
# 这里仅作示例
# msg = input('发送: ')
# uart.write(msg + '\r\n')
time.sleep(0.1)
except KeyboardInterrupt:
print('\n退出')
uart.any() 检查