我是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”以打开所有螺线管>
答案 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
,并处理该输出