micropython-lib icon indicating copy to clipboard operation
micropython-lib copied to clipboard

"Why am I unable to read the keyboard input?"

Open maxwangwyf opened this issue 10 months ago • 0 comments

import aioble import asyncio import bluetooth

async def scan_bluetooth(): print("Starting BLE scan...") async with aioble.scan( duration_ms=10000, # 扫描 10 秒 interval_us=300000, # 间隔 300 毫秒 window_us=300000, # 窗口 300 毫秒 active=True # 主动请求额外数据 ) as scanner: async for result in scanner: name = result.name() or "Unknown" addr = result.device.addr_hex() rssi = result.rssi services = result.services()

        if "0d:f9:6d:6a:75:c9" in addr:
            print("找到此设备")
            print(result.services)
            return result.device
return None

async def main(): device = await scan_bluetooth() if not device: print("未找到设备") return

try:
    print(f"正在连接 {device.addr_hex()}...")
    connection = await device.connect(timeout_ms=2000)  # 设置连接超时
    print("连接成功",connection)


except asyncio.TimeoutError:
    print("连接超时")
except Exception as e:
    print(f"连接失败: {e}")
async with connection:
    try:
        hid_service=0x1812
        key_input=0x2A4D
        mouse_input=0x2A33
        
        ser=bluetooth.UUID(hid_service)
        char=bluetooth.UUID(key_input)
        hid_service = await connection.service(ser)
        print(hid_service)
        hid_characteristic = await hid_service.characteristic(char)
        print(hid_characteristic)
    except asyncio.TimeoutError:
        print("Timeout discovering services/characteristics")
        return
    while True:
            # 尝试读取特征的值
        data = await hid_characteristic.read()
        print("Received key input data:", data)

运行主程序

asyncio.run(main())

maxwangwyf avatar Mar 12 '25 10:03 maxwangwyf