py与UART设备的串行通信

时间:2019-05-23 15:35:13

标签: python pyserial

我正在对这样的设备进行编程: https://wiki.husarion.com/robocore:basics

我无法使用pySerial连接到串行端口。 serial.tools.list_ports命令说找不到端口。 我正在使用此代码尝试连接:

import serial
port = 'COM1'

ser = serial.Serial()
ser.port=port
ser.baudrate=9600
ser.open()
ser.write(b'q')
ser.close()

它会引发此异常:

Traceback (most recent call last):
  File "C:\Users\Mateusz\Desktop\serialpy.py", line 7, in <module>
    ser.open()
  File "C:\Python37\lib\site-packages\serial\serialwin32.py", line 62, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'COM1': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2)

我正在Windows 10上运行。

1 个答案:

答案 0 :(得分:0)

我在代码之前添加了它。它将尝试连接到多个端口(COM1-COM10),并选择找到的第一个端口。

import serial

serial_port = False

for k in range(1, 11):

    try:
        port = 'COM{:d}'.format(k)
        serial_port = serial.Serial(port, 9600)
        print(port, 'connected')
        break

    except serial.SerialException:
        print('SerialException')

if not serial_port:

    raise serial.SerialException('not found, but tried hard.')

serial_port.readline()