当前位置: 首页 > 科技观察

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

时间:2023-03-13 18:21:34 科技观察

PS2无线遥控器要做小车玩。在网上找了一个PS2无线遥控器,用来控制小车的前进后退功能。实物图如下:有两个PS2游戏摇杆,对应的驱动原理如下:接收器与此手柄匹配,有一个接收器,用于接收PS2无线遥控手柄发送的数据。总共有六个接收器。各管脚定义如下:管脚功能说明GND电源地VCC接收器供电,供电范围3~5VDI/DAT信号流向:从手柄到主机,该信号是一个8bit的串行数据,同步传输时钟的下降沿,即在时钟由高电平变为低电平期间完成信号的读取。DO/CMD信号流向:从主机到句柄,此信号与DI相反,信号为8位串行数据,在时钟下降沿同步传输。CS/SEL用于提供手柄触发信号。通信时为低电平。CLK时钟信号,由主机(STM32)发送,用于保持数据同步。注意:当接收器上的绿灯常亮时,证明手柄与接收器配对成功,可以正常进行数据通讯。若手柄与接收器断开连接,按手柄上的START键恢复配对;手柄上MODE指示灯不亮时,摇杆四个方向输出键码值;当按下MODE键时,手柄上的MODE指示灯变亮(红色),此时摇杆输出四个方向的AD值。硬件连接接收器与STM32连接如下:ReceiversideSTM32sideGNDGNDVCC3V3DI/DATPB12DO/CMDPB13CS/SELPB14CLKPB15》注:使用杜邦线直接连接核心板,这里是为了拍照方便,智能风扇的底板是连接接收器的商家提供的驱动文件在我们的工程目录下,具体位置如下:添加驱动文件,添加工程包含路径,添加pstwo.c文件,修改宏定义,修改GPIO初始化代码。以上宏definition和GPIO初始化代码要和实际连接的GPIO保持一致,直接使用main.c文件就可以了,不用修改,结果显示所有按键的按键代码值都已经经过测试,一个d预留备用:只需要占用4个GPIO口即可实现16个按键的扩展,并且具有无线功能。非常适合作为汽车遥控器是的。本文转载自微信公众号《嵌入从0到1》,可通过以下二维码关注。转载本文请联系嵌入式从0到1公众号。