2016-03-25 65 views
1

我想在我的電腦和Arduino之間用python(pyserial 3.0.1)進行串行速度測試。我通過USB與我的Ubuntu VM連接了Arduino Duemilanove(ATmega328)。該器件完全顯示出來,我通過阿爾杜伊諾IDE(1.6.7)用這個簡單的環回草圖閃蒸它:蟒蛇串行到arduino速度測試

void setup() { 
    Serial.begin(115200); 
} 

void loop() { 
    while(Serial.available()) { 
    Serial.write(Serial.read()); 
    } 
} 

我的Python程序看起來像這樣:

from __future__ import print_function 

import time 
import serial 

ser = serial.Serial(
    port='/dev/ttyUSB0', 
    baudrate=115200, 
    timeout=1 
) 

i = 0; 

#wait until bootloader finished 
time.sleep(2) 

try: 
    t0 = time.time() 
    while i < 1000: 
     ser.write(b'U') 
     ser.flush() 
     while ser.in_waiting <= 0: 
      pass 
     ret = ser.read(1) 
     if ret != 'U': 
      print("Error received: %s" % ret) 
     i += 1 
    t1 = time.time() 
except KeyboardInterrupt: 
    ser.close() 
    exit(1) 

ser.close() 

print("%.3f" % (t1-t0)) 

的問題是,它有時工作,有時python程序不會返回,我不得不Ctrl-C。如果發生這種情況,我看不到Arduino RX和TX LED閃爍。

有人知道爲什麼會發生這種情況嗎?

非常感謝您...... draufundrann

回答

0

好吧......我切換到我的「真實」(未VM)的Linux機器,它似乎工作那邊就好了。我會做更多的測試,最終我會解決這個問題。

編輯:所以我確認它有時在Ubuntu VM中工作,它始終與我的真正的Linux Mint機器一起工作。因爲我不需要使用虛擬機,我不在乎它爲什麼不真正工作(可能是一些虛擬機的東西),我會關閉這個問題。