UsbControl动态库使用说明_第1页
UsbControl动态库使用说明_第2页
UsbControl动态库使用说明_第3页
UsbControl动态库使用说明_第4页
UsbControl动态库使用说明_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、UsbControlDLL动态库使用说明UsbControlDLL动态库不仅提供了在 PC 机上访问这些端点的 API 低级函数(必须在安装设备控制器的PC机驱动程序后才可以使用, 通过本动态库提供的 API 函数,即使您没有完全理解复杂的 USB 协议也可以快速完成USB的应用软件开发)。还提供了直接控制五路步进或者伺服马达运动的高级函数,通过这些提供的函数,可以帮助您快速地开发出如雕刻机激光切割机点胶机等运动控制类型的软件。一、库函数说明 UsbControlDLL动态库一共有3个文件,包括UsbControlDLL.h、UsbControlDLL.lib、UsbControlDLL.dl

2、l。动态库是Microsoft Windows的接口标准,流行的软件开发工具VC.1 读IN端点缓冲区函数 读IN端点FIFO 函数名称 Usb_ReadData 函数原型 int _stdcall Usb _ReadData (int siPipeNum, unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 从USB设备读取数据 函数参数 siPipeNum:待操作管道号,可以是0、2、4、6、8、10、12 pucRcvBuf:接收数据缓冲区指针 siReadLen: 待读取字节数 siWaitTime:等待超时时间,

3、单位ms,为-1表示一直等待 函数返回值 操作成功:成功读取的字节数;操作失败:-1 2 写OUT端点缓冲区函数 写OUT端点FIFO 函数名称 Usb _WriteData 函数原型 int _stdcall Usb _WriteData(int siPipeNum, unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB设备写入数据 函数参数 siPipeNum: 待操作管道号,可以是1、3、5、7、9、11、13 pucSendBuf:发送数据缓冲区指针 siSendLen: 待发送字节数 siWaitTim

4、e: 等待超时时间,单位ms,为-1表示一直等待 函数返回值 操作成功:成功发送的字节数;操作失败:-1 为配合下位机固件程序和方便用户使用,本动态库对上面的读写端点缓冲区函数做了进一步封装,提供了逻辑端点1(管道0、1)和逻辑端点2(管道2、3)的读写函数。 3 读逻辑端点1 读逻辑端点1 函数名称 Usb _ReadPort1 函数原型 int _stdcall Usb _ReadPort1 (unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 从USB设备的逻辑端点1读取数据 函数参数 pucRcvBuf:接收数据缓

5、冲区指针 siReadLen: 待读取字节数 siWaitTime:等待超时时间,单位ms,为-1表示一直等待 函数返回值 操作成功:成功读取的字节数;操作失败:-1 4 读逻辑端点2 读逻辑端点2 函数名称 Usb _ReadPort2 函数原型 int _stdcall Usb _ReadPort2 (unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 从USB设备的逻辑端点2读取数据 函数参数 pucRcvBuf:接收数据缓冲区指针 siReadLen: 待读取字节数 siWaitTime:等待超时时间,单位ms,为

6、-1表示一直等待 函数返回值 操作成功:成功读取的字节数;操作失败:-1 5 写逻辑端点1 写逻辑端点1 函数名称 Usb _WritePort1 函数原型 int _stdcall Usb _WritePort1 (unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB设备的逻辑端点1写入数据 函数参数 pucSendBuf:发送数据缓冲区指针 siSendLen: 待发送字节数 siWaitTime:等待超时时间,单位ms,为-1表示一直等待 函数返回值 操作成功:成功发送的字节数;操作失败:-1 6 写逻辑端

7、点2 写逻辑端点2 函数名称 Usb _WritePort2 函数原型 int _stdcall Usb _WritePort2 (unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB设备的逻辑端点2写入数据 函数参数 pucSendBuf:发送数据缓冲区指针 siSendLen: 待发送字节数 siWaitTime:等待超时时间,单位ms,为-1表示一直等待 函数返回值 操作成功:成功发送的字节数;操作失败:-1 二、库函数应用举例 1 对IN端点进行读操作 unsigned char RcvBuf 16; /

8、 定义16字节接收数据缓冲区 Usb _ReadData (0,RcvBuf,16,1000); / 从逻辑端点1的IN端点读取16字节数据 / 等待超时时间为 1000 毫秒 2 对OUT端点进行写操作 unsigned char SendBuf 5=0,0,0,0,0; / 定义5字节发送数据缓冲区 Usb _WriteData (1,SendBuf,5,1000); / 向逻辑端点1的OUT端点 写入5 个字节的数据 / 等待超时时间为 1000 毫秒 新增函数/* Function name:Usb_SendPul* Descriptions: 向USB设备的逻辑端点2写数据* inp

9、ut parameters: pucSendBuf:发送数据缓冲区指针*siSendLen:发送数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待* output parameters:无* Returned value: 写入成功为发送的字节数,否那么为-1* 硬件控制数据结构extern "C" _declspec(dllexport)typedef struct ParameterCSize DriverSize_A;/左边切割面积大小CSize DriverSize_B;/右边切割面积大小double m_SpeedXY;/X轴马达速度do

10、uble m_SpeedY;/Y轴马达速度double m_LengthX;/X轴每周长度double m_LengthY;/Y轴每周长度double m_Reserve1;/激光脉冲宽度double m_Reserve2;/激光脉冲频率double m_Reserve3;/开光延时int m_ModPulNumX;/马达每周脉冲数int m_ModPulNumY;/马达每周脉冲数int m_StartDelayTime;/开始延时时间int m_EndDelayTime;/结束延时时间int m_DelayTime;/中间延时 int m_Acceleration;/加速度 int m_Re

11、serve4;/转折速度 int m_Reserve5;/关光延时 int m_Reserve6;/开始点X轴坐标 int m_Reserve7;/开始点Y轴坐标 int m_Reserve8;/二工位距离 int m_Reserve9;/保存 char m_Work_I;/I工位状态,0:不切;1:切割char m_Flase;/激光模式,0:PWM;1:开关;char m_Work_II;/II工位状态,0:不切;1:切割char m_Temp;/* Function name:Usb_OpenLaser* Descriptions: 手动控制激光开关(数字量)* input parame

12、ters: Pulnum:值0,为开激光,1,为关激光,Port_Appe* output parameters:无*/extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Usb_OpenLaser(int Pulnum);/* Function name:Set_Port_Electric* Descriptions: 写控制板端口数据* input parameters: Port_Number:端口号,0,为红灯P0.11;1,为黄灯P0.12,2,绿灯P0.19,3,气缸IP3.24;4,气缸IIP2.26 ,5,激光

13、P0.06;6.PWM_X_DIR P0.07;7.PWM_X_PUL P0.08;8.PWM_Y_DIR P0.10;9.PWM_Y_PUL P0.0910.PWM_Z_DIR P3.28;11.PWM_Z_PUL P3.29;12.PWM_Q_DIR P3.30;13.PWM_Q_PUL P3.31;14.P3.27Port_Appe* output parameters:无*/extern "C" _declspec(dllexport)void PASCAL EXPORT Set_Port_Electric(unsigned char Port_Number,uns

14、igned char Port_Appe);/* Function name:InitUsbCard* Descriptions: 初始化板卡* input parameters: 无:* output parameters:无*/extern "C" _declspec(dllexport)BOOL PASCAL EXPORT InitUsbCard();/* Function name:Usb_OutPort* Descriptions: 写控制板端口数据* input parameters: PortNum:* output parameters:无*/extern

15、"C" _declspec(dllexport)int PASCAL EXPORT Usb_OutPort(int PortNum);/* Function name:Usb_InPort* Descriptions: /参数:0-11保存,12:X轴限位P0.20,13:X1 P0.21,14:Y P0.22;15:Y1 P0.23;16:Z P0.24; 17:Z1 P0.25;18:Q P1.16;19:Q1 P1.17* input parameters: PortNum:* output parameters:无*/extern "C" _de

16、clspec(dllexport)int PASCAL EXPORT Usb_InPort(int PortNum);/* Function name:Usb_SetParamter* Descriptions: 向USB设备写雕刻参数数据* input parameters: struct Parameter:参数结构的指针* output parameters:无*/extern "C" _declspec(dllexport)void PASCAL EXPORT Usb_SetParamter(struct Parameter* Pr);/* Function nam

17、e:Usb_LoadVectDataA* Descriptions: 向USB设备写雕刻曲线数据* input parameters: m_Point:曲线点数据*m_Byte:曲线点类型*Data_Count:曲线总数*m_Data:数据位置0为左边,1为右边* output parameters:返回正常接收的数据总数,否那么为-1* Returned value: 读取成功为读取到的字节数,否那么为-1*/extern "C" _declspec(dllexport)int PASCAL EXPORT Usb_OutVectData(CPoint* m_Point,B

18、YTE* m_Byte,int Data_Count,int m_Data);/* Function name:Usb_ReadData* Descriptions: 从USB设备读取数据* input parameters: siPipeNum:所要操作的管道号,可以是0,2,4,6,8,10,12*pucRcvBuf:接收数据缓冲区指针*siReadLen:接收数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待* output parameters:无* Returned value: 读取成功为读取到的字节数,否那么为-1*/ extern "C&qu

19、ot; _declspec(dllexport)int Usb_ReadData(int siPipeNum, unsigned char *pucRcvBuf, int siReadLen, int siWaitTime);/* Function name:Usb_WriteData* Descriptions: 向USB设备写入数据* input parameters: siPipeNum:所要操作的管道号,可以是1,3,5,7,9,11,13*pucSendBuf:发送数据缓冲区指针*siSendLen:发送数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待*

20、output parameters:无* Returned value: 发送成功为发送的字节数,否那么为-1*/extern "C" _declspec(dllexport) int Usb_WriteData(int siPipeNum,unsigned char *pucSendBuf,int siSendLen,int siWaitTime);/* Function name:Usb_ReadPort1* Descriptions: 从USB设备的逻辑端点1读数据* input parameters: pucRcvBuf:接收数据缓冲区指针*siReadLen:接收

21、数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待* output parameters:无* Returned value: 读取成功为读取到的字节数,否那么为-1*/extern "C" _declspec(dllexport)int Usb_Read_Port1(unsigned char *pucRcvBuf,int siReadLen,int waittime=-1);/* Function name:Usb_ReadPort2* Descriptions: 从USB设备的逻辑端点2读数据* input parameters: pucRc

22、vBuf:接收数据缓冲区指针*siReadLen:接收数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待* output parameters:无* Returned value: 读取成功为读取到的字节数,否那么为-1*/extern "C" _declspec(dllexport)int Usb_ReadPort2(unsigned char *pucRcvBuf,int siReadLen,int siWaitTime=-1);/* Function name:Usb_WritePort1* Descriptions: 向USB设备的逻辑端点

23、1写数据* input parameters: pucSendBuf:发送数据缓冲区指针*siSendLen:发送数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待* output parameters:无* Returned value: 写入成功为发送的字节数,否那么为-1*/extern "C" _declspec(dllexport)int Usb_WritePort1(unsigned char *pucSendBuf, int siSendLen, int siWaitTime=-1);/* Function name:Usb_Writ

24、ePort2* Descriptions: 向USB设备的逻辑端点2写数据* input parameters: pucSendBuf:发送数据缓冲区指针*siSendLen:发送数据字节数*siWaitTime:等待超时时间,单位ms,为-1表示一直等待* output parameters:无* Returned value: 写入成功为发送的字节数,否那么为-1*/extern "C" _declspec(dllexport)int Usb_WritePort2(unsigned char *pucSendBuf, int siSendLen, int siWaitT

25、ime=-1);/马达旋转;参数1:旋转脉冲数,参数2:速度extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor(int Pulnum,int Speed);/旋转马达方向,参数:0:正,1负extern "C" _declspec(dllexport)void PASCAL EXPORT Set_MotorDir(bool dir);/Y马达旋转;参数1:旋转脉冲数,参数2:速度extern "C" _declspec(dllexport)BOOL PASCAL

26、EXPORT Sport_Motor_Y(int Pulnum,int Speed);/Y旋转马达方向,参数:0:正,1负extern "C" _declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Y(bool dir);/Z马达旋转;参数1:旋转脉冲数,参数2:速度extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor_Z(int Pulnum,int Speed);/Z旋转马达方向,参数:0:正,1负extern "C&qu

27、ot; _declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Z(bool dir);/Q马达旋转;参数1:旋转脉冲数,参数2:速度extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor_Q(int Pulnum,int Speed);/Q旋转马达方向,参数:0:正,1负extern "C" _declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Q(bool dir);/* Function name:Usb_InPort*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论