Files
AdaptedScissor/test.py
2026-06-18 16:55:30 +08:00

67 lines
1.4 KiB
Python

from machine import UART, Pin
import time
CANDIDATES = [4, 12, 13, 14, 16, 17, 21, 22, 23, 25, 26, 27, 32, 33]
BAUDRATES = [921600]
HEADER = 0x55 # IMU WIT frame header
def test_uart(rx, tx, baud):
try:
uart = UART(
2,
baudrate=baud,
rx=Pin(rx),
tx=Pin(tx),
timeout=100,
rxbuf=1024
)
time.sleep(0.1)
start = time.ticks_ms()
samples = []
while time.ticks_diff(time.ticks_ms(), start) < 1000:
if uart.any():
data = uart.read()
if data:
samples.append(data)
uart.deinit()
# 合并所有数据
if samples:
merged = b''.join(samples)
print(f"\nRX={rx}, TX={tx}, BAUD={baud}")
print("RAW HEX:", merged[:80]) # 前80字节
print("HEX:", merged[:80].hex())
return merged
else:
return b""
except Exception as e:
return b""
print("=== UART PIN SCAN START ===")
best = (0, None, None, None)
for rx in CANDIDATES:
for tx in CANDIDATES:
if rx == tx:
continue
for baud in BAUDRATES:
c, t = test_uart(rx, tx, baud)
print(f"RX={rx}, TX={tx}, BAUD={baud} -> 0x55={c}, bytes={t}")
if c > best[0]:
best = (c, rx, tx, baud)
print("\n=== BEST MATCH ===")
print(best)