大家好,今天小编来为大家解答PS2无线遥控器与STM32单片机连接这个问题,很多人还不知道,现在让我们一起来看看吧!
[[355426]]
PS2无线遥控手柄接下来想做一辆小车来玩,在网上买了一个PS2无线遥控手柄,用来控制小车的前进和后退功能。
实际图片如下:
有两个PS2游戏手柄。相应的驱动原理见下图:
接收器本控制器配有接收器,用于接收PS2 无线遥控控制器发送的数据。
接收器共有6个引脚,其定义如下:
引脚功能描述GND 电源地VCC 接收器工作电源,功率范围3~5 VDI/DAT 信号流向:从手柄到主机,该信号为8 位串行数据,下降沿同步发送时钟的变化,即信号的读取是在时钟从高电平到低电平的变化过程中完成的。 DO/CMD信号流向:从主机到手柄,该信号与DI相反。该信号为8位串行数据,在时钟下降沿同步传输。 CS/SEL用于提供手柄触发信号。通信时处于低电平。 CLK时钟信号由主机(STM32)发送,用于保持数据同步。注意:
当接收器上的绿灯常亮时,证明手柄与接收器配对成功,可以正常进行数据通信。如果手柄与接收器断开连接,请按手柄上的START按钮恢复配对;当手柄上的MODE指示灯不亮时,游戏摇杆输出四个方向的键码值;点击MODE按钮时,手柄上的MODE指示灯亮(红色),游戏摇杆向四个方向输出AD值。硬件连接接收器与STM32的连接如下:
接收器端STM32端GNDGNDVCC3V3DI/DATPB12DO/CMDPB13CS/SELPB14CLKPB15》注:使用杜邦线直接连接核心板。为了方便拍照和查看,智能风扇的底板与接收器连接。
程序移植
由于控制器通讯协议在手册中并没有详细说明,所以协议部分我们就不分析了。我把商家提供的驱动文件放到我们的项目目录下。具体位置如下:
添加驱动文件添加工程包含路径
添加pstwo.c文件
修改宏定义
修改GPIO初始化代码
上述宏定义和GPIO初始化代码必须与实际连接的GPIO一致。
main.c文件无需修改即可直接使用。
结果展示已经测试了所有按键的键码值并保留以备后用:
只需占用4个GPIO口即可实现16个按键的扩展,并且具有无线功能,非常适合作为汽车遥控器。
OK,本文到此结束,希望对大家有所帮助。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6735.html
用户评论
这个项目真是太酷了!想看视频演示一下效果。
有11位网友表示赞同!
我一直想自己尝试用STM32控制游戏,这下可以学习一下了。
有10位网友表示赞同!
PS2手柄改造还是挺有特色的,之前看过有人把键盘改成手柄。
有5位网友表示赞同!
蓝牙好像更便携一些,这个项目是不是可以用蓝牙适配器?
有10位网友表示赞同!
STM32上手难度比较大吗?我最近想学习嵌入式开发。
有10位网友表示赞同!
这篇文章对初学者友好吗?我还没接触过stm32。
有19位网友表示赞同!
有没有分享一下代码?我想自己试试这个项目。
有15位网友表示赞同!
可以控制哪些游戏呢?是不是只限于模拟器?
有13位网友表示赞同!
学习完这个项目之后,可以用PS2手柄操控其他设备吗?
有16位网友表示赞同!
这种方案的稳定性怎么样?会不会经常出现连接问题?
有20位网友表示赞同!
用哪种通信协议进行传输呢?了解一下技术细节。
有19位网友表示赞同!
STM32有哪些其他的应用场景?这个项目能让我开拓思路吗?
有9位网友表示赞同!
现在有一些专门的控制板可以更容易地连接手柄,有没有考虑过使用?
有17位网友表示赞同!
这个改造需要用到哪些工具呢?我想尝试一下。
有11位网友表示赞同!
PS2手柄的电路设计很复杂吗?我想要深入了解一下硬件部分。
有11位网友表示赞同!
学习stm32确实很难,这篇文章能提供一些编程技巧吗?
有10位网友表示赞同!
这个项目可以移植到其他平台吗?比如微讲
有7位网友表示赞同!
有没有类似的项目用其他品牌的控制手柄进行连接?
有7位网友表示赞同!
想要了解一下项目的开发过程和遇到的困难,分享下经验吧!
有10位网友表示赞同!