0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HID设备例程

RTThread物联网操作系统 来源:21ic论坛 作者:21ic论坛 2022-06-22 10:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引入

极海官网上有F407系列的USB库,其名称为APM32F4xx_OTG_SDK,我下载的是V1.1版本。它里面除了USB的驱动外,还包含了主机和设备的例程,例程有三类:鼠标、虚拟串口和U盘。我给大家分享一下我使用的过程中的一些经验。本次主要讲HID设备例程,即鼠标。

我使用的硬件是极海的APM32F407IG MINI Board,它提供了一个全速的USB口(Type B)。打开Device_Examples目录中的HID例程,成功编译下载后,将USB线接上板子,电脑的设备管理器就出现下图所示的设备:

11a5baa6-f158-11ec-ba43-dac502259ad0.png

当出现了新的鼠标设备,那就说明这个例程的枚举是没问题的。在例程中,鼠标的左右移动使用的是KEY1和KEY2控制。此外还有PC8和PC9两个IO能够控制光标的上下移动。当鼠标能够自由控制的时候,说明此例程已经正常运行了。

参数配置

一、工程不同目标的选择

如下图所示,一个Keil工程中共有三个目标,USBD_HID_FS为全速,使用的引脚是PA11和PA12;USBD_HID_HS1为高速,使用的是ULPI接口,引脚配置的很多,因为要外接高速PHY;USBD_HID_HS2为高速,因为内嵌了高速PHY,所以通信引脚主要为PB14和PB15。我之前用它的时候,是直接从PB14和PB15引脚分别外接个0欧姆电阻,然后直接连USB口就可以用了,不过需要保证接线的质量。

MINI板上只有全速,所以这里我主要演示的也是全速。

11be4b2a-f158-11ec-ba43-dac502259ad0.png

二、描述符配置

一般来说,如果只是想控制鼠标的话,例程的描述符可以不作修改。下面简单介绍一下几个描述符的修改方法。

如果想调整设备版本号或者厂商ID和产品ID,可以对设备描述符进行修改,具体方法如下图:

11cf3b74-f158-11ec-ba43-dac502259ad0.png

描述符中,内容最多的当属配置描述符了,它还包含接口描述符、端点描述符等信息,具体用法如下图:

11f47678-f158-11ec-ba43-dac502259ad0.png

121cc5ba-f158-11ec-ba43-dac502259ad0.png

122defa2-f158-11ec-ba43-dac502259ad0.png

123d2396-f158-11ec-ba43-dac502259ad0.png

若想修改字符串表达的信息,可以修改对于的字符串描述符,比如产品字符串描述符:

124e7bfa-f158-11ec-ba43-dac502259ad0.png

其他的比如报告描述符,因为篇幅所以不讲了,视情况再决定是否开一篇专门讲。

三、我们拿到例程之后,该怎么用?

例程是用来做演示的,主要是让人知道这个驱动该怎么用,整个SDK最重要的应该是驱动。我们需要理解好例程中哪些内容是必须的,哪些是可以根据自己需要而修改或者删去的。比如下图就是例程的main函数,除了中断之外的运行内容都在这里了。

12689634-f158-11ec-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    8373

    浏览量

    281770
  • HID
    HID
    +关注

    关注

    2

    文章

    137

    浏览量

    48651

