)
【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】喜欢玩游戏的朋友肯定对游戏手柄不陌生。特别是喜欢玩xbox、switch的朋友很多的游戏都是需要游戏手柄的参与。但是除了游戏之外有一些应用开发也是可可以通过游戏手柄来完成的。比如说有一些嵌入式设备按键还没有是配合好这个时候就可以通过上位机读取游戏手柄的信息借助于串口发给嵌入式手柄即可。1、购买支持xbox的游戏手柄一般在电商网站输入xbox即可。2、手柄接收器本身游戏手柄是单独一个设备而接收器是插在电脑上面的。如果两者配对没有问题那么接收器就会被windows识别成一个hid设备。而hid设备是免驱的这一点和cdc设备是一样的。也就是说电脑插入接收器之后我们在设备管理器-》人体学输入设备那边看到了新的节点这个时候就默认驱动ok了。手柄和接收器的通信模式很多一般选择2.4g模式即可不用选其他方式。3、编写代码编写代码的时候主要参考xinput这个库使用的是XInputGetState这个函数。当然不会写的话可以通过ai来写这也是可以的。#include Windows.h #include Xinput.h #include iostream #pragma comment(lib, xinput.lib) int main() { while (true) { XINPUT_STATE state; ZeroMemory(state, sizeof(XINPUT_STATE)); DWORD result XInputGetState(0, state); if (result ERROR_SUCCESS) { // stick SHORT lx state.Gamepad.sThumbLX; SHORT ly state.Gamepad.sThumbLY; SHORT rx state.Gamepad.sThumbRX; SHORT ry state.Gamepad.sThumbRY; // key WORD buttons state.Gamepad.wButtons; std::cout LX: lx LY: ly RX: rx RY: ry Buttons: buttons \n; } else { std::cout No controller connected \r; } Sleep(20); } return 0; }4、测试与验证通过代码可以看出来这是一个循环读取的工作。编译成功之后就可以开始运。比如说开始操作左边的摇杆、右边的摇杆按下对应的按钮看看有没有对应的输出。不管是摇杆还是按键将来这些输入信息都可以为我们所用的。注这类设备本质上都是usb hid设备所以如果mcu的usb有host功能其实就可以借助于hosthid识别的能力读取无线手柄的接收器数据从而可以达到远程遥控的目的。这一点wch系列的mcu产品很有优势。