我是python的新手,我正在使用2.7 with spyder
我有一个运行这个的anduino风格的电路板:
void setup() {
Serial1.begin(115200);
}
void loop() {
Serial1.write(0x80);
}
在我的笔记本电脑上,我无法读取传入的数据,也无法将其分配给变量:
# -*- coding: utf-8 -*-
import serial
print (serial.__version__)
#3.4
ser = serial.Serial(
port='/dev/ttyUSB1',
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout = None
#timeout = 1
)
while 1:
print ser.read()
a = ser.read()
print a
当我尝试将ser.read()分配给" a"时,我真的不明白我做错了什么。 spyder崩溃 我只是想读取传入的十六进制值
答案 0 :(得分:1)
解决了这个问题:
print hex(int(a.encode('hex'), 16))
我希望它可能有用 现在我想了解为什么pyserial经常崩溃
编辑:升级到python 3.x解决了所有与pyserial崩溃的问题 并且sintax变得更加清晰
in_bin = ser.read()
in_hex = hex(int.from_bytes(in_bin,byteorder='little'))
答案 1 :(得分:1)
这种方式也可以
in_hex = ser.read()。hex()