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

2024-04-29 11:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过串口与微控制器通信。 例如,我将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")

Tags: importcmdreadiftimeserial数字open