我对编程还比较陌生,所以请容忍我。我正在尝试与测量设备METEX m-4650CRhttps://sigrok.org/wiki/Voltcraft_M-4650CR通信,我使用的是windows7 64位操作系统。我只想将设备测量的数据读出到python过程中,并显示它并用它进行计算。在
此外,只要给计算机一个命令“M”,就可以请求它向计算机发送数据。然后它将14字节返回给计算机。在没有任何要测量的连接到它的情况下,它应该返回类似“DC 00.0000V CR”的值。我的名字是“终结者”。在
这是我的代码:import pyserial
import time
ser = serial.Serial(port='COM5', baudrate=1200,
bytesize=7, stopbits=2, timeout=1,
rtscts=False, dsrdtr=True)
time.sleep(1)
ser.write("M")
time.sleep(1)
bytestoread = ser.inWaiting()
print bytestoread
output = ''
output += ser.read(1000)
print 'output:' + str(output)
time.sleep(1)
ser.close()
我的问题是,我不能用pyserial正确地读取数据。我将命令“M”发送到METEX,在显示屏上显示“send”一小段时间,所以我想我的write命令可以正常工作。但是在那之后(它应该已经发送了数据),当我从ser.inWaitung得到的是'0L'或'1L',而ser.read命令什么也没有给出。在
我不认为这是硬件的问题,因为有了另一个叫做“serialwatcher”的程序,我可以正确地读出数据。它准确地给出了手册中描述的字符。在
我还尝试了下面的while循环,但有一个问题,大部分时间inWaiting == 0,因此它从不初始化循环。在
^{pr2}$
那么,我怎样才能正确地读出发送到串行端口的数据呢?提前谢谢。在