首页 > 解决方案 > 通过UART写入微控制器

问题描述

我是 python 新手。我正在使用 BeagleBone Black Wireless,上面安装了 Debian 9.5 以及 Python 3.5.3 微控制器通过 USB 连接到我的 BeagleBone。它以波特率 9600 读取串行线。我可以通过向微控制器发送启用“9----”来控制螺线管打开或关闭,其中 - 可以是 0 或 1。打开螺线管 1 和3 我必须发送“91010”来关闭所有这些我必须发送“90000”

我需要一个可以帮助我发送启用信号的 python 程序 (9----)

我使用 PYserial 文档中的这个作为我的参考:

import serial
ser = serial.Serial('/dev/ttyUSB0',9600, timeout = 0)  # open serial port
print(ser.name)         # check which port was really used
ser.write(str('91010'))     # write a string
line = ser.readline()
ser.close()             # close port

如果我运行这个程序,理论上,这会打开螺线管 1 和 3 吗?理想情况下,我想创建一个带有 4 个参数的函数,一个用于每个螺线管的状态,例如 pwr_solenoid(1,1,1,1) 之类的东西会通过串行发送“91111”以打开所有螺线管

标签: python-3.xpyserialuart

解决方案


您需要使用 byteshttps://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial.write 来编写数据'91010'.encode()

另外,如果串口有办法告诉你写操作是否成功,你也可以ser.read在写完之后使用https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial。读取并处理该输出


推荐阅读