前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PS2有线手柄的SPI协议

PS2有线手柄的SPI协议

作者头像
全栈程序员站长
发布2022-08-23 15:02:27
1K0
发布2022-08-23 15:02:27
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

1.SPI模式

与PS2采用的是SPI MODE3模式。并且使用低位在前方式收发数据。

2.请求PS2按键数据

想要向PS2请示数据要发送一个请求命令。请求命令如下所示:

cmd_require[9]={0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; // 数据按先低位后高位发送

3.接收PS按键数据

在发送请求命令的同时,PS2会同步输出按键数据。如下为无按键按下时,求请命令和按键数据的对应关系:

cmd_require[9] = { 0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; // 向PS2请求键数据

data_key[9] = { 0x00,0x41,0x5A,0xFF,0xFF,0x00,0x00,0x00,0x00 }; // PS2同步输出的按键数据,第一字节为无效数据

注意:

data_key[]数组中的‘0x41’是一个标志字节,表示此数据中只包函单纯按键数据。应用程序可以通过此位来判断接收

到的数据是否包函摇杆数据。下面会讲怎么获取摇杆数据。

data_key[3]和data_key[4]这两个字节的每一位对应手柄上的一个按键。当相应按键被按下时,对应的位会被设置为0.

4.请求PS2摇杆数据

请求PS2摇杆数据和请求PS2按键数据时送的命令是一样的。请求命令如下所示:

cmd_require[9]={0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; // 请求按键和摇杆数据

当用户按下手柄上的‘ANALOG’按键,并且手柄上的LED灯点也亮了。这样用户再操作摇杆时就可以得到摇杆对应的数据

了。

5.接收PS2按键数据

在发送请求命令的同时,PS2会同步输出按键数据和摇杆数据。如下为无按键按下时,求请命令和按键数据的对应关系:

cmd_require[9] = { 0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; // 向PS2请求键数据

data_key[9] = { 0x00,0x73,0x5A,0xFF,0xFF,0x80,0x80,0x80,0x80 }; // PS2同步输出的按键数据,第一字节为无效数据

注意:

当data_key[1] = 0x73时,表示PS2返回的数据是按键+摇杆数据。data_key[]最后4字节应对手柄上的左、右两个摇杆的

数据。0x80表示摇杆处于中间位置,0x00-0xff代表了摇杆的具体位置。

参考资料:

http://www.billporter.info/2010/06/05/playstation-2-controller-arduino-library-v1-0/

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138635.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档