阅读:1135回复:1
怎样把设备描述符转换成数组形式啊?
设备描述符一般定义成结构体,怎样把它转换成数组形式啊?
看看我下面转换的,对不对?是不是等价的? 比如我定义一个结构体描述符: DEVICE_DESCRIPTOR_STRUCT device_descriptor= //设备描述符 { sizeof(DEVICE_DESCRIPTOR_STRUCT), //设备描述符的字节数大小,这里是18字节 DEVICE_DESCRIPTOR, //设备描述符类型编号,设备描述符是01 0x1001, //USB版本号,这里是USB01.10,即USB1.1。由于51是大端模式,所以高低字节交换 0x00, //USB分配的设备类代码,0表示类型在接口描述符中定义 0x00, //USB分配的子类代码,上面一项为0时,本项也要设置为0 0x00, //USB分配的设备协议代码,上面一项为0时,本项也要设置为0 0x10, //端点0的最大包大小,这里为16字节 0x7104, //厂商编号,这个是需要跟USB组织申请的ID号,表示厂商代号。 0xf0ff, //该产品的编号,跟厂商编号一起配合使用,让主机注册该设备并加载相应的驱动程序 0x0100, //设备出厂编号 0x01, //设备厂商字符串的索引,在获取字符串描述符时,使用该索引号来识别不同的字符串 0x02, //描述产品字符串的索引,同上 0x03, //描述设备序列号字符串的索引,同上 0x01 //可能的配置数为1,即该设备只有一个配置 }; 转换成数组: UCHAR device_descriptor= //设备描述符 { sizeof(DEVICE_DESCRIPTOR_STRUCT), //设备描述符的字节数大小,这里是18字节 DEVICE_DESCRIPTOR, //设备描述符类型编号,设备描述符是01 0x10, 0x01, //USB版本号,这里是USB01.10,即USB1.1。由于51是大端模式,所以高低字节交换 0x00, //USB分配的设备类代码,0表示类型在接口描述符中定义 0x00, //USB分配的子类代码,上面一项为0时,本项也要设置为0 0x00, //USB分配的设备协议代码,上面一项为0时,本项也要设置为0 0x10, //端点0的最大包大小,这里为16字节 0x71, 0x04, //厂商编号,这个是需要跟USB组织申请的ID号,表示厂商代号。 0xf0, 0xff, //该产品的编号,跟厂商编号一起配合使用,让主机注册该设备并加载相应的驱动程序 0x01, 0x00, //设备出厂编号 0x01, //设备厂商字符串的索引,在获取字符串描述符时,使用该索引号来识别不同的字符串 0x02, //描述产品字符串的索引,同上 0x03, //描述设备序列号字符串的索引,同上 0x01 //可能的配置数为1,即该设备只有一个配置 }; |
|
沙发#
发布于:2007-12-31 09:58
dggjkjhk
|
|