PS2有线手柄的SPI协议

PS2有线手柄的SPI协议1.SPI模式与PS2采用的是SPIMODE3模式。并且使用低位在前方式收发数据。2.请求PS2按键数据想要向PS2请示数据要发送一个请求命令。请求命令如下所示:cmd_require[9]={0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//数据按先低位后高位发送3.接收PS按键数据在发送请求命令的…

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

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.net/138635.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MATLAB函数或变量无法识别[通俗易懂]

    MATLAB函数或变量无法识别[通俗易懂]1、设置路径,将函数存储的文件夹放在可搜索路径下2、函数文件名与函数名不同导致,此时使用的是函数文件名,而路径中没有改函数文件名

    2022年7月17日
    39
  • 解析PDB文件

    解析PDB文件参考vs的安装目录中的DIA2Dump工程C:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\Enterprise\DIASDK\Samples\DIA2Dump

    2022年5月31日
    66
  • ${sessionScope.user}的使用方法

    EL 全名为ExpressionLanguageEL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构:${sessionScope.user.sex}所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session的范围中,取得用户的性别。假若依照之前JSPScriptlet的写法如下:Useruser=(Us

    2022年4月4日
    52
  • 【redis】一致性哈希算法

    【redis】一致性哈希算法前言这周复习redis,被集群和分布式搞得头大,也接触到一致性哈希算法,因此博主进行了一定得学习,故,写下这篇文章。一、普通哈希算法普通得哈希算法是对服务器得数量进行一定得取模预算得出,常见得公式如下:index=hash(key)%NN就是服务器得数量。我们可以想象到,如果服务器数量改变,那么index也会进行改变。例如:一台服务器宕机,服务里器的数据暂时丢失(系统会进行一定的备份,用户发送的请求经过哈希运算后,因为N的改变,会访问其他的服务器,但是该台服务器还没有拷贝过来宕机的数

    2022年7月27日
    5
  • DirectShow 简介「建议收藏」

    DirectShow 简介「建议收藏」一、DirectShow简介DirectShow(简称DShow)是一个Windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、

    2022年7月3日
    22
  • 冒泡排序深入具体解释

    冒泡排序深入具体解释

    2022年1月26日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号