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

使用Python的pySerial连接PerfectPrime TC0309无数据返回问题求助

解决pySerial连接PerfectPrime TC0309无法读取返回数据的问题

先梳理代码里的核心问题和修复方案:

1. 超时设置导致无数据可读

你把ser.timeout = 0设为了非阻塞模式,发送命令后立刻查询in_waiting,设备还没来得及返回响应,自然读到0。改成带超时的阻塞模式,比如ser.timeout = 1(等待1秒),给设备足够的响应时间。

2. 属性赋值错误

代码里serial.dsrdtr = False是错误写法,应该用串口实例ser来赋值,写成ser.dsrdtr = False,否则该参数未生效,可能影响设备握手逻辑。

修改后的可运行代码

import serial
import time

ser = serial.Serial()
ser.baudrate = 9600
ser.port = 'COM4'
ser.bytesize = serial.EIGHTBITS
ser.stopbits = serial.STOPBITS_ONE
ser.xonxoff = False
ser.dsrdtr = False  # 修正为实例属性赋值
ser.rtscts = True
ser.parity = serial.PARITY_NONE
ser.timeout = 1  # 设置1秒超时,让串口有时间接收设备响应
ser.open()

ser.write(b'K')
time.sleep(0.1)  # 短暂等待设备处理命令,可根据实际响应速度调整
buffer_size = ser.in_waiting
if buffer_size > 0:
    data = ser.read(buffer_size)
    print(f"收到数据: {data.decode('ascii')}")
else:
    print("未收到设备响应")

ser.close()

额外排查点

  • 确认Termite的命令格式:有些设备要求命令结尾加换行符(比如b'K\r\n'),可以试试发送b'K\r'或b'K\n',匹配Termite里实际发送的命令格式。
  • 对齐串口参数:确保代码里的数据流控制、奇偶校验和Termite中能正常工作的配置完全一致(你提到Termite里rtscts、parity多选项都能工作,但优先匹配当前可用的配置)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:43:17