【发布时间】:2019-10-26 06:18:22
【问题描述】:
我正在尝试使用树莓派通过 RS232 到 pyhon 中的 USB 电缆从 称重秤 YH-T7E 读取数据。但是,当我通过它读取数据时,它会给我一个空字符串。
这是我的代码:
import serial
import time
ser = serial.Serial('/dev/ttyUSB0',
baudrate=9600,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout = 1)
while True:
print(ser.read())
上面代码的输出是:
b''
我也尝试过 this 帖子中的解决方案,但由于它一直在等待,所以什么也没提供:
while True:
data = ''
while ser.inWaiting() > 0:
data += ser.read()
if data:
print("Received: ", data)
我已验证 RS232 与笔记本电脑正确连接:
[ 6105.752153] usb 1-1.2: ch341-uart converter now attached to ttyUSB1
即使我使用了minicom,配置了波特率等参数,还是没有收到数据。
这里是YH-T7E manual 供参考
请帮助我?
【问题讨论】:
-
由于电子秤只是发送数据,您应该首先使用串行终端程序测试您正在接收并使用正确的波特率。或者 PySerial 有一个终端模式 - 查看文档。一旦显示了比例尺中的数据,您就可以尝试让您的代码正常工作。顺便说一句,手册没有提到具有偶校验的数据,并指定数据是 8 位的。另外,不清楚默认波特率是多少,因此您需要在刻度校准设置中声明它。
-
另外,手册中有一个令人困惑的“大屏幕”部分,它讨论了电流回路,这是一种不同于 RS232 的电气接口。也许这就是 RS232 连接器图上的输入/输出引脚的含义,在这种情况下您可以忽略它。
-
我在其他地方看到奇偶校验是无的。另外,我已经校准了设备,它的波特率为 1200
-
你试过串口终端吗?或者你的代码在正确的设置下运行得更好吗?
-
我尝试了 minicom,校准了规模,将波特率设置为 9600,但仍然没有运气:(
标签: python ubuntu raspberry-pi serial-port pyserial