当前位置: 首页 > news >正文

商城网站开发价格高端大气公司名称

商城网站开发价格,高端大气公司名称,做视频网站适合用什么服务器,wordpress备案号格式我们的复合设备使用一个物理设备就可以完成多个功能。 使用复合设备同时完成USB键盘和鼠标功能,它的主要实现方式有两种, 第一个就是我们将多个设备描述符合并成一个,这个相对比较简单,我们只要根据相应的报告描述符处理数据就可…

 

      我们的复合设备使用一个物理设备就可以完成多个功能。

      使用复合设备同时完成USB键盘和鼠标功能,它的主要实现方式有两种,

第一个就是我们将多个设备描述符合并成一个,这个相对比较简单,我们只要根据相应的报告描述符处理数据就可以。

第二个就是使用多个接口来实现复合设备,每一个接口实现一个功能,这个做法比较复杂,能让我们更加深入的了解USB,所以这次我们使用这种做法来实现复合设备。

       我们的代码就使用STM32的官方例程,如下图:

02b4a430f6f44e6d83ddf3cacf2df578.png

我们会在这个官方例程游戏操作杆上进行修改,所有和USB键盘有关的项目都会使用“_KB”字符加以区分,没有的话就是鼠标的。Joystick_ReportDescriptor 这个报告描述符就是鼠标,Joystick_KB_ReportDescriptor这个报告描述符就是键盘。

第一步,我们将鼠标和键盘的报告描述符添加进去。

原来的如下图:

3a3d2231b33c495ba12a5f9007f4632d.png

现在增加鼠标和报告描述符:

aeaf11c94c2d40568a044e455af89111.png8a60e465f4964b70bea5fb437be64061.png

然后我们报告描述符的长度也要改一下

c9b3522e5aa14dc4a617a2e6572c6439.png

还要记得extern声明一下

42b4f70d32ee4e379e3dc3e15d2e9048.png

第二步,我们修改完报告描述符以后就是修改配置描述符,

首先就是 接口增加到两个,bNumInterfaces 的接口值修改成0x02,然后配置描述符的总长度从34增加到66 JOYSTICK_SIZ_CONFIG_DESC

a1a73d8818c84a5bb9a4ea5f4b5e5e35.png

然后还要增加一个接口描述符(HID描述符和端点描述符)端点1用给鼠标  端点2用给键盘

0cf02a818aaa455393f48fd9c21d3c63.png

第三步就是复合设备需要相应总线枚举,我们的主机首先要对设备进行复位,所以会进入Joystick_Reset函数中,加上键盘的端点2的初始化

1abca41d0803452fb94f3e942ca0e48c.png

第四步,我们的复合设备是两个接口,每个接口就是对应一个HID设备类,因此我们的主机必须对每个接口获取相应的HID描述符与报告描述符,那么怎么样提交这些描述符的数据呢?根据之前对控制传输的分析,设备必须在usb_prop.c源文件中预先定义ONE_DESCRIPTOR结构体变量对“需要提交的描述符数据数组”定位的那些变量,如下图:

c15ea53f19124256ad431e306ee06799.png

第五步就是把发送数据的一些应用层函数还有回调函数加上去。如下图都是要改的地方,我都截图框出来。

1b9977d8aa7e455aaa6d97bc1aaa33fa.png

73393746986441dfaa84afd0f6846065.png

da496c9ce2a94da9b98b4919d8d5c0fa.png

7cbf2ee23d6c426bba33704ab44eeaa4.png

90c7a3aed0104496b8a8d3910ef91b4f.png

901e961dd0a1429994669f0fae7f1ff3.png

4567e168dda74fc1a30b0be175a72b2b.png

主要就是按键 ,发送的应用层逻辑编写,还有按键的初始化,最后这个一定要全部再回顾一遍,特别是枚举 初始化 数据发送过程。然后其实这个项目还能扩展一下,后面有空我还会优化的,如果有朋友看到这里可以自己试试。

第一个就是可以自己做一个矩阵扫描

第二个就是实现全键无冲,我们现在是键盘最多只能发送六个数据,全键无冲就可以发送多个

第三个就是使用上位机发送数据下来控制MCU,可以使用下面这个软件模拟一下。

后面有时间我会把这三个拓展方向优化加进来,不过最近一个月都在搞USB也是乏味了hhhh,想换个口味了,准备下一个学习232,485,CAN总线吧。

b028162ea1d54d168ed5f06c83f73fef.png

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.15wanjia.com/news/168599.html

相关文章:

  • hao123网站难做吗个人可否建立网站
  • 企业网络管理 网站开发与运营wordpress 网页加载慢
  • 分享站wordpress主题宿迁网站建设方案
  • php网站开发技术课程前端开发是做网站的吗
  • 房屋设计网站有哪些wordpress如何关闭rss
  • 大学生网站建设方案企业如何网络推广
  • 做网站整理信息的表格国内电商平台怎么做
  • 明星粉丝网站怎么做php 手机网站 模板
  • 质感网站系统下载 锐狐个人养老保险缴费明细
  • 庄河做网站erp系统都有哪几家
  • 婚纱网站建设需求分析百度账号登录官网
  • 个人网站做哪种能赚钱郑州营销型网站制作
  • 医院诊所网站源码不备案怎么做网站
  • 常州网站建设培训网站开发需要学数学吗
  • 健康网站模板网站建设的面试要求
  • vs2013如何做网站珠海 电商 网站建设
  • 上海网站建设排名公司用友erp管理软件系统
  • 做公众好号的网站上海网站建设公司sky
  • 做网站涉及个人隐私wordpress注册表文件夹
  • 建站本线上建模培训班哪个好
  • 做网站给不给源代码wordpress开发找工作
  • 咸阳 网站建设商城页面
  • 河南省城乡建设厅网站模板网站 建设教材
  • wordpress主题网站可以绑定域名的免费网站
  • 门户网站cms企业展示型网站程序
  • 柳州专业网站优化seo优化关键词哪家好
  • 网站字体设计规范汕头网站建设公司
  • 土巴兔网站开发建设一个网站需要
  • 黄冈网站搭建推荐国产在线做a视频网站
  • 制作网站的设计难点南宁有本地租房做网站吗