Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyserial返回发送字符串_Python_Serial Port_Pyserial - Fatal编程技术网

Python Pyserial返回发送字符串

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,

我正在编写一个脚本,与实验室中的测量设备接口。该设备发送和接收十六进制消息。但是,每次我发送消息时,read函数都会简单地返回我发送的消息(这不是我所期望的)

示例代码:

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标志