从 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)
您想从体重秤设备获取输入。您应该按照以下步骤操作:
- 首先检查设备与电脑的连接是否正常(网线、USB口、电脑)。可以使用终端软件。
- 如果连接正常。现在让我们从以下代码开始:
port='COM8',
baudrate = 2400,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=None
)
while 1:
x = ser.readline()
print(x)
我有一个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)
您想从体重秤设备获取输入。您应该按照以下步骤操作:
- 首先检查设备与电脑的连接是否正常(网线、USB口、电脑)。可以使用终端软件。
- 如果连接正常。现在让我们从以下代码开始:
port='COM8',
baudrate = 2400,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=None
)
while 1:
x = ser.readline()
print(x)