【问题标题】:python serial to arduino speed testpython串口转arduino速度测试
【发布时间】:2016-03-26 01:13:50
【问题描述】:

我正在尝试使用 python (pyserial 3.0.1) 在我的计算机和 Arduino 之间进行串行速度测试。我通过 USB 将 Arduino Duemilanove (ATmega328) 与我的 Ubuntu VM 连接起来。该设备完美显示,我通过 arduino IDE (1.6.7) 用这个简单的环回草图将其闪现:

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

【问题讨论】:

    标签: python arduino pyserial loopback


    【解决方案1】:

    好的...我切换到我的“真实”(不是虚拟机)Linux 机器,它似乎在那里工作得很好。我会做更多的测试,最终我会关闭这个问题。

    编辑:所以我确认它有时可以在 Ubuntu VM 中运行,并且它始终可以在我真正的 Linux Mint 机器上运行。由于我不需要使用 VM,而且我不在乎它为什么不能真正工作(可能是一些磨损的 VM),所以我将关闭这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2022-09-13
      • 2018-04-24
      • 1970-01-01
      • 2017-11-19
      相关资源
      最近更新 更多