从Python中的串行数据读取

2024-04-18 13:41:07 发布

您现在位置: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)

多谢各位


Tags: 端口代码importfalsereadportserialser
2条回答

如果您所连接的设备未写入10个字节,则您的读取呼叫将被阻止,直到它获取所有这些10个字节

通常,作为一名读者,你必须对设备说“嘿,我在这里,你能给我数据吗?”然后他们才会给你一些东西。此外,您还可以检查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)

相关问题 更多 >