|
|
|
介绍: |
编程手记 USB.C 该文件主要是USB 基础传输协议的实现,在它之下是硬件链路层,ISP1761的读写访问 数据的传送,在它之上是应用协议层,譬如SCSI 协议等。该文件起到了很好的承上启下的作 用,这里面主要运用到的是setup 传输。首先通过枚举,知道设备的类型和设备所具有的特 定信息,包括生产厂家,设备型号,传输端点,端点类型,端点容量等等,这都是后续工作所 必需的基本信息。 #include "usb.h" #include "ISP1761.h" #include "timer.h" #include "usb.inc" /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 函数名称 : DeviceEnum * 输入参数 : 无 * 输出参数 : FAIL 失败 * SUCCESS 成功 * 功能说明 : 设备枚举,这是进行usb 传输的第一步 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ int DeviceEnum( void ) { unsigned int i, j, k; unsigned char usCfgDescriptor[64], usDescriptor[64];/*声明描叙符buffer*/ unsigned char portstatus[4]; /*声明端口状态变量*/ sDevDesc sDev; /*设备描述符*/ sCfgDesc sCfg; /*配置描述符*/ sIntfDesc sIfc; /*接口描述符*/ sEPDesc sEnp[4]; /*端点描述符*/ i = 0; j = 0; DevReset: if( j++ == 10 ) return FAIL; HubAddr = 0; USBSPEED = HIGHSPEED; |
|
|
|
|
|
|
|