(1)測試工具設(shè)置透傳模式,使用python調(diào)用不生效
(2)python代碼如下:
import serial
import time
a = 0x04 # CH9329的A鍵對應(yīng)的鍵碼
b = 0x05 # CH9329的B鍵對應(yīng)的鍵碼
head = [0x57, 0xAB] # 幀頭
addr = [0x00]? ? ? ?# 地址碼
cmd = [0x02]? ? ? ? # 命令碼
length = [0x08]? ? ?# 后續(xù)數(shù)據(jù)長度
# 請根據(jù)實際情況修改串口號和波特率
ser = serial.Serial('COM5', 9600, timeout=1)
def send(key_code):
? ? data = []? ? ? ? ? ?# 后續(xù)數(shù)據(jù)
? ? # 填充數(shù)據(jù)部分,始終保持8個字節(jié)
? ? for i in range(8):
? ? ? ? if len(key_code) > i:
? ? ? ? ? ? data.append(key_code[i])
? ? ? ? ? ? continue
? ? ? ? data.append(0x00)
? ? # 計算累加和
? ? footer = [(sum(head) + sum(addr) + sum(cmd) + sum(length) + sum(data)) % 256]
? ? # 結(jié)合所有部分構(gòu)造完整的命令包
? ? command_packet = head + addr + cmd + length + data + footer
? ? ser.write(bytes(command_packet))? # 發(fā)送數(shù)據(jù)
? ? ser.flush()? # 確保數(shù)據(jù)被發(fā)送
send([a, b])? ? # 按下"AB"
time.sleep(0.5)
send([a])? ? ? ?# 彈起"B"
time.sleep(0.5)
send([])? ? ? ? # 彈起"A"