PS2无线遥控手柄与STM32单片机通信

PS2无线遥控手柄

接下来要做一个小车玩玩,在网上淘了一个PS2无线遥控手柄,用于控制小车的前进、后退等功能。

实物图如下:

接收器

与这个手柄配套的还有一个接收器,用于接收PS2无线遥控手柄发送过来的数据

该接收器一共有六个引脚,分别定义如下:

注意:

  1. 当接收器上的绿灯常亮时,证明手柄和接收器配对成功,可以正常进行数据通讯。如果手柄和接收器断开了,按手柄上的START键即可恢复配对;

  2. 当手柄上的MODE指示灯没有点亮的时候,游戏摇杆四个方向输出按键键码值;当点击MODE按键后,手柄上的MODE指示灯变亮(红色),此时游戏摇杆四个方向输出AD值。

硬件连接

接收器与STM32连接如下:

注: 使用杜邦线直接与核心板相连即可,这里为了拍照查看方便,选用智能风扇的那个底板与接收器相连。

程序移植

因为这个手柄通讯协议在手册中写的不详细,咱们就不分析协议部分了,我将商家提供的驱动文件放到了咱们的工程目录中,具体位置如下所示:

添加驱动文件

添加工程包含路径

添加pstwo.c文件

修改宏定义

修改GPIO初始化代码

上面的宏定义和GPIO的初始化代码要跟实际相连的GPIO一致。

main.c文件直接使用即可,不用修改了。

结果展示

测试出了所有按键的键码值,留着备用:

只需要占用4个GPIO口即可实现16个按键的扩展,而且具有无线功能,作为小车的遥控器太适合了。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 2
关注 56
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