Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(ValueError)使用python读取串行端口响应_Python_Serial Port_Pyserial - Fatal编程技术网

(ValueError)使用python读取串行端口响应

(ValueError)使用python读取串行端口响应,python,serial-port,pyserial,Python,Serial Port,Pyserial,我正在尝试读取串行端口的响应。(我正在使用RFID模块)以下是我的代码: import serial ser = serial.Serial() ser.port = "/dev/ttyUSB0" ser.baudrate = 9600 ser.timeout = 3 ser.open() if ser.isOpen(): ser.write("\xFF\x01\x03\x10\x02\x02\x18") print("command written") while ser.is

我正在尝试读取串行端口的响应。(我正在使用RFID模块)以下是我的代码:

import serial
ser = serial.Serial()
ser.port = "/dev/ttyUSB0"
ser.baudrate = 9600
ser.timeout = 3
ser.open()
if ser.isOpen():
    ser.write("\xFF\x01\x03\x10\x02\x02\x18")
    print("command written")
while ser.isOpen():
    response = ser.read(5)
    print("trying to read")
    print(int(response,16))
起初,我直接使用打印(响应),得到的结果是:

trying to read
�#��
因此,我使用print(int(response,16))将响应转换为整数,现在我得到了错误:

Traceback (most recent call last):
  File "serialread.py", line 13, in <module>
    print(int(response,16))
ValueError: invalid literal for int() with base 16: '\x94#\xdb\xff'
回溯(最近一次呼叫最后一次):
文件“serialread.py”,第13行,在
打印(int(回复,16))
ValueError:基为16的int()的文本无效:'\x94\xdb\xff'

我该怎么办?我是python新手,不知道问题出在哪里。

您的字符串已经是十六进制文字:

>>> x = '\x94#\xdb\xff'
>>> x.encode('hex')
'9423dbff'
>>> int(x.encode('hex'),16)
2485378047L

隐马尔可夫模型。。好的,现在我可以打印2485378047了。但我不想以这种方式打印它。我想把它打印成94分贝等。我怎么做?感谢您的帮助。另外,现在我对代码做了必要的更改,我当前的问题是:尝试读取2485378047尝试读取回溯(最近一次调用):文件“serialread.py”,第15行,打印中(int(response,16))value错误:int()的文本无效对于base 16:“很抱歉向您发送我的初学者问题。您需要将
print(int(response,16))
更改为
print(response.encode('hex'))