QT + Cypress FX3 USB通信

参考了网上的信息,这里调用的是cyApi.lib, 这是C++的库,能使用这个库来做简单的usb通信,要用更复杂的应该是用官方的C# CyUSB.dll,我这里用的cyApi.lib。

在包含库的时候,请对着项目选择添加外部库,一定要选择静态库,但是会包含乱七八糟的东西在项目.pro文件上,我是直接在.pro文件上直接添加下列一行:

LIBS += -L$$PWD/lib/x64/ -lCyAPI

$PWD是项目目录,各人根据各自的cyApi.lib的目录下找就行了

在使用cyApi.h的头文件记得包含以下东西,windows.h 一定要包含,否则要调用cyapi.h的时候总是说包含重定义,搞了两个多小时。 

setupAPI.lib 这三个lib没得说,要包含,不包含就会编译失败。

#include 
#include "CyAPI.h"

#pragma comment(lib,"SetupAPI.lib")
#pragma comment(lib,"User32.lib")
#pragma comment(lib,"legacy_stdio_definitions.lib")

要是用同步传输的话,很简单,打开USB设备,找到endPoint, controlEndPoint,进行相应读写数据XferData

, 如果要用异步通信就要用BeginDataXfer,WaitForXfer,FinishDataXfer.

 

我这边最后能够抓到下位机发送上来的数据,一次抓取2097152个字节(这里有个注意的地方是一定要512的倍数,512,1024,这里是2**21字节),否则读取失败

QT + Cypress FX3 USB通信_第1张图片

你可能感兴趣的:(QT)