You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Windows PC向Raspberry Pi Pico发送字节字符串?

解决Raspberry Pi Pico与Windows PC反向串口传输问题

问题出在Pico代码中使用input()读取数据——这个函数是读取REPL控制台输入,而非串口接收的数据。要实现PC到Pico的串口通信,需用MicroPython的machine.UART模块操作硬件串口。

修改后的代码

Windows PC端代码(微调优化)

import serial
import time

# 配置串口,波特率与Pico保持一致
port = "COM5"
ser = serial.Serial(port, 9600, timeout=1)

# 发送字节数据,可添加换行符方便Pico识别(可选)
message = b"Hey This is the message!!!!\n"
ser.write(message)
print("消息已发送")

# 短暂延时确保数据传输完成,然后关闭串口
time.sleep(1)
ser.close()

Raspberry Pi Pico端代码(核心修正)

from machine import UART
import time

# 初始化UART:波特率9600,RX引脚为GPIO1,TX引脚为GPIO0
# 若使用USB虚拟串口,可直接用UART(0, baudrate=9600)
uart = UART(0, baudrate=9600, tx=0, rx=1)

# 以追加模式打开文件(wb会清空原有内容,按需选择)
file = open('Results77.txt', 'ab')

while True:
    # 检查串口是否有可读数据
    if uart.any():
        # 读取所有可用的串口数据
        data = uart.read()
        if data:
            print("收到数据:", data)  # 调试用,可删除
            file.write(data)
            file.flush()  # 强制写入文件,避免缓存丢失
    time.sleep(0.1)  # 降低CPU占用

关键注意事项

  • 硬件连接:若使用物理串口而非USB虚拟串口,需将Pico的GPIO1(RX)连接到PC串口的TX引脚,GPIO0(TX)连接到PC串口的RX引脚,且两端要共地。
  • 波特率匹配:PC与Pico的波特率必须完全一致(此处为9600),否则会出现乱码或无法接收。
  • 文件写入模式:ab为追加写入,不会覆盖原有文件内容;若每次启动都要清空文件,可改用wb模式。
  • 数据缓存:调用file.flush()确保数据立即写入存储,避免因断电导致缓存中的数据丢失。

内容的提问来源于stack exchange,提问作者HEL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 18:28:10