使用 pyserial 将数据发送到串行 - 在 Razor 9DOF IMU 上工作

Posted

技术标签:

【中文标题】使用 pyserial 将数据发送到串行 - 在 Razor 9DOF IMU 上工作【英文标题】:Sending data to serial with pyserial - Work on Razor 9DOF IMU 【发布时间】:2013-12-01 19:33:11 【问题描述】:

我目前正在研究 IMU Razor 9DOF 我可以通过读取 /dev/ttyUSB0 从中读取数据。 (默认模式是 YPR = IMU 的角度) 我还可以通过 Arduino 的串行监视器向 IMU 发送 #ot#osrt 来更改接收到的数据。

所以我正在尝试在 Python3 中编写代码,以通过同一接口进行读取和更改模式(并且还使用 python3 处理数据)。 以下是我的问题:1. 我正在使用 pyserial 从端口读取数据。这是我的代码:

    from serial import *
    usb = Serial('/dev/ttyUSB0', 57600)
    while True:
       usb.readline()

    print()

当我尝试通过 python 控制台运行此代码时,它运行良好,但当我尝试从脚本 (python3 mycode.py) 运行时,它不起作用。 我不明白为什么。

2. 我尝试通过使用发送命令“#osrt”来更改模式

    usb.write(byte("#osrt", "utf8"))

但它只返回写入的数据长度而不改变模式。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

建议在使用readline 时设置超时。 readline 将等到收到\n

from serial import *
    usb = Serial('/dev/ttyUSB0', 57600)
    usb.timeout = 1
    while True:
       print(usb.readline()) # you need to print what you are reading in the script

【讨论】:

谢谢!我找到了第二个问题的解决方案:我没有阅读足够多的行来查看数据的变化。

以上是关于使用 pyserial 将数据发送到串行 - 在 Razor 9DOF IMU 上工作的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 WinXP 上使用 pyserial 打开串行端口 - >“拒绝访问”

使用 pyserial 识别给定 USB VID 和 PID 的 USB 到串行端口

如何使用 PySerial 与 micro:bit 建立串行通信?

PySerial:如何在串行线上发送 Ctrl-C 命令

如何将使用PySerial收集的串行数据导出到csv文件?

在 Windows 上使用 pyserial 将串行数据写入 Arduino