您的位置:首页 > 其它

USB复合设备调试 STM32

2018-03-01 21:00 1321 查看


空间
STM32 USB复合设备调试过程,复合设备一般要用到IAD(接口关联描述符),但是我在网上下载的几个例程都没有用到IAD,最后发现如果USB复合设备只用到两个接口,即复合的两个功能(MSC & HID)各占用一个接口,这种情况是不需要用
IAD的。
我是这样做的:直接在ST提供的MSC例程上修改,在MSC的配置描述符后面添加一个interface(HID接口),接口描述符不熟悉,直接在网上拷贝一个成功的例程,这一步的问题不大,HID设备还需要一个报告描述符,这个比较复杂,但是为了简化应用,也直接拷贝一个成熟的报告描述符,这里面可以设置的东西很多,但是我们用的简单,针对数据输入与数据输出各建立一个报告。报告长度都设置为64字节。还以为ST没有提供复合设备的例程,其实ST公司在老版本的USB LIB 4.0版本里是有提供MSC+HID复合设备的,我知道这个信息的时候,已经在ST的 USB OTG新版本库中移植成功了MSC&HID复合设备,composite device其它我应该会提前半天调试成功的,有一个VID耽误了我好长时间,VID PID是USB厂家在USB ORG组织注册的唯一ID号,VID是厂家ID号,PID是产品ID号,USB主机系统通过PID还确认此设备是什么类型的USB设备,我移植的MSC例程是0x5710,我做复合设备的时候也没清楚还有这么一说,就没有改这个PID,所以我的HID设备一直没有识别出来,尽管我在配置描述符中也增加了HID的接口,一个偶然的机会我发现我的VID,PID与我移植的例程不一样,我改成例程的0X0606 0X5606之后马上就识别成功了,这时我才意识到VID PID的重要性,马上上网查VID PID的作用,原来如此!! 原来WINDOWS操作系统也懒省事,如果发现VID PID已经有注册了,直接按注册的产品类型来加载驱动,如果没有注册才去按“配置描述符”加载驱动,我把VIDPID都修改为0 0,果然WINDOWS也能识别出我的复合设备composite device
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: