Raspberry PI USB 到 RS232 适配器仅接收 Ctrl 字符

Raspberry PI USB to RS232 adapter Receiving Only Ctrl Chars

我正在使用 USB 转 RS232 电缆与纯 rs232 设备进行通信。 使用 pyserial lib a 在环回 tx -> rx 电缆引脚中获得此代码 运行。

正在设置端口:

def __init__ (self, baudrate,timeout,parity,stopbits,bytesize):
    try:
        #self.s = serial.Serial(port="'/dev/ttyUSB0'",baudrate=baudrate,timeout=timeout,parity=parity,stopbits=stopbits,bytesize=bytesize)
        #self.s = serial.Serial("/dev/ttyUSB0",9600)
        self.s=serial.Serial(
            "/dev/ttyUSB0",
            baudrate=9600,
            parity=serial.PARITY_NONE,
            stopbits=serial.STOPBITS_ONE,
            bytesize=serial.EIGHTBITS,
            writeTimeout = 0,
            timeout = 10,
            rtscts=False,
            dsrdtr=False,
            xonxoff=False)
    except:
        print ("Can't open Serial Port")
        traceback.print_exc(file=sys.stdout)

写入和读取:

def write(self,data):
    if self.s.isOpen():
        try:
            self.s.write(data)      
            self.s.flush()
        except:
            traceback.print_exc(file=sys.stdout)
            print "Error on writing"
    else:
        print "Port is closed"

def read(self):
    receivedData=[]
    if self.s.isOpen():
        try:
            while self.s.inWaiting()> 0:
                receivedData.append(self.s.read(1))
            return receivedData

        except:
            traceback.print_exc(file=sys.stdout) 
            print "Error on Reading"
    else:
        print "Port is closed"
        traceback.print_exc(file=sys.stdout) 

我发送了'Carlos'。

并收到['\x03', '\x01', '\x12', '\x0c', '\x0f', '\x13']

是^C^a^r^l^o^s的十六进制表示

我需要知道它为什么将字符转换为控制字符?

如果发送端仅使用 5 位,这就是您所期望的。

首先检查发送设备上的设置。
如果可能,请使用示波器或逻辑分析仪验证正在发送的位。
可能加密狗坏了。
也许系统的某些部分电源供应不足,最后 3 位未被正确检测到。

经过多次尝试,不知道如何解决这个问题,我买了新的 USB 到 RS232 电缆,它基于 Prolific PL2303 芯片组,现在工作正常。