我试图通过串口与微控制器通信。 例如,我将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")
目前没有回答
相关问题 更多 >
编程相关推荐