十六进制数据从串行端口发出的问题

时间:2014-04-04 10:41:35

标签: python-2.7 serial-port

我真的希望有人可以帮我解决这个问题,我已经做了3天了,现在让我疯了。

我有两个基于linux的设备通过串口连接,一个是嵌入式设备,另一个是pc型设备。我在PC设备上有一些python代码,目前成功读取嵌入式设备发送的消息(因此串口设置正确)。

但是我现在需要将命令发送回嵌入式设备,这就是我正在努力的事情,我在串行线上有一个数据点击,所以我可以看到正在发送/接收的数据。

当我发送字符串" \ x2a \ x00 \ x00 \ x00 \ x00 \ x00 \ x57 \ x78 \ xD6 \ x81 \ x00 \ x01 \ x00 \ x8D \ x54"在串行端口之外,在串行数据分接头上,我只看到" EF F7 FF FF"。

请参阅以下代码:

import serial

serialport = serial.Serial(port=self.device,
                                       baudrate=self.baudrate,
                                       bytesize=self.bytesize,
                                       parity=self.parity,
                                       stopbits=self.stopbits,
                                       timeout=0)

data = "\x2a\x00\x00\x00\x00\x00\x57\x78\xD6\x81\x00\x01\x00\x8D\x54"
serialport.write(data)
serialport.flushOutput()

1 个答案:

答案 0 :(得分:0)

现在已经解决,结果是客户忽略了几个问题告诉我,除非嵌入式设备处于工程模式,否则它将忽略命令。数据分接头的拨码开关设置不正确,所以我的代码没有任何问题。感谢Shane让我质疑硬件,而不是我的代码!