最近想用蓝牙游戏手柄操控一些东西,手柄是Blutooth 3.0的。连手机能连上,手机应该是4.1的吧。 现在想连接STM32.一种想法是找个蓝牙适配器和OTG转接线连上F4的USB Host,然后设法来枚举从而读取蓝牙报文并解析实现对底层设备的控制。另一种方法是用小钢炮上带的BlueNRG来按照GATT report的方式解析之后来实现对底层设备的控制。 第一个问题是:这两种方法能实现吗? 第二个问题是:如果都能实现,大家觉得那种更容易点。或者更可靠点 昨晚忽然发现手里的那款手柄还支持RFCOMM功能,说明树上说还支持SDP,但是介绍上说的是和Android手机实现这种功能。这是不是说我可以让手柄和蓝牙串口相连了呐? 我在手机上下载一个SPP串口的小工具(话说与非网又没有这类工具),将手柄设置成SPP模式。蓝牙串口工具设置成接受十六进制模式,结果就发现能够互传数据了。所以我怀疑能够让手柄和市面上的蓝牙串口工具互联了。哇哈哈,这样会不会太走运了。我这就去某宝搜索一下。 |
按键按下是这样的0xb8 0x47,释放是这样的0xf8 0x07
每个按键前后两个字节异或运算之后是0。或者说每一位相反。按下和释放是由高字节决定的。
摇杆是这样的0xff cmd val .cmd和val都是一个字节。
前者可以是0x11, 0x12, 0x13, 0x14后者是0x00到0xfe之间的数,中位是0x80。
有变化才发送,貌似摇杆不太灵敏,数据变化跳动很大,应该是软件处理的问题。
想问的问题是PSP和xbox的摇杆支持SDP吗,有人研究过吗