python-3.x - 通过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”以打开所有螺线管
解决方案
您需要使用
bytes
https://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。读取并处理该输出
推荐阅读
- python - 如何在 Fabric 2 中等待 shell 脚本重启
- reactjs - 您如何为组件的每个实例赋予其独立变化的道具?
- node.js - Cannot render css for cesium viewer from local server
- amazon-web-services - Parse LiveQuery not receiving events AWS EB + Redis
- jenkins - 指向 Jenkins 使用另一个插件存储库
- python - 用 beautifulsoup 解析新行
- node.js - 在 Nodejs 应用程序中使用句柄栏时应用程序崩溃
- node.js - 如何从现有的一个 nodejs 终端打开另一个
- swift - 将同一框架链接到 CocoaPods 中的多个目标
- python-3.x - 如何使用 dask.distributed API 指定启动 Bokeh Web 界面的选项?