电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
PS2无线遥控手柄与STM32单片机通信
分 享
扫描二维码分享
PS2无线遥控手柄与STM32单片机通信
无线遥控
STM32
嵌入式从0到1
关注
发布时间: 2020-12-03
丨
阅读: 4711
### PS2无线遥控手柄 接下来要做一个小车玩玩,在网上淘了一个PS2无线遥控手柄,用于控制小车的前进、后退等功能。 ![](https://img-blog.csdnimg.cn/20201202202931842.png) 实物图如下: ![](https://img-blog.csdnimg.cn/20201202203027903.png) 其中有两个PS2游戏摇杆,对应的驱动原理参见下文: [PS2游戏摇杆原理及控制实现](https://mp.weixin.qq.com/s/KZRd7A2jlJ-UNa9FqUZqjw) ### 接收器 与这个手柄配套的还有一个接收器,用于接收PS2无线遥控手柄发送过来的数据 ![](https://img-blog.csdnimg.cn/20201202203044818.png) 该接收器一共有六个引脚,分别定义如下: | **引脚** | **功能描述** | | --- | --- | | GND | 电源地 | | VCC | 接收器工作电源,电源范围3~5V | | DI/DAT | 信号流向:从手柄到主机,此信号是一个8bit的串行数据,同步传送于时钟的下降沿,即信号的读取在时钟由高变低的变化过程中完成。 | | DO/CMD | 信号流向:从主机到手柄,此信号和DI相对,信号是一个8bit的串行数据,同步传送于时钟的下降沿。 | | CS/SEL | 用于提供手柄触发信号。在通讯期间,处于低电平。 | | CLK | 时钟信号,由主机(STM32)发出,用于保持数据同步。 | **注意:** 1. 当接收器上的绿灯常亮时,证明手柄和接收器配对成功,可以正常进行数据通讯。如果手柄和接收器断开了,按手柄上的`START`键即可恢复配对; 2. 当手柄上的MODE指示灯没有点亮的时候,游戏摇杆四个方向输出按键键码值;当点击`MODE`按键后,手柄上的MODE指示灯变亮(红色),此时游戏摇杆四个方向输出AD值。 ### 硬件连接 接收器与STM32连接如下: ![](https://img-blog.csdnimg.cn/20201202203112325.png) | **接收器端** | **STM32端** | | :---: | :---: | | GND | GND | | VCC | 3V3 | | DI/DAT | PB12 | | DO/CMD | PB13 | | CS/SEL | PB14 | | CLK | PB15 | > **注:** 使用杜邦线直接与核心板相连即可,这里为了拍照查看方便,选用智能风扇的那个底板与接收器相连。 ### 程序移植 ![](https://img-blog.csdnimg.cn/20201202203125646.png) 因为这个手柄通讯协议在手册中写的不详细,咱们就不分析协议部分了,我将商家提供的驱动文件放到了咱们的工程目录中,具体位置如下所示: ![](https://img-blog.csdnimg.cn/20201202203137948.png) ### 添加驱动文件 #### 添加工程包含路径 ![](https://img-blog.csdnimg.cn/20201202203207430.png) #### 添加`pstwo.c`文件 ![](https://img-blog.csdnimg.cn/20201202203221364.png) #### 修改宏定义 ![](https://img-blog.csdnimg.cn/20201202203234133.png) #### 修改GPIO初始化代码 ![](https://img-blog.csdnimg.cn/20201202203244872.png) 上面的宏定义和GPIO的初始化代码要跟实际相连的GPIO一致。 `main.c`文件直接使用即可,不用修改了。 ### 结果展示 测试出了所有按键的键码值,留着备用: ![](https://img-blog.csdnimg.cn/20201202203301825.png) 只需要占用4个GPIO口即可实现16个按键的扩展,而且具有无线功能,作为小车的遥控器太适合了。 ### 资料获取 本实例使用的主芯片是:STM32F103RET6,开发环境为 Keil 5 。 本实例的完整工程及模块店家提供的资料,在本文留言区置顶消息处获得。 今天开始正式回归STM32,鸿蒙先告一段落,大家想要在小车上增添什么功能,在留言区留言给我,你留言,我来安排! ### 欢迎关注 程序员小哈带你玩转嵌入式,微信搜索:**嵌入式从0到1**,更多干货等着你。 也可以进入小哈哥的个人博客:[www.xiaohage.com](www.xiaohage.com) 获取更多内容。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
嵌入式从0到1
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交