USB3.0开发之bulkLoop上位机程序
一、开发测试软件
硬件平台:Cypress公司的CYUSB3014
软件平台:Visual Studio 2017 + Qt5.12
实现应用程序产生数据,在两个端点之间循环,固件为官方例程的firmware\basic_examples\cyfxbulklpauto_cpp。
1、工程建立
- 添加官方库文件和头文件。将安装目录 D:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.2\library\cpp 下的inc和lib文件夹拷贝到工程目录中。
- 添加头文件路径以及库目录。
- 添加库。
在链接器中添加附加依赖项:legacy_stdio_definitions.lib、setupapi.lib、CyAPI.lib
在链接器中忽略特定默认库:LIBCMT - 设置不使用预编译头。
- 添加头文件:<windows.h>、<WINDEF.H>、<dbt.h>、<initguid.h>
- 通过动态库项目来实现USB通信与应用界面的分离编程,为了打印动态库项目的数据到窗口上,在动态库项目的 生成事件 >> 生成后事件 >> 命令行中添加 editbin /SUBSYSTEM:CONSOLE "…\x64\Debug\usbApplication.exe"
2、USB设备初始化
主要包括USB设备的开启与注册,只包含关键代码
#include "CyAPI.h"
#include <initguid.h>
// 全局静态常量数组,存储GUID码
static const GUID gs_guidInterfaceList[] =
{
{
0xa5dcbf10, 0x6530, 0x11d2, {
0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed } },
{
0x53f56307, 0xb6bf, 0x11d0, {
0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b } },
{
0x4d1e55b2, 0xf16f, 0x11Cf, {
0x88, 0xcb, 0x00, 0x11, 0x11,