1、安装 pyserial
库:
pip install pyserial
2、使用 pyserial
进行串口通信:
import serial
def hex_to_bytes(hex_str):
return bytes.fromhex(hex_str)
def bytes_to_hex(byte_data):
return byte_data.hex()
# 配置串口参数
port = 'COM1' # 串口端口(Windows)或 '/dev/ttyUSB0'(Linux)
baudrate = 9600 # 波特率
timeout = 1 # 超时时间(秒)
# 初始化串口
ser = serial.Serial(port, baudrate, timeout=timeout)
# 发送十六进制命令
hex_command = 'A1B2C3D4'
ser.write(hex_to_bytes(hex_command))
print(f"Sent: {hex_command}")
# 接收响应
response = ser.read(16) # 读取16字节响应
hex_response = bytes_to_hex(response)
print(f"Received (Hex): {hex_response}")
# 转换为字符串
try:
response_str_gbk = response.decode('gbk')
print(f"Received (GBK): {response_str_gbk}")
except UnicodeDecodeError as e:
print(f"GBK decoding error: {e}")
try:
response_str_utf8 = response.decode('utf-8')
print(f"Received (UTF-8): {response_str_utf8}")
except UnicodeDecodeError as e:
print(f"UTF-8 decoding error: {e}")
# 关闭串口
ser.close()