查看库函数时,里面不提供询卡、防冲撞、选卡等的API,那这些操作如何实现呢?
是用CH375DriverCommand这个来实现么? // USB控制传输的建立阶段的数据请求包结构 typedef struct _USB_SETUP_PKT { UCHAR mUspReqType; // 00H 请求类型 UCHAR mUspRequest; // 01H 请求代码 union { struct { UCHAR mUspValueLow; // 02H 值参数低字节 UCHAR mUspValueHigh; // 03H 值参数高字节 }; USHORT mUspValue; // 02H-03H 值参数 }; union { struct { UCHAR mUspIndexLow; // 04H 索引参数低字节 UCHAR mUspIndexHigh; // 05H 索引参数高字节 }; USHORT mUspIndex; // 04H-05H 索引参数 }; USHORT mLength; // 06H-07H 数据阶段的数据长度 } mUSB_SETUP_PKT, *mPUSB_SETUP_PKT;
// 定义WIN32命令接口结构 typedef struct _WIN32_COMMAND { union { ULONG mFunction; // 输入时指定功能代码或者管道号 NTSTATUS mStatus; // 输出时返回操作状态 }; ULONG mLength; // 存取长度,返回后续数据的长度 union { mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 UCHAR mBuffer[ mCH375_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B }; } mWIN32_COMMAND, *mPWIN32_COMMAND;
上面的结构中,询卡、防冲撞、选卡对应的请求类型又是什么呢?
不清楚你说的"询卡、防冲撞、选卡等的API"具体是什么意思.你说一下你遇到的问题吧!
我们购买的一个USB读卡器,供货方提供的就是CH375DLL.DLL这个库,也没有文档说明与DEMO,供货方发给我的资料好像也是从贵公司找到的,在开发系统时,系统要通过USB读卡器读写M1卡,对读卡数据时的实现不是很明白
你所说的读卡数据的实现是什么意思,你最好于USB读卡器厂家联系下。
那,以上两个结构体的各项参数代表什么意思呢?
mWIN32_COMMAND是和USB设备通讯时向驱动发的命令,mUSB_SETUP_PKT是USB控制传输中的SETUP包结果。 我们提供CH375OpenDevice,CH375ReadData,CH375WriteData等函数和USB设备通讯,你应该问一下设备厂家,他们是不是在我们的CH375DLL.DLL上有加了一层函数来提供“询卡、防冲撞、选卡”。关于CH375OpenDevice等函数在CH375DLL.H中有说明。
你是说,这个库本身并不提供“询卡、防冲撞、选卡”,只是设备厂商对这个库进行了二次开发,从而才提供这些操作的
你可以看一下CH375DLL.H里面的函数,我们只提供和USB通讯的基本函数,没有你说的“询卡、防冲撞、选卡”这些操作,这个应该是设备厂商对这个库进行了二次开发而提供的函数。
但他提供的也只有一个库(CH375DLL.DLL)呀,如果是二次开发,那是不是应该有两个库文件呢
他有没有提供除了CH375DLL.H以外的函数,如果有的话,看他有没有提供LIB文件,有可能是静态LIB,直接把代码嵌到程序中的。如果没有提供除了CH375DLL.H以外的函数,那你说的“询卡、防冲撞、选卡”等操作是从哪里看到的。他们应该提供示例代码。
只有CH375DLL.DLL这个库文件,那些是从给我的串口通讯协议里看到的,协议里有那些命令
串口通讯协议?你的设备数据流是不是这样的,PC <==> USB<==> 单片机<==> 串口 <==> 设备。 如果是这样的话,我们也不知道这个协议,CH375DLL.DLL只负责收发数据,只是提供数据通道,关于数据的含义CH37X是不处理的。