我用的是STM32-arduino里的USB库。协议没有规定死,可以再添加需要的轴。
打开库目录里USBHID的头文件,找到第215行开始,这部分是数据的定义。
通过分析这个头文件,我们会发现,它为了实现那几个轴的功能,要把数据写到数据包里规定的指针位置。
比如插入4数据,在244行,这4个数据要用来存放轴数据。
插入数据操作的地址都是0X95
使用X轴,245行
定义完要用的轴以后的操作,第249行
如果轴不够用,再插入两个轴,第254行
按钮数据上传前先要插入数据位置,先插入32个数据(0X20)
在223行可以看到,又是0X95这个地址。
然后定义最小和最大按键编号,第225和226行
按钮编号可以是1到32(0X20)。
游戏手柄上的三角形、圆形、X行等按键是对应到按钮数字编号上的,按键映射规则是随意给的。