Python 如何使用PySerial从COM端口读写?
我已经安装了Python 3.6.1和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) 我从中
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