由于工作需要,通过rs232串口来连接一个超声波测距仪,通过应答的方式,发送数据然后读取数据从而得到值。厂家给了个定制版串口助手,直接输入串口参数然后打开串口,就能获取到超声波周边(左,中,右)的障碍物的距离(单位厘米)。但是呢,我需要用Python给串口传数据,这也好办,发送十六进制数据,网上那边看看这边找找,然后我就顺其自然地走进了个坑,Python的大坑.....
由于工作需要,通过rs232串口来连接一个超声波测距仪,通过应答的方式,发送数据然后读取数据从而得到值。厂家给了个定制版串口助手,直接输入串口参数然后打开串口,就能获取到超声波周边(左,中,右)的障碍物的距离(单位厘米)。但是呢,我需要用Python给串口传数据,这也好办,发送十六进制数据,网上那边看看这边找找,然后我就顺其自然地走进了个坑,Python的大坑.....
1. 按部就班
设备手册里写的读距离命令是这样的: 68,04,01,01,06 ,发送后结果数据以数据输出格式输出。
数据一个十个字节,输出格式为=>数据帧字头(1Byte)+数据长度(6Byte)+地址(1Byte)+数据(6Byte)+校验和(1Byte)。
可先用python3 -m serial.tools.list_ports 查看可用串口
import serial
import time
ser = serial.Serial(port='/dev/ttyUSB3',baudrate=9600)
# 由于发