gpt4 book ai didi

python - 为什么 b'\x02' 与 Python 中的值 2 或 int(2) 不同?

转载 作者:行者123 更新时间:2023-12-01 08:01:31 25 4
gpt4 key购买 nike

我有一台 PC 将字节值 2 发送到 Raspberry Pi。

但我不明白为什么 Python 程序在收到值时不计算为 true。

如果我打印收到的值,它将写入 b'\x02' 作为输出。

import serial

def GetSerialData():
x = ser.inWaiting()
if x > 0:
received_data = ser.read(x)
print (received_data)
return x


ser = serial.Serial ("/dev/ttyAMA0", 9600)
try:
while True:
SData = GetSerialData ()
if ( SData == b'\x02'):
print ("Ok - value is 2")

except KeyboardInterrupt:
ser.close()

最佳答案

您的GetSerialData函数似乎并未实际返回串行数据。它打印串行数据,但之后您再也不会引用received_data,而是返回x,它似乎是一个表示响应的大小。

尝试返回 received_data,而不是返回 x。

def GetSerialData():
x = ser.inWaiting()
if x > 0:
return ser.read(x)
else:
return b"" #or whatever value is appropriate when no data has been sent yet

关于python - 为什么 b'\x02' 与 Python 中的值 2 或 int(2) 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55713024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com