教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

基于STM32的USB程序开发笔记(5)

来源:网络收集 时间:2026-08-12
导读: http://www.hkaco.com 0x01, // bConfigurationValue: Configuration value 0x00, // iConfiguration: Index of string descriptor describing the configuration 0xA0, // bmAttributes: bus powered // bit 4...0

http://www.hkaco.com

0x01, // bConfigurationValue: Configuration value

0x00, // iConfiguration: Index of string descriptor describing the configuration

0xA0, // bmAttributes: bus powered // bit 4...0 : Reserved, set to 0

// bit 5 : Remote wakeup (1:yes) // bit 6 : Self power (1:yes) // bit 7 : Reserved, set to 1

0x32, // bMaxPower: this current is used for detecting Vbus = 100mA

// Descriptor of interface 0x09,

DESCRIPTOR_INTERFACE,

0x00, // bInterfaceNumber: Number of Interface 0x00, // bAlternateSetting: Alternate setting

0x02, // bNumEndpoints: Number of endpoints except EP0 0x00, // bInterfaceClass: 0x00, // bInterfaceSubClass: 0x00, // nInterfaceProtocol:

0x00, // iInterface: Index of string descriptor describing the interface

// Descriptor of endpoint1 OUT 0x07,

DESCRIPTOR_ENDPOINT,

0x01, // bEndpointAddress

// bit 3...0 : the endpoint number // bit 6...4 : reserved

// bit 7 : 0(OUT), 1(IN)

0x03, // bmAttributes

// bit 1...0 : Transfer type

// 00(CONTROL), 01(ISOCHRONOUS), 10(BULK), 11(INTERRUPT) // bit 3...2 : Synchronization type

// 00(No Synch), 01(Asynchronous), 10(Adaptive), 11(Synchronous) // bit 5...4 : Endpoint Usage type

// 00(data), 01(Feedback), 10(Implicit feedback data endpoint), 11(Reserved)

http://www.hkaco.com

// bit 7...6 : Reserved, must be zero

0x40, // packet size LSB 0x00, // packet size MSB

0x20, // polling interval time: 32ms

// Descriptor of endpoint2 IN 0x07,

DESCRIPTOR_ENDPOINT,

0x82, // bEndpointAddress

// bit 3...0 : the endpoint number // bit 6...4 : reserved

// bit 7 : 0(OUT), 1(IN)

0x03, // bmAttributes

// bit 1...0 : Transfer type

// 00(CONTROL), 01(ISOCHRONOUS), 10(BULK), 11(INTERRUPT) // bit 3...2 : Synchronization type

// 00(No Synch), 01(Asynchronous), 10(Adaptive), 11(Synchronous) // bit 5...4 : Endpoint Usage type // 00(data), 01(Feedback), 10(Implicit feedback data endpoint), 11(Reserved) // bit 7...6 : Reserved, must be zero

0x40, // packet size LSB 0x00, // packet size MSB

0x20 // polling interval time: 32ms };

字符串描述符:定义了与设备有关的一些信息,常见的为以下四种,如果有需要,同样可以定义自己的字符串描述符。

const unsigned char cbDescriptor_StringLangID[DESC_SIZE_STRING_LANGID] = {

DESC_SIZE_STRING_LANGID, // bLength

DESCRIPTOR_STRING, // bDescriptorType = String Descriptor

0x09, // LangID LSB:

0x04 // LangID MSB: 0x0409(U.S. English) };

const unsigned char cbDescriptor_StringVendor[DESC_SIZE_STRING_VENDOR] =

http://www.hkaco.com

{

DESC_SIZE_STRING_VENDOR, // bLength

DESCRIPTOR_STRING, // bDescriptorType = String Descriptor

// String: \

'L',0, 'a',0, 'B',0, 'i',0, 'X',0, 'i',0, 'a',0, 'o',0, 'X',0, 'i',0, 'a',0, 'o',0, 'X',0, 'i',0, 'n',0 };

const unsigned char cbDescriptor_StringProduct[DESC_SIZE_STRING_PRODUCT] = {

DESC_SIZE_STRING_PRODUCT, // bLength

DESCRIPTOR_STRING, // bDescriptorType = String Descriptor

// String: \

'S',0, 'T',0, 'M',0, '3',0, '2',0, ' ',0, 'e',0, 'z',0, 'U',0, 'S',0, 'B',0, '-',0, 'C',0, 'O',0, 'R',0, 'E',0, ' ',0, 'V',0, '1',0, '.',0, '0',0, '1',0 };

const unsigned char cbDescriptor_StringSerial[DESC_SIZE_STRING_SERIAL] = {

DESC_SIZE_STRING_SERIAL, // bLength

DESCRIPTOR_STRING, // bDescriptorType = String Descriptor

// String: \

'e',0, 'z',0, 'U',0, 'S',0, 'B',0, '-',0, 'C',0, 'O',0, 'R',0, 'E',0, ' ',0,

'D',0, 'e',0, 'm',0, 'o',0, ' ',0, '2',0, '0',0, '0',0, '8',0, '/',0, '1',0, '1',0, '/',0, '1',0, '8',0 };

了解这些描述符的用法以及作用,最好的方法的是编写自定义的USB上位机驱动以及应用程序,这样你可以深刻了解USB设备与主机间的数据交换方式以及实现手段,下篇将开始介绍USB上位机驱动以及应用程序的编写以及开发环境的建立,STM32 USB设备的固件程序如有什么疑问,请朋友们多花几分种时间留言、讨论,共同学习与进步。

第六篇:XP下USB驱动开发的初步准备工作

必须的先决条件:

1: XP DDK(Driver Development Kits),可从MS网站下载。(Windows 2000下请使用Windows 2000 DDK),具备后安装DDK,如果你觉得只需要利用DDK就可以开发驱动,那么接下来的内容完全可以不看,在这讨论的是利用DriverStudio的 DriverWinziard生成的驱动框架。因为纯粹利用DDK开发驱动将是项十分艰巨的工作,需要你了解太多的系统知识,开发全部基于C语言,而且底层驱动处理稍微不当,就容易让你系统直接挂了(WINDOWS著名的蓝屏)。DDK提

http://www.hkaco.com

供了一些驱动代码,有兴趣的朋友可以参考参考。

2: Compuware DriverStudio V3.2:Compuware出品,是进行驱动开发最常见的平台,他封装了大部分设备驱动所必须的基本框架,以C++形式生成VC6.0或者 VS2002、2003、2005工程,用户一般只需要对该工程进行一些修改就可以完成最终目的。

3:代码开发环境VC6.0,这个大家都知道

安装了 …… 此处隐藏:2330字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于STM32的USB程序开发笔记(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/454341.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)