当前位置:首页 > 生活 >

做游戏手柄的方法(游戏神器制作手柄)

来源:原点资讯(www.yd166.com)时间:2024-11-28 05:44:19作者:YD166手机阅读>>

做游戏手柄的方法,游戏神器制作手柄(1)

第10章 USB主机如何识别设备

虽然游戏操纵杆已经能够正常工作,但是非常好学的你肯定很想知道:为什么开发板上的按键可以控制PC鼠标的移动方向呢?为什么在PC任意一个USB接口依次插入的鼠标、键盘或其他USB设备都能够被正确识别呢?这就是总线枚举(Bus Enumeration)的功劳。

什么是枚举呢?以公司招聘面试为例,面试官通常会根据面试者的简历提出一些问题,然后针对回复提出另一个有一定关联的问题,依次循环,继而达到全面考查面试者业务水平的目的,经过综合评估才能判断是否符合公司的录用标准。当面试者通过面试顺利入职公司后,相关部门通常会在管理系统中增加一条代表“面试者就职于该公司”的记录,同时分配一个工号。例如,“1”号通常就是意气风发的老板,“7259”号就是籍籍无名的你。

整个面试与入职过程就是一次完整的枚举过程。在面试的场景中,你就是USB设备,公司就是USB主机,而面试官则负责建立一套“是否符合公司录用标准”的判断流程。所以简单地说,枚举就是“识别”或“鉴别”的同义词,而员工的工号就相当于主机给设备分配的地址(一个USB主机最多可以扩展127个设备,而每个设备都会有一个唯一的地址),如图10.1所示。

做游戏手柄的方法,游戏神器制作手柄(2)

图10.1 面试与枚举

同样的道理,当USB设备连接到PC(主机)时,PC也需要询问一些关于它的信息,以确定到底是个什么东西。PC当然是不能说话的,它只会发送一些命令,USB设备必须对这些命令进行响应,否则枚举就会失败(问话你一声不吭,面试失败)。当然,USB设备必须进行正确响应,“乱弹琴”也会导致枚举失败(回答问题牛头不对马嘴,面试失败)。当然,即便枚举成功了,也不一定代表USB设备肯定能够正常工作(有些人面试时能说会道,但真正做起事来却完全不行,失败中的失败),就像每个人(USB设备)进出城门需要特定令牌一样,令牌本身代表着一定的特权,拿着它就能够自由进出城门(枚举成功了),但是令牌本身可能是抢来或骗来的,这个人本身并不具备享有该特权的合法资格,也就无法真正实施与该特权相当的事情(USB设备不能正常工作),只不过用来欺骗守城门人(枚举流程)而已。

概括来讲,如果我们要让自己的USB设备成功与主机传输数据,关键的两个步骤是必须进行的。其一,让USB设备遵循USB规范正确回应主机的命令,以成功完成枚举过程。其二,在枚举成功后,将数据按正确的格式进行传输。

有些人可能会想:怎么还要响应命令呢?粗看了一下貌似很复杂,玩不了,回家洗洗睡了!这里必须得打击你一下,USB底层的实现确实有点复杂,因为USB的简易性是以协议的复杂性为代价的。但幸运的是,通常厂商都会将底层的核心实现打包成了固件库,我们只要修改应用方面的一些数据即可。也就是说,如果只是使用USB传输数据,你没机会(也不需要)去修改底层那些复杂的源代码。

那到底需要修改什么地方才能成功完成总线枚举呢?其实道理跟工程师做项目一样!例如,当我们使用单片机编程来控制新的元器件时,首先需要了解元器件的基本原理,包括硬件电路的连接要求、通信时序、寄存器定义等。厂家为了方便用户使用,通常都会准备好相应的数据手册,它包含了用户应用该元器件的所有信息。

同样的道理,如果将你当成一台PC,当USB鼠标与某个USB接口相连时,你又是怎么知道它是鼠标,而不是键盘或其他设备呢?很明显,你(PC)也需要数据手册之类能够描述插入设备所有信息的媒介,对不对?USB规范中定义的描述符(Descriptor)就是这个目的。

