实验十六:STM32平台-------PS2控制智能小车综合实验
一.PS2手柄介绍
PS2 由手柄与接收器两部分组成,手柄主要负责发送按键信息。接通电源并打开手柄开关时,手柄与接收器自动配对连接,在未配对成功的状态下,接收器绿灯闪烁,手柄上的灯也会闪烁,配对成功后,接收器上绿灯常亮,手柄上灯也常亮,这时可以按“MODE”键,选择手柄发送模式,
红灯模式:遥杆输出模拟值;
绿灯模式:遥杆对应上面四个按键,只有四个极限方向对应。
接收器和主机(单片机)相连,实现主机与手柄之间的通讯。
表1:接收器引脚输出
图 1.1 接收器
DI/DAT:信号流向,从手柄到主机,此信号是一个 8bit 的串行数据,同步传送于时钟
的下降沿。信号的读取在时钟由高到低的变化过程中完成。
DO/CMD:信号流向,从主机到手柄,此信号和 DI 相对,信号是一个 8bit 的串行数据,同步传送于时钟的下降沿。
NC:空端口;
GND:电源地;
VDD:接收器工作电源,电源范围 3~5V;
CS/SEL:用于提供手柄触发信号。在通讯期间,处于低电平;
CLK:时钟信号,由主机发出,用于保持数据同步;
NC:空端口;
ACK:从手柄到主机的应答信号。此信号在每个 8bits 数据发送的最后一个周期变低并且 CS 一直保持低电平,如果 CS 信号不变低,约 60 微秒 PS 主机会试另一个外设。在编程时未使用 ACK 端口。当主机想读手柄数据时,将会拉低 CS 线电平,并发出一个命令“0x01”;手柄会回复它的 ID“0x41=模拟绿灯,0x73=模拟红灯”;在手柄发送 ID 的同时,主机将传送 0x42,请求数据;随后手柄发送出 0x5A,告诉主机“数据来了”。
表 2:数据意义对照表
当有按键按下,对应位为“0”,其他位为“1”,例如当键“SELECT”被按下时,Data[3]=11111110B,
红灯模式时:左右摇杆发送模拟值,0x00~0xFF 之间,且摇杆按下的键值值 L3、R3 有效;
绿灯模式时:左右摇杆模拟值为无效,推到极限时,对应发送 UP、RIGHT、DOWN、LEFT、△、○、╳、□,按键 L3、R3 无效。
二.PS2接收器连接方式
图2-1 接收器引脚图
图2-3 STM32主板原理图
表2-1 接收器与主板引脚对接
接收器引脚 | 功能脚 | STM32 | |
1 | DI | PB14 | MOS |
2 | DO | PB15 | MIS |
4 | GND | GND | GND |
5 | VDD | VCC | VCC |
6 | CS | PA8 | CS |
7 | CLK | PB13 | SCK |
接收头与扩展板连接图示
三.手柄按键定义
注:右侧摇杆暂未定义
图3-1 手柄正面图及功能
图3-2 手柄侧面图及功能
模拟值对应XY坐标图:
四.程序代码:
详细程序代码见源文件。