Arduino Micro USB库
USBCore.cpp
#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \
{ , , 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs }
// DEVICE DESCRIPTOR
const DeviceDescriptor USB_DeviceDescriptor =
D_DEVICE(0x00,0x00,0x00,,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,ISERIAL,); const DeviceDescriptor USB_DeviceDescriptorB =
D_DEVICE(0xEF,0x02,0x01,,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,ISERIAL,);
|
表4、USB设备描述符的结构
|
||||
|
偏移量 |
域 |
大小 |
值 |
描述 |
|
0 |
bLength |
1 |
数字 |
此描述表的字节数 |
|
1 |
bDecriptorType |
1 |
常量 |
描述符的类型(此处应为0x01,即设备描述符) |
|
2 |
bcdUSB |
2 |
BCD码 |
此设备与描述表兼容的USB设备说明版本号(BCD 码) |
|
4 |
bDeviceClass |
1 |
类 |
设备类码: |
|
5 |
bDeviceSubClass |
1 |
子类 |
子类挖码 |
|
6 |
bDevicePortocol |
1 |
协议 |
协议码 |
|
7 |
bMaxPacketSize0 |
1 |
数字 |
端点0的最大包大小(仅8,16,32,64 |
|
8 |
idVendor |
2 |
ID |
厂商标志(由USB-IF组织赋值) |
|
10 |
idProduct |
2 |
ID |
产品标志(由厂商赋值) |
|
12 |
bcdDevice |
2 |
BCD 码 |
设备发行号(BCD 码) |
|
14 |
iManufacturer |
1 |
索引 |
描述厂商信息的字符串描述符的索引值。 |
|
15 |
iProduct |
1 |
索引 |
描述产品信息的字串描述符的索引值。 |
|
16 |
iSerialNumber |
1
|
索引 |
描述设备序列号信息的字串描述符的索引值。 |
|
17 |
bNumConfigurations |
1 |
数字 |
可能的配置描述符数目 |
引用来源:http://www.baiheee.com/Documents/090518/090518112619.htm
Arduino Micro USB库的更多相关文章
- 第四章 USB库介绍
4.1 USB库函数简介 Luminary Micro公司提供USB处理器的USB库函数,应用在Stellaris处理器上,为USB设备.USB主机.OTG开发提供USB协议框架和API函数,适用于多 ...
- Edison与Arduino通过USB对接通信
虽然Edison本身就装在一块Arduino扩展板上,但当要接的传感器太多了的时候一个扩展板也不够用了.因此需要再用一Arduino板扩展功能.而两者需要通信才能达到一个整体的效果,因此这里介绍如何用 ...
- 将手机micro USB口转换为USB type C连接器的低成本方案
我们知道USB IF提出的type C连接器的终极目标是统一各种USB 接口. 尽管USB 3.0在PC市场上发展的风生水起,但是由于USB 3.0对手机4G LTE的EMI和RFI干扰,导致市场上除 ...
- C#中的USB库 WinUSB
NET C#中的USB库WinUSB,的libusb - Win32和的libusb - 1.0.使用公共设备类,应用程序与所有未经修改的操作系统和驱动程序.大量的示例代码. http://sourc ...
- arduino中SCoop库的简单应用案例
转载:https://www.csdn.net/gather_27/MtTaggzsMDExMS1ibG9n.html arduino中SCoop库的简单应用案例首先这篇文章来在视频https://v ...
- arduino红外遥控库IRremote的IRsend类sendRaw函数溢出问题及其解决方法
最近在调试红外遥控格力空调,在论坛中学到了不少东西.参考: (1)<解决问题系列(4)——红外编码分析利器使用> (2)<315Mhz模块传输替代315Mhz遥控器> 调试环境 ...
- 关于Arduino 步进电机Stepper库的一些想法
官方提供了一些库,使Arduino入门起来更加快速,我们连原理都不用懂,就能通过函数控制终端.但是,这样也带来了很多的缺陷,比如,库函数的功能有限,有些无法实现.然后还有库函数因为要考虑其他的情况,你 ...
- 手把手教你看懂并理解Arduino PID控制库——引子
介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...
- usb库文件usb_desc.c分析
参考<圈圈教你玩USB> usb协议中使用的是小端结构,所以实际数据在传输时是低字节在先的. 设备描述符的实现: 已知每个设备都必须有且仅有一个设备描述符,它的结构在USB协议中有详细的定 ...
随机推荐
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程
问题:在服务器(操作系统为Windows server 2012)上安装SQL Server 2012的过程中,安装停留在下图所示的界面上,显示”正在启用操作系统功能NetFx3”随后出 ...
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool.impl.GenericObjectPool
原因:缺少commons-pool-X.jar包,到http://commons.apache.org/proper/commons-pool/download_pool.cgi下载后引入即可(地址可 ...
- ORA-01652 错误中报出的不是Temp表空间的情况。
ORA-01652 unable to extend temp segment by %s in tablespace %s 注意这里的temp segment并不一定就是指临时表空间, 也可能是其 ...
- LINUX下查看CPU使用率的命令[Z]
1.top 使用权限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示process的动态 d :改变显示的更新速度,或 ...
- 实现ModelDriver接口的功能
ModelDriver接口 来自com.opensymphony.xwork2.ModelDriven.是xwork-2.1.2-750.jar包的东西. 下面是源码: package com.ope ...
- BST的删除
#include<iostream> #include<math.h> #include<stdio.h> #include<stdlib.h> #in ...
- Linux学习之head命令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...
- Javascript 匀速运动——应用案例:网站常用功能分享到
网站上会经常用到Javascript 中的运动,这次与大家分享一下一些运动的基本应用 . 方便大家在开发中能够直接使用. 代码简单易懂,适用于初学者.最后会一步一步整理出一套自己的运动框架. 应用案例 ...
- Myeclipse普通工程转为Maven工程
在SVN导出的Maven项目,或以前不是用Maven管理的项目想要转换成Maven项目,但Myeclipse中右键Configure 找不到(eclipse可行)Convert to maven pr ...
- Delphi 的接口机制——接口操作的编译器实现过程(2)
接口对象的内存空间 假设我们定义了如下两个接口 IIntfA 和 IIntfB,其中 ProcA 和 ProcB 将实现为静态方法,而 VirtA 和 VirtB 将以虚方法实现: IIntfA = ...