通过UART写入微控制器

时间:2019-04-03 02:28:25

标签: python-3.x pyserial 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”以打开所有螺线管

1 个答案:

答案 0 :(得分:1)

您需要将数据写为bytes,例如  '91010'.encode()使用 https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial.write

如果串行端口可以告诉您写操作是否成功,则还可以在使用https://pyserial.readthedocs.io/en/latest/pyserial_api.html#serial.Serial.read进行写操作之后处理ser.read,并处理该输出