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