如何从串口读取数据?Python

Raf*_*Mir 4 python serial-port arduino pyserial

你好,请忍受我的基本问题,因为我是 python 新手。
我正在尝试从串行端口读取数据。基本上,串行端口是USB端口虚拟地转换为串行端口。我正在使用阿杜伊诺。
首先我尝试了这段代码:

while(True):
    ser=serial.Serial('COM6',9600)
    bytoread=ser.inWaiting()
    val=ser.read(bytoread)
Run Code Online (Sandbox Code Playgroud)

但这给了我错误。

Permission Error(13,Access is denied, none 5)
Run Code Online (Sandbox Code Playgroud)

但是当我将代码更改为

while(True):
    ser=serial.Serial()
    ser.baudrate=19600
    ser.port='COM6'
    ser
    ser.open()
    bytoread=ser.inWaiting()
    val=ser.read(bytoread)
Run Code Online (Sandbox Code Playgroud)

权限错误没有出现,但程序总是忙于连接端口。我等了很多分钟,但它一直没有进展。我在这里做错了什么?

Dad*_*dep 5

你可以这样做:

import serial
ser = serial.Serial('COM6', 9600, timeout=None)

while True:
    data = ser.readline()
Run Code Online (Sandbox Code Playgroud)

您不能放入循环ser = serial.Serial('COM5', 9600, timeout=None)while,因为它将永久(重新)创建连接......