描述符本身就是一些常量数据。例如,现在要定义一个员工的描述符,它应该包含姓名、性别、年龄、工号等信息,我们可以称这些信息为字段(Field),相应可供使用的结构体类似如清单10.1所示。

清单10.1 员工描述符结构体

做游戏手柄的方法,游戏神器制作手柄(3)

为了方便数据的传输,我们也可以统一使用无符号8位整型(uint8_t)数组来描述员工信息,只要约定好字符串与字段之间的对应关系即可,类似...

清单10.2 员工描述符数组

做游戏手柄的方法,游戏神器制作手柄(4)

首页 123下一页

栏目热文

素菜油的熬制(大油的熬制方法大厨)

素菜油的熬制(大油的熬制方法大厨)

秘制料油是一种通过多种香料和调味品熬制而成的油,广泛用于炒菜、凉拌、调馅等烹饪过程中,以提升菜品的香味。以下是详细的配方...

2024-11-28 05:25:59查看全文 >>

椰汁马蹄千层糕400克(椰汁千层糕700g马蹄粉)

椰汁马蹄千层糕400克(椰汁千层糕700g马蹄粉)

== 材料清单==马蹄粉: 250克椰浆 : 400克红糖 : 200克白糖 : 60克纯牛奶: 250克清水 : 65...

2024-11-28 04:57:01查看全文 >>

生日请客吃饭邀请短信(生日请客邀请函短信怎么写)

生日请客吃饭邀请短信(生日请客邀请函短信怎么写)

生日邀请函时间2019年1月12日地点乌鲁木齐—汉口Z294次列车车厢主题乌鲁木齐铁路公安局乌鲁木齐公安处乘警支队王哲同...

2024-11-28 04:56:15查看全文 >>

轻松简短的生日邀请(自己生日邀请通知简短)

轻松简短的生日邀请(自己生日邀请通知简短)

描述生日是一个特别的日子,不仅是庆祝生命的开始,更是一个表达关心与爱意的绝佳机会。在这个日子里,如果你的祝福只停留在简...

2024-11-28 05:27:08查看全文 >>

生日邀请简短短信大全(生日邀请简单短信)

生日邀请简短短信大全(生日邀请简单短信)

中国青年网北京4月11日电(记者 李华锡 通讯员 于美霞 战鑫杰)“天津师范大学祝小图生日快乐!”“华北水利水电大学祝小...

2024-11-28 05:28:13查看全文 >>

自制游戏手柄的教程(自己如何制作一个简易的游戏手柄)

自制游戏手柄的教程(自己如何制作一个简易的游戏手柄)

第9章 让游戏操纵杆正常工作起来 由于JoyStickMo...

2024-11-28 05:40:25查看全文 >>

怎样做游戏手柄(自己如何做一个游戏手柄)

怎样做游戏手柄(自己如何做一个游戏手柄)

不知道小伙伴们还记不记得,通哥之前有发布过一篇北通阿修罗3旋钮新功能的想法征集,发起征集活动的灵感来源正是来自于攻壳Ga...

2024-11-28 05:16:12查看全文 >>

手柄玩射击游戏太爽了(手柄玩射击类游戏怎么样)

手柄玩射击游戏太爽了(手柄玩射击类游戏怎么样)

一直以来,在FPS游戏领域,国内的手柄党和键鼠党的争论就从来没有停止过。早些年,玩家们几乎是清一色的认为,使用键鼠来玩F...

2024-11-28 05:28:07查看全文 >>

如何填写家长意见10字(家长意见怎么写简短20字)

如何填写家长意见10字(家长意见怎么写简短20字)

小学生手册家长意见评语篇1  1.自信的人,总能够战胜困难,战胜自己,取得一个又一个胜利;自满的人,总会被暂时的胜利冲昏...

2024-11-28 05:32:54查看全文 >>

刻字刻什么好简短(刻字刻哪四个字最好)

刻字刻什么好简短(刻字刻哪四个字最好)

前一段时间父亲过60岁生日,我们在乡下办了几桌酒席。没有到饭店里去,而是请了婶婶和堂姐过来帮忙,在自己家里烧。平时家里用...

2024-11-28 05:23:37查看全文 >>

文档排行