引入
极海官网上有F407系列的USB库,其名称为APM32F4xx_OTG_SDK,我下载的是V1.1版本。它里面除了USB的驱动外,还包含了主机和设备的例程,例程有三类:鼠标、虚拟串口和U盘。我给大家分享一下我使用的过程中的一些经验。本次主要讲HID设备例程,即鼠标。
我使用的硬件是极海的APM32F407IG MINI Board,它提供了一个全速的USB口(Type B)。打开Device_Examples目录中的HID例程,成功编译下载后,将USB线接上板子,电脑的设备管理器就出现下图所示的设备:
当出现了新的鼠标设备,那就说明这个例程的枚举是没问题的。在例程中,鼠标的左右移动使用的是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板上只有全速,所以这里我主要演示的也是全速。
二、描述符配置
一般来说,如果只是想控制鼠标的话,例程的描述符可以不作修改。下面简单介绍一下几个描述符的修改方法。
如果想调整设备版本号或者厂商ID和产品ID,可以对设备描述符进行修改,具体方法如下图:
描述符中,内容最多的当属配置描述符了,它还包含接口描述符、端点描述符等信息,具体用法如下图:
若想修改字符串表达的信息,可以修改对于的字符串描述符,比如产品字符串描述符:
其他的比如报告描述符,因为篇幅所以不讲了,视情况再决定是否开一篇专门讲。
三、我们拿到例程之后,该怎么用?
例程是用来做演示的,主要是让人知道这个驱动该怎么用,整个SDK最重要的应该是驱动。我们需要理解好例程中哪些内容是必须的,哪些是可以根据自己需要而修改或者删去的。比如下图就是例程的main函数,除了中断之外的运行内容都在这里了。
审核编辑 :李倩
-
usb
+关注
关注
60文章
7896浏览量
264000 -
HID
+关注
关注
2文章
129浏览量
46565
原文标题:APM32芯得 EP.01 | USB_OTG_SDK的HID设备例程
文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论