我收到一串1或2位数的十六进制值,并通过串行将其用空格分隔。我希望程序将这些十六进制值转换为相应的ASCII字符,并将其写入.txt文件中。我相信我遇到了错误,因为.decode(“ hex”)函数期望使用两位数的值,我已尝试在下面的代码中修复该值。
while ser.in_waiting>0:
if ser.in_waiting != space:
temp = ser.read()
if len(temp)<2:
temp = '0' + temp
print temp
asciiVal = temp.decode("hex")
myFile.write(asciiVal)
这不是完整的代码,而是与我得到的错误相关的区域。
我遇到以下错误:
>File "C:\Python27\lib\encodings\hex_codec.py", line 42, in hex_decode
>output = binascii.a2b_hex(input)
>TypeError: Non-hexadecimal digit found