# 调试小车,ubuntu版本代码 # 可以按格式发送、接受数据 import serial import time import struct import keyboard import sys import termios import tty class SerialPort: def __init__(self, port, baudrate=9600, timeout=1): self.port = port self.baudrate = baudrate self.timeout = timeout self.serial = None def open(self): try: self.serial = serial.Serial(self.port, self.baudrate, timeout=self.timeout) print(f"成功打开串口: {self.port}") except serial.SerialException as e: print(f"打开串口失败: {e}") self.serial = None def close(self): if self.serial and self.serial.is_open: self.serial.close() print("串口已关闭") def write(self, data): if self.serial and self.serial.is_open: if isinstance(data, str): data = data.encode() self.serial.write(data) def write_hex(self, data): if self.serial and self.serial.is_open: self.serial.write(data) def read(self, size=22): if self.serial and self.serial.is_open: data = self.serial.read(size) hex_data = ', '.join(f'0x{byte:02X}' for byte in data) print(f"接收数据: {hex_data}") return data return None def parse_serial_feedback(data): struct_format = '