Pyserial 阅读不尊重叮咬的数量
Pyserial reading does not respect the number of bites
我正在尝试读取串口。
问题是脚本有效,但读取命令似乎不遵守参数(读取 2 个字节)。
脚本(return函数"readPosValue"中的ans变量)的典型输出是:
print(currTime,readPosValue(serPort))
(1517909247.176, '0b11000010110111001110011')
他们显然超过了16位。
使用的脚本:
import time
import struct
import binascii
import serial
ser = serial.Serial(
port='COM2',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
def inficonAcquisition(serPort):
try:
while True:
position = readPosValue(serPort)
currTime = time.time()
print(currTime,position)
except KeyboardInterrupt:
serPort.close()
exit()
def readPosValue(serPort):
ans = ''
while serPort.inWaiting() > 0:
ans += serPort.read(2)
return bin(int(binascii.hexlify('ans'), 16))
问题出在 inWaiting() 函数中。
这种读数不需要它。
我正在尝试读取串口。 问题是脚本有效,但读取命令似乎不遵守参数(读取 2 个字节)。
脚本(return函数"readPosValue"中的ans变量)的典型输出是:
print(currTime,readPosValue(serPort))
(1517909247.176, '0b11000010110111001110011')
他们显然超过了16位。 使用的脚本:
import time
import struct
import binascii
import serial
ser = serial.Serial(
port='COM2',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
def inficonAcquisition(serPort):
try:
while True:
position = readPosValue(serPort)
currTime = time.time()
print(currTime,position)
except KeyboardInterrupt:
serPort.close()
exit()
def readPosValue(serPort):
ans = ''
while serPort.inWaiting() > 0:
ans += serPort.read(2)
return bin(int(binascii.hexlify('ans'), 16))
问题出在 inWaiting() 函数中。 这种读数不需要它。