使用 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 到串行端口