Python(Spyder3,Win10)不止一次写入串口

时间:2017-08-13 19:12:47

标签: 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")

0 个答案:

没有答案