原文标题:APM32芯得 EP.01 | USB_OTG_SDK的HID设备例程

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用nRF52840芯片的USB Host 功能参考例程

    ) : 示例位置:examples/peripheral/usb/host/ 常见示例名称可能为 usb_host_hid(针对 HID 设备,如键盘、鼠标)、usb_host_cdc(针对 CDC
    发表于 10-31 12:47

    如何对CYW20829设备进行HID测试?

    我想通过连接两个 CYW20829 套件来进行 HID over ISOC 测试。 能否向我提供有关如何执行此操作的相关指南或说明?
    发表于 07-07 08:28

    如何通过 CYW89820 使用 HID 主机角色?

    最近,我们将使用 CYW89820 设计 HID 主机角色。 但是我们找不到示例应用程序,也无法在文档中找到 HID Host API。 请让我知道如何通过 CYW89820 使用 HID 主机角色。
    发表于 07-01 08:30

    CYW920721M2EVK-02与cybt413061模块,HID控件在某些安卓13设备中不起作用怎么解决?

    我们正在使用带有cybt413061模块的 CYW920721M2EVK-02 ,HID控件在三星Android 13和GooglePixel Android 13设备中不起作用。 然而,出于测试
    发表于 07-01 06:00

    CYBT-253059-EVAL上的BR/EDR HID连接提示驱动程序错误(代码 10)怎么解决?

    成功将我的 EVAL-Board(#CYBT-253059-EVAL)通过 GATT 上的 HID 连接到 PC 后,我现在也尝试使用 BR/EDR HID。 该设备在计算机上被识别并正在连接,但不
    发表于 06-26 08:06

    hid usb读取不到扩展按键的问题

    windows电脑外接了一个遥控器(标准hid键盘设备),这个遥控器上有四个按键,分别是上一页、下一页(这两按键是标准按键,跟普通键盘上的page up、page down按键一样,程序能正常接收
    发表于 05-20 20:22

    基于N32G457 USB HID驱动收发数据

    USB 设备中有一大类就是 HID 设备,即 Human Interface Devices,人机接口设备
    发表于 04-28 18:00 0次下载

    HID免驱升级例程,基于nodejs编写

    async function usbhid_main() {   // 打印所有参数   let path = args[0];   console.log('\n欢迎使用USB HID
    发表于 04-28 17:58 0次下载

    CherryUSB-HID设备实践 | 技术集结

    本文为大家带来CherryUSB-HID设备实践,以MCXA156为例。开发环境搭建请参考RT-Thread的快速入门,咱们就直入主题,折腾USB去。CherryUSB的移植适配据笔者理解
    的头像 发表于 04-27 17:46 1360次阅读
    CherryUSB-<b class='flag-5'>HID</b><b class='flag-5'>设备</b>实践 | 技术集结

    国民技术N32G45x USB免驱动通讯例程

    USB 设备中有一大类就是 HID 设备,无需用户自己开发驱动程序,对于一些数据量较少的场合(例如按键输入、LED 显示或一些小容量的芯片烧录器等),使用用户自定义 HID
    发表于 04-17 10:02

    使用STM32G431做HID Keyboard与CDC符合设备,为什么做不了?

    原先曾用STM32F4做过,没什么问题,现在按照相同的思路使用STM32G431来做,怎么都不成了,我相信写的代码没什么问题。 现在的情况是CDC能正常通讯,HID Keyboard能识别,但是有
    发表于 03-14 08:30

    用hal库通过usb做了一个hid复合设备,想问问怎么才能通过蓝牙来实现hid设备?

    新手刚刚接触stm32,想请教大佬, 最近用hal库通过usb做了一个hid复合设备,想问问怎么才能通过蓝牙来实现hid设备 我用cubemx直接就给我生成了很多初始化代码,是否也有类
    发表于 03-11 08:16

    使用官方评估板STM32H563ZI进行USB虚拟串口开发,下载后电脑提示USB设备无法识别,设备描述符请求失败怎么解决?

    使用官方评估板STM32H563ZI进行USB虚拟串口开发,找到官方例程:Ux_Device_HID_CDC_ACM,屏蔽掉HID相关的配置和初始化代码,下载后电脑提示USB设备无法识
    发表于 03-11 08:06

    请问Bluenrg-ms是否支持hid复合设备

    我在使用Bluenrg-ms做ble hid设备时,分别单独实现了键盘和鼠标的功能,但是当我像usb hid 设备一样在report map(也就是报告描述符)中同时加入用report
    发表于 03-11 06:54

    STM32 HID和CDC组合设备无法枚举成功是哪里出了问题?

    想用STM32F103C8T6最小系统板试验HID和CDC组合设备,单独的HID和CDC都能枚举成功,但是参考网上多篇大佬的组合设备的教程,应该是一步步照做了,但插到电脑后问题弹出无法
    发表于 03-10 07:27