pySerial 从 MCU 读取十六进制值
pySerial reading hex value from MCU
我是 python 的新手,我正在使用 2.7 和 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 崩溃时
我只想读取传入的十六进制值
用这个解决了它:
print hex(int(a.encode('hex'), 16))
希望对你有用
现在我想了解为什么 pyserial 经常崩溃
编辑:升级到 python 3.x 解决了所有使用 pyserial 崩溃的问题
而且语法也变得更加清晰
in_bin = ser.read()
in_hex = hex(int.from_bytes(in_bin,byteorder='little'))
这种方式也有效:
in_hex = ser.read().hex()
我是 python 的新手,我正在使用 2.7 和 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 崩溃时 我只想读取传入的十六进制值
用这个解决了它:
print hex(int(a.encode('hex'), 16))
希望对你有用 现在我想了解为什么 pyserial 经常崩溃
编辑:升级到 python 3.x 解决了所有使用 pyserial 崩溃的问题 而且语法也变得更加清晰
in_bin = ser.read()
in_hex = hex(int.from_bytes(in_bin,byteorder='little'))
这种方式也有效:
in_hex = ser.read().hex()