Python(Spyder3,Win10)多次写入串行端口

Python(Spyder3,Win10)多次写入串行端口,python,Python,我试图通过串行端口与微控制器通信。 例如,我向微控制器写入7,然后读取一系列(47)数字,然后再次发送7,然后读取相同的数字。我可以继续这样下去。 我尝试过使用Matlab,我可以很好地完成我想从串口读写的东西。然而,当我使用Spyder 3时,在Win10下,我只能写和读一次。正如我提到的,若我写7,我可以得到47个数字回来,但在那个之后,当我发送7,我不能得到任何东西回来,我需要重新插入串行端口。我的代码如下所示。多谢各位 import serial import time """Cmd

我试图通过串行端口与微控制器通信。 例如,我向微控制器写入7,然后读取一系列(47)数字,然后再次发送7,然后读取相同的数字。我可以继续这样下去。 我尝试过使用Matlab,我可以很好地完成我想从串口读写的东西。然而,当我使用Spyder 3时,在Win10下,我只能写和读一次。正如我提到的,若我写7,我可以得到47个数字回来,但在那个之后,当我发送7,我不能得到任何东西回来,我需要重新插入串行端口。我的代码如下所示。多谢各位

import serial
import time

"""Cmd definition"""
cmd_readreg = [7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
regNo = 47

""" setup serial """
with serial.Serial() as ser:
#ser = serial.Serial()
    ser.port = 'COM8'
    ser.bandrate = 19200

""" open serial """
ser.open()
if ser.is_open:
    print ("Device connected.")
else: 
    print ("Check device connection.")

""" send read register cmd to serial, cmd = 7 """
ser.write(cmd_readreg)
time.sleep(.1)
#print (ser.BYTESIZES)

""" read from serial"""
if ser.readable():
    reg1 = ser.read(size=regNo)
    print (reg1)
else:
    print ("no readable data")

""" send read register cmd to serial, cmd = 7 """
ser.write(cmd_readreg)
time.sleep(.1)
#print (ser.BYTESIZES)

""" read from serial"""
if ser.readable():
    reg2 = ser.read(size=regNo)
    print (reg2)
else:
    print ("no readable data")

你能解决那个问题吗?我在使用Python3.6和Spyder4时遇到了同样的问题。您能解决这个问题吗?我在使用Python3.6和Spyder4时也遇到同样的问题。