我使用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上模拟微控制器。