Python 使用pySerial与终端通信

Python 使用pySerial与终端通信,python,python-3.x,pyserial,serial-communication,Python,Python 3.x,Pyserial,Serial Communication,我有一个通过串行通信连接的终端,我想从它读取并向它写入一些我预先准备好的字符串数组中的命令 使用pySerial,我需要编写一个代码来读取带有停止条件的行,停止条件是从控制台等待用户输入,然后从数组中写入命令 我只是想澄清一下,这就像一个自动油灰,不,我不能通过ssh连接到终端,不,我不能嘘机器的终端,因为它不是pc 以下是我尝试过的: import serial Baud_Rate = 9600 Ser = serial.Serial('COM4', Baud_Rate) while Se

我有一个通过串行通信连接的终端,我想从它读取并向它写入一些我预先准备好的字符串数组中的命令

使用pySerial,我需要编写一个代码来读取带有停止条件的行,停止条件是从控制台等待用户输入,然后从数组中写入命令

我只是想澄清一下,这就像一个自动油灰,不,我不能通过ssh连接到终端,不,我不能嘘机器的终端,因为它不是pc

以下是我尝试过的:

import serial

Baud_Rate = 9600
Ser = serial.Serial('COM4', Baud_Rate)

while Ser.isOpen():
    input('Error: Ser is already open, please close it manually. if the port is 
closed, press enter\n')
    try:
        Ser.close()
    except serial.serialutil.PortNotOpenError:
        pass
Ser.open()

Serial_com = [] #a str array with the relevant commands

for i in range(len(Serial_com)):
    ter = Ser.readline()
    while ter != 0xaf:
        #print(str(ter))
        print(str(ter.decode('utf-8').rstrip('\r\n')))
        ter = Ser.readline()
    sleep(1)
    if i == 0:
        print('login: root')
        Ser.write(bytes("root", encoding='utf-8'))
    else:
        print('\n\n\n\n\nroot @ Ser: ~  # ' + str(Serial_com[i]))
        Ser.write(bytes(Serial_com[i], encoding='utf8'))
我意识到,一旦串行端口等待python代码(或用户)编写命令,它就会发送字符0xaf。这可能是巧合,但我还是把它作为终端读取的停止条件

代码可以从串行端口读取,但一旦需要写入串行端口,它将无法继续


我不能分享其余的内容,因为这对于一个项目来说是免费的

您尝试了哪些代码,看到了哪些结果?你能用终端模拟器连接到它吗?如果你在WIndows上,putty可以做串口。用我可以在这里共享的大部分代码更新了帖子。好的,你需要知道信号是什么,如果有。你有没有试过在没有等待“开始”信号的情况下,直接发出第一个命令?您确定连接是9600波特吗?这几天不是很快。如果
Str.readline()0xaf:
等待,直到它以该字符结束/