Python Pyserial返回发送字符串
我正在编写一个脚本,与实验室中的测量设备接口。该设备发送和接收十六进制消息。但是,每次我发送消息时,read函数都会简单地返回我发送的消息(这不是我所期望的) 示例代码:Python Pyserial返回发送字符串,python,serial-port,pyserial,Python,Serial Port,Pyserial,我正在编写一个脚本,与实验室中的测量设备接口。该设备发送和接收十六进制消息。但是,每次我发送消息时,read函数都会简单地返回我发送的消息(这不是我所期望的) 示例代码: import serial, time ser = serial.Serial( '/dev/cu.usbserial', baudrate = 19200, bytesize = 8, timeout = 3, stopbits = serial.STOPBITS_ONE,
import serial, time
ser = serial.Serial(
'/dev/cu.usbserial',
baudrate = 19200,
bytesize = 8,
timeout = 3,
stopbits = serial.STOPBITS_ONE,
parity = serial.PARITY_NONE,
)
if(ser.isOpen() == False):
ser.open()
print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
message = "\x02\x17\x00\x9A\x00\x02\x00\x00\x00\x00\x00\x3A\xA6"
message = bytearray([0x01,0x17,0x00,0x9A,0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xA6])
for i in message:
print hex(i)
while 1 :
# get keyboard input
input = raw_input(">> ")
if input == 'exit':
ser.close()
exit()
else:
ser.write(message)
print message
chars = []
out = '>> '
time.sleep(3)
chars += ser.read(ser.inWaiting())
for i in chars:
print i.encode("hex")
打印到控制台:
01
17
00
9a
00
02
00
00
00
00
00
3a
a6
我想知道这是否是串行通信中的常见问题?i、 e.这种行为表明了一个特定问题。谢谢 这要视情况而定,因为在串行通信中,您可能有所谓的“本地回音”和“远程回音”,这两种东西都是可用的,本地回音只是为了查看您键入的内容,没有任何后果,因为发送到远程对等方的数据不会立即返回,但远程echo正在从远程设备返回数据-这有时用于验证数据是否正确发送pyserial的最小项,例如有-e标志