Python 如何使用PySerial从COM端口读写?

Python 如何使用PySerial从COM端口读写?,python,pyserial,Python,Pyserial,我已经安装了Python 3.6.1和PySerial。我在试这个 我能够连接组件列表。我现在希望能够将数据发送到COM端口并接收回响应。我该怎么做?我不确定下一步尝试的命令 代码: import serial.tools.list_ports as port_list ports = list(port_list.comports()) for p in ports: print (p) 输出: COM7-丰富的USB到串行通信端口(COM7) COM1-通信端口(COM1) 我从中

我已经安装了Python 3.6.1和PySerial。我在试这个

我能够连接组件列表。我现在希望能够将数据发送到COM端口并接收回响应。我该怎么做?我不确定下一步尝试的命令

代码:

import serial.tools.list_ports as port_list
ports = list(port_list.comports())
for p in ports:
    print (p)
输出

COM7-丰富的USB到串行通信端口(COM7)

COM1-通信端口(COM1)

我从中看到,打开COM端口的方法如下:

导入序列号

我在Windows上运行,以下行出现错误:

ser=serial.serial('/dev/ttyUSB0')

这是因为“/dev/ttyUSB0”在Windows中没有意义。在Windows中我可以做什么?

可能是您想要的。我要看一下关于写作的文件。 在windows中,在不带/dev/tty/as的情况下使用COM1和COM2等,这适用于基于unix的系统。要读取,只需使用s.read()等待数据;要写入,则使用s.write()


如果发送的是整数值,您可能需要解码以获取整数值。

在Windows上,您需要通过运行

pip安装pyserial

那么你的代码就是

import serial
import time

serialPort = serial.Serial(
    port="COM4", baudrate=9600, bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE
)
serialString = ""  # Used to hold data coming over UART
while 1:
    # Wait until there is data waiting in the serial buffer
    if serialPort.in_waiting > 0:

        # Read data out of the buffer until a carraige return / new line is found
        serialString = serialPort.readline()

        # Print the contents of the serial data
        try:
            print(serialString.decode("Ascii"))
        except:
            pass
要将数据写入端口,请使用以下方法

serialPort.write(您好\r\n”)


注意:b“”表示您正在发送字节

是的,我很傻。应该研究一下。如果你回答的话,我可以把你的答案标记为答案。当你至少尝试过这样做的时候,也可以这样请求帮助:)你能保持与之前的链接共享吗?这在我的答案中
import serial

s = serial.Serial('COM7')
res = s.read()
print(res)
import serial
import time

serialPort = serial.Serial(
    port="COM4", baudrate=9600, bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE
)
serialString = ""  # Used to hold data coming over UART
while 1:
    # Wait until there is data waiting in the serial buffer
    if serialPort.in_waiting > 0:

        # Read data out of the buffer until a carraige return / new line is found
        serialString = serialPort.readline()

        # Print the contents of the serial data
        try:
            print(serialString.decode("Ascii"))
        except:
            pass