我在pySerial中挣扎。简言之......当在Python Shell中执行下面的代码的伟大工程......pySerial非常奇怪的行为...代码在shell中执行但在脚本中不执行
>>> import serial
>>> s=serial.Serial("COM5", 9600)
>>> while(1):
s.write("#")
s.readline()
制造低于输出在shell:
1L
'56.73\r\n'
1L
'56.73\r\n'
当同样的代码写在脚本会说“readSerial.py”脚本将不会传输触发串行设备传输数据的hashtag,或者不会收到回复的数据。
我正在使用pySerial 3,但注意到与2.7相同的行为。在Win10上使用Python 2.7.10 64位。但是在/ dev/ttyACM0上也注意到了Raspberry Pi上的这种行为。我真的很想解决这个问题。我不是那种在Python中经验丰富的人,所以这可能是一个疏忽。
检查硬件并进行双重检查。
感谢,
KK
谢谢,但我确实知道如何从蟒纹数据。这个问题真的与pySerial有关。这里是完整的代码,请不要在注释掉的代码中加入错误。这些无关紧要。
#from numpy import array
#import matplotlib.animation as animation
import time
import serial as s
#data = array([])
Arduino = s.Serial("COM5", 9600)
i = 0
while (1):
try:
Arduino.write("#")
time.sleep(.1)
inString = Arduino.readline()
data = float(inString)
print i, ":", data
i += 1
time.sleep(1)
except KeyboardInterrupt:
break
Arduino.close()
但是像这样说这是行不通的。据我可以告诉readline()函数不会返回。而且,通过设置tx超时来让它返回是没有任何意义的。添加到神秘的;当代码被调试时(即阶梯式低谷)它确实有效。
由于提前,
KK
我看不出该代码如何生成_any_ shell输出。它没有打印语句。 –
@John我认为他正在谈论Pi上的输出,这可能与COM5相连(我知道至少它是如何与Arduino一起工作的)。 @K你到目前为止尝试过什么?快速谷歌搜索显示了类似问题的很多结果,例如http://stackoverflow.com/questions/2301127/pyserial-app-runs-in-shell-by-not-py-script – whrrgarbl
即便如此,唯一的输出是's.write(“#”)',我不明白这是如何转化为预期的产出。 –