所以我在Python上为我的秤写了一段代码,它通过一个RS232端口连接到我的计算机上。现在我用下面的代码来处理这个部分:
import serial
while True:
ser = serial.Serial('COM2', 9600, timeout = 1)
print(ser.name)
ser.write(b'w')
line = ser.readline()
print(line)
ser.close()
每当我以字节为单位向刻度发送“w”时,它就会发回值。看起来像这样:
^{pr2}$它首先打印com端口的名称,并在下一行打印接收到的数据。然而。我想将值(数字)隔离为int
我尝试使用:
line = ser.readline()[:-6]
int(line)
这将清除所有垃圾“kg\r\n”。只剩下数字了。但当然,Python不允许我将字节字符串更改为整数。这可能是一个愚蠢的初学者的问题,就像我的另外两个帖子一样,但请忍受我,我只编写了大约两个星期的代码。在
你猜你必须把一个串行二进制读入的字节转换成一个字符串,你可以进一步分析它。在这里应该使用
bytes.decode("ascii")
(看不到奇怪的字符)。在然后,转换为float,而不是int。另外,如果知道第一个字段是您的值,则使用
str.split
对更改更为可靠:结果是
0.0
相关问题 更多 >
编程相关推荐