如何修改USBCDC成为自定义USBBulk批量传输设备(精) 联系客服

发布时间 : 星期二 文章如何修改USBCDC成为自定义USBBulk批量传输设备(精)更新完毕开始阅读04fcd21e2f3f5727a5e9856a561252d381eb204c

'A',0, 'C',0, 'T',0, 'I',0, 'O',0, 'N',0 };

4. 修改 USB 处理过程

由于自定义的 USB 设备类没有 CDC 的 Set Control Line State处理过程, 修改 virtual_com.c文件中 start_transactions的定义,默认使能传输,或者删除与 start_transactions变量相关 的判断代码。

static bool start_transactions = TRUE; void TestApp_Init(void { ………

/* Initialize the USB interface */

g_app_handle = USB_Class_CDC_Init(&cdc_config; g_recv_size = 0; g_send_size= 0;

while (TRUE {

/* call the periodic task function */ USB_CDC_Periodic_Task(;

/*check whether enumeration is complete or not */ if((start_app==TRUE && (start_transactions==TRUE {

Virtual_Com_App(; }

}/* Endwhile */ }

5. 调用 LibUSB-Win32进行 USB 通信

LibUSB-Win32是一个用于 Windows 操作系统(Win98SE 、 WinME 、 Win2k 和 WinXP 上的 通用 USB 设备驱动程序。该驱动程序允许使用者在不写任何一行核心驱动程序代码的情况 下,可以访问 Windows 系统上的任意一个 USB 设备。该驱动程序具有以下特点:

?能够与任意一个已安装的 USB 设备进行通信 ?可被用作自己开发的 USB 设备的驱动程序 ?支持批量和中断传输

?支持 USB 规范中定义的所有标准设备请求

?支持 USB 设备制造商的自定义请求

LibUsb-Win32是由 http://libusb-win32.sourceforge.net发布的,遵守 GNU Lesser General Public License (LGPL 和 GNU General Public License (GPL 许可协议。这些协议明确规定:允许 LibUsb-Win32用于商业软件,而不只是开源软件。

5.1安装 PC 上位机驱动程序

将修改后的 CDC 代码编译下载到 Kinetis MCU运行,连接 PC 与 MCU Device之间的 USB Cable , PC 电脑提示发现新硬件。

通过 LibUSB-Win32自带的 inf-wizard.exe 生成向导可以生成 USB 驱动程序。 inf-wizard.exe 程序扫描系统活动的 USB 设备,选择需要生成驱动程序的设备。

inf-wizard.exe 程序生成驱动程序 inf 文件,这个文件将作为产品发布时使用的驱动程序。

USB 驱动程序安装完毕后,可用在系统的“设备管理器”中看到已经正常工作的 USB 设备。 运行自带的 testlibusb-win.exe 程序就能读出 USB 设备信息。下图是 USB 设备类的描述符信 息。

5.2 上位机 USB 编程 libusb 设计了一系列 API 为应用程序所调用,通过这些 API 应用程序可以操作 USB 硬件。 将 libusb-win32 自带的

libusb0.dll,libusb.lib,usb.h 三个文件添加到上位机程序中。通过使用 七个函数,就可以与 USB 设备进行简单通信了,通信的主要流程可分为以下四步: 1 调用 usb_init 函数,进行初始化。 2 打开要进行通信的 USB 设备的句柄。首先依次调用 usb_find_busses、 usb_find_devices 和 usb_get_busses 这三个函数,获得已找到的