pyserial readline需要太长时间

时间:2015-05-28 04:12:54

标签: python pyserial

我使用pyserial与我自己设计的微控制器设备进行通信时遇到了一个奇怪的问题。 我想要做的是向uC发送命令并接收并处理答案。 问题是,当我使用readline()时,它总是在超时时返回,而不是在它检测到" \ n"时。如果我将超时设置为cero,则readline()将返回空。

import serial
import time
ser=serial.Serial()
ser.baudrate=9600
ser.timeout=5
ser.port=0
ser.open()
while True :
    cmnd=raw_input(">: ")
    if cmnd == "quit":
        break
    ser.write(cmnd+"\n") 
    ck=time.clock()
    time.sleep(0.1)
    resp=ser.readline()
    ck=time.clock()-ck;
    print ">>"+resp
    print "tiempo: "+str(ck)

我确实找到了各种解决方案:如果我在调用readline()之前调用time.sleep(0.1),它会立即返回(+睡眠命令的0.1秒)。我可以忍受这个,但我想知道是否有更多的优雅"这个问题的解决方案。以下是代码在解决方法中的外观:

@GET("/?method=geo.getmetrotrackchart...")
void getNews(Callback<List<Track>> response);

我使用的是Windows 8.1和python 2.7。此外,我没有在真实硬件中测试它,而是使用一对虚拟串行端口创建的虚拟串行端口&#34;虚拟串行端口&#34;通过HDD软件并在Proteus ISIS VSM上模拟微控制器。

0 个答案:

没有答案