Python使用pySerial实现与BEA激光雷达LZR Raw串口通信

Python使用pySerial实现与BEA激光雷达LZR Raw串口通信

需要安装pySerial库
python -m pip install pyserial

# 通过‘串口转USB’连接BEA LZR Raw 产品和PC,配置相应的端口号和波特率。
# 运行程序后通过input box发送命令实现与传感器通讯。

import serial
import serial.tools.list_ports

Datalist= []
DataLength_FS= 824 # 一个rawdata数据包的长度

port_list = list(serial.tools.list_ports.comports())
#print(port_list)
 
if len(port_list) == 0:
    print("无可用串口!")
else:
    for i in range(0, len(port_list)):
        print(port_list[i])

'''-------------------------------------------------'''

while 1: # 循环监听端口

    cmd= str(input ('Please Enter Commond (HEX):')) # 接受命令输入
    Hex_str = bytes.fromhex(cmd) # 字符串转HEX

    # LZR Raw-U:
    # Configure mode: A5
    # Measurement mode: FC FD FE FF 03 00 51 C3 01 15 01
    # Red laser ON: FC FD FE FF 03 00 59 C3 01 1D 01

    # LZR Raw-F:
    # Single shot:  BE A0 12 34 02 10 00 02 00 00 00 5B C3 00 89 B1
    # Continuous data: BE A0 12 34 02 10 00 02 00 00 00 5B C3 01 50 21
    # GET_PARAMETERS: BE A0 12 34 02 0F 00 02 00 00 00 54 C3 2E 88

    with serial.Serial() as ser:
        ser.baudrate = 921600
        ser.port = 'COM3'
        ser.timeout= 3 
        ser.open()
        print("串口名称:",ser.port) # 获取到当前打开的串口名
        print("串口波特率:",ser.baudrate) # 获取波特率

        ser.write(Hex_str) # 通过.write向Sensor发送命令
        	
        Datalist.append(ser.read(DataLength_FS).hex()) # 通过.read从Sensor读取数据(并转HEXprint (Datalist)
             
        ser.close()   #关闭串口


你可能感兴趣的:(python,传感器,串口通信)