从 Python 中的串行读取

Read from serial in Python

我有一个weight scale

连接到串行端口,我想知道当前正在读取的重量。 这是我在 Python.

中使用的代码
import serial

s = serial.Serial(port="COM3")
s.read(10)

它建立了连接,但它只是继续加载并且不提供任何输出。

我也试过:

ser = serial.Serial()
ser.baudrate = 9600
ser.port = 'COM3'
print(ser)

这是输出:

Serial<id=0x192eaed4c40, open=True>(port='COM3', baudrate=9600, bytesize=8, parity='N', 
stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)

谢谢。

如果您连接的设备未写入 10 个字节,您的读取调用将阻塞,直到它获得所有这 10 个字节。

通常,作为 reader 的你必须对设备说“嘿,我在这里,你能给我数据吗”,然后他们才会 return 你一些东西。另外可以查看ser.in_waiting属性看有没有可以读取的数据(以及有多少数据)

import serial


ser = serial.Serial(
    port = "COM2",
    timeout = 1,
    baudrate=9600,
    parity=serial.PARITY_EVEN,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.SEVENBITS,




)

ser.write(str.encode("W"))


weight = ser.read(8)
print(weight.decode('ascii'), weight)

您想从体重秤设备获取输入。您应该按照以下步骤操作:

  1. 首先检查设备与电脑的连接是否正常(网线、USB口、电脑)。可以使用终端软件。
  2. 如果连接正常。现在让我们从以下代码开始:
port='COM8',
 baudrate = 2400,
 parity=serial.PARITY_EVEN,
 stopbits=serial.STOPBITS_ONE,
 bytesize=serial.SEVENBITS,
 timeout=None
)

while 1:
 x = ser.readline()
 print(x)