python串口通信问题

如何在打印区输入要发送的数据 然后又读取到打印区回来 不会写读取部分 求指教 最好有代码


mport serial
from time import sleep

# 通过串口名和波特率创建串口实例
ser = serial.Serial('COM9', 115200)  # 这里的串口名和波特率需要根据实际情况进行修改


# 发送数据
def send(send_data):
    if(ser.isOpen()):
        ser.write(send_data.encode('utf-8'))#编码
        print("发送成功",send_data)
    else:
        print("发送失败!")

def read(read_read):
    while True:
        if ser.in_waiting > 0:  # 如果接收缓冲区有数据
            data = ser.read(ser.in_waiting).decode("utf-8")  # 读取接收缓冲区的所有数据,并使用decode函数将字节流转换为字符串
            if data != '':  # 如果读取的数据不为空
                return data


if __name__ == '__main__':
    while True:
        a=input("输入要发送的数据:")
        send(a)
        receive_data(a)
        print("接受到:",receive_data())
        sleep(0.5)

【以下回答由 GPT 生成】

我对控制串口通信的代码有一定的理解。通过使用serial模块,您可以创建一个串口实例并进行数据的发送和接收。

在代码中,send(send_data)函数用于发送数据,将输入的数据通过串口发送出去。read()函数用于读取串口接收缓冲区中的数据,并将其转换为字符串返回。

if __name__ == '__main__':这个条件语句下的循环中,您可以输入要发送的数据,并将其发送出去。然后通过调用read()函数来读取接收到的数据,并将其打印出来。

代码中的ser = serial.Serial('COM9', 115200)这行代码需要根据您的实际情况进行修改,将COM9替换为您自己的串口号,将115200替换为您自己的波特率。

在使用这段代码之前,请确保您已经安装了pyserial模块。可以使用以下命令来安装:

pip install pyserial

如果您有其他关于串口通信的问题或者需要进一步的帮助,请随时告诉我。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^