UsbControl動態(tài)庫使用說明_第1頁
UsbControl動態(tài)庫使用說明_第2頁
UsbControl動態(tài)庫使用說明_第3頁
UsbControl動態(tài)庫使用說明_第4頁
UsbControl動態(tài)庫使用說明_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、UsbControlDLL動態(tài)庫使用說明UsbControlDLL動態(tài)庫不僅提供了在 PC 機上訪問這些端點的 API 低級函數(shù)(必須在安裝設備控制器的PC機驅動程序后才可以使用, 通過本動態(tài)庫提供的 API 函數(shù),即使您沒有完全理解復雜的 USB 協(xié)議也可以快速完成USB的應用軟件開發(fā))。還提供了直接控制五路步進或者伺服馬達運動的高級函數(shù),通過這些提供的函數(shù),可以幫助您快速地開發(fā)出如雕刻機激光切割機點膠機等運動控制類型的軟件。一、庫函數(shù)說明 UsbControlDLL動態(tài)庫一共有3個文件,包括UsbControlDLL.h、UsbControlDLL.lib、UsbControlDLL.dl

2、l。動態(tài)庫是Microsoft Windows的接口標準,流行的軟件開發(fā)工具VC.1 讀IN端點緩沖區(qū)函數(shù) 讀IN端點FIFO 函數(shù)名稱 Usb_ReadData 函數(shù)原型 int _stdcall Usb _ReadData (int siPipeNum, unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 從USB設備讀取數(shù)據(jù) 函數(shù)參數(shù) siPipeNum:待操作管道號,可以是0、2、4、6、8、10、12 pucRcvBuf:接收數(shù)據(jù)緩沖區(qū)指針 siReadLen: 待讀取字節(jié)數(shù) siWaitTime:等待超時時間,

3、單位ms,為-1表示一直等待 函數(shù)返回值 操作成功:成功讀取的字節(jié)數(shù);操作失?。?1 2 寫OUT端點緩沖區(qū)函數(shù) 寫OUT端點FIFO 函數(shù)名稱 Usb _WriteData 函數(shù)原型 int _stdcall Usb _WriteData(int siPipeNum, unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB設備寫入數(shù)據(jù) 函數(shù)參數(shù) siPipeNum: 待操作管道號,可以是1、3、5、7、9、11、13 pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針 siSendLen: 待發(fā)送字節(jié)數(shù) siWaitTim

4、e: 等待超時時間,單位ms,為-1表示一直等待 函數(shù)返回值 操作成功:成功發(fā)送的字節(jié)數(shù);操作失?。?1 為配合下位機固件程序和方便用戶使用,本動態(tài)庫對上面的讀寫端點緩沖區(qū)函數(shù)做了進一步封裝,提供了邏輯端點1(管道0、1)和邏輯端點2(管道2、3)的讀寫函數(shù)。 3 讀邏輯端點1 讀邏輯端點1 函數(shù)名稱 Usb _ReadPort1 函數(shù)原型 int _stdcall Usb _ReadPort1 (unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 從USB設備的邏輯端點1讀取數(shù)據(jù) 函數(shù)參數(shù) pucRcvBuf:接收數(shù)據(jù)緩

5、沖區(qū)指針 siReadLen: 待讀取字節(jié)數(shù) siWaitTime:等待超時時間,單位ms,為-1表示一直等待 函數(shù)返回值 操作成功:成功讀取的字節(jié)數(shù);操作失?。?1 4 讀邏輯端點2 讀邏輯端點2 函數(shù)名稱 Usb _ReadPort2 函數(shù)原型 int _stdcall Usb _ReadPort2 (unsigned char *pucRcvBuf, int siReadLen, int siWaitTime) 功能描述 從USB設備的邏輯端點2讀取數(shù)據(jù) 函數(shù)參數(shù) pucRcvBuf:接收數(shù)據(jù)緩沖區(qū)指針 siReadLen: 待讀取字節(jié)數(shù) siWaitTime:等待超時時間,單位ms,為

6、-1表示一直等待 函數(shù)返回值 操作成功:成功讀取的字節(jié)數(shù);操作失?。?1 5 寫邏輯端點1 寫邏輯端點1 函數(shù)名稱 Usb _WritePort1 函數(shù)原型 int _stdcall Usb _WritePort1 (unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB設備的邏輯端點1寫入數(shù)據(jù) 函數(shù)參數(shù) pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針 siSendLen: 待發(fā)送字節(jié)數(shù) siWaitTime:等待超時時間,單位ms,為-1表示一直等待 函數(shù)返回值 操作成功:成功發(fā)送的字節(jié)數(shù);操作失?。?1 6 寫邏輯端

7、點2 寫邏輯端點2 函數(shù)名稱 Usb _WritePort2 函數(shù)原型 int _stdcall Usb _WritePort2 (unsigned char *pucSendBuf, int siSendLen, int siWaitTime) 功能描述 向USB設備的邏輯端點2寫入數(shù)據(jù) 函數(shù)參數(shù) pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針 siSendLen: 待發(fā)送字節(jié)數(shù) siWaitTime:等待超時時間,單位ms,為-1表示一直等待 函數(shù)返回值 操作成功:成功發(fā)送的字節(jié)數(shù);操作失?。?1 二、庫函數(shù)應用舉例 1 對IN端點進行讀操作 unsigned char RcvBuf 16; /

8、 定義16字節(jié)接收數(shù)據(jù)緩沖區(qū) Usb _ReadData (0,RcvBuf,16,1000); / 從邏輯端點1的IN端點讀取16字節(jié)數(shù)據(jù) / 等待超時時間為 1000 毫秒 2 對OUT端點進行寫操作 unsigned char SendBuf 5=0,0,0,0,0; / 定義5字節(jié)發(fā)送數(shù)據(jù)緩沖區(qū) Usb _WriteData (1,SendBuf,5,1000); / 向邏輯端點1的OUT端點 寫入5 個字節(jié)的數(shù)據(jù) / 等待超時時間為 1000 毫秒 新增函數(shù)/* Function name:Usb_SendPul* Descriptions: 向USB設備的邏輯端點2寫數(shù)據(jù)* inp

9、ut parameters: pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針*siSendLen:發(fā)送數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待* output parameters:無* Returned value: 寫入成功為發(fā)送的字節(jié)數(shù),否那么為-1* 硬件控制數(shù)據(jù)結構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;/馬達每周脈沖數(shù)int m_ModPulNumY;/馬達每周脈沖數(shù)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工位狀態(tài),0:不切;1:切割char m_Flase;/激光模式,0:PWM;1:開關;char m_Work_II;/II工位狀態(tài),0:不切;1:切割char m_Temp;/* Function name:Usb_OpenLaser* Descriptions: 手動控制激光開關(數(shù)字量)* 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: 寫控制板端口數(shù)據(jù)* 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: 寫控制板端口數(shù)據(jù)* input parameters: PortNum:* output parameters:無*/extern

15、"C" _declspec(dllexport)int PASCAL EXPORT Usb_OutPort(int PortNum);/* Function name:Usb_InPort* Descriptions: /參數(shù):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設備寫雕刻參數(shù)數(shù)據(jù)* input parameters: struct Parameter:參數(shù)結構的指針* output parameters:無*/extern "C" _declspec(dllexport)void PASCAL EXPORT Usb_SetParamter(struct Parameter* Pr);/* Function nam

17、e:Usb_LoadVectDataA* Descriptions: 向USB設備寫雕刻曲線數(shù)據(jù)* input parameters: m_Point:曲線點數(shù)據(jù)*m_Byte:曲線點類型*Data_Count:曲線總數(shù)*m_Data:數(shù)據(jù)位置0為左邊,1為右邊* output parameters:返回正常接收的數(shù)據(jù)總數(shù),否那么為-1* Returned value: 讀取成功為讀取到的字節(jié)數(shù),否那么為-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設備讀取數(shù)據(jù)* input parameters: siPipeNum:所要操作的管道號,可以是0,2,4,6,8,10,12*pucRcvBuf:接收數(shù)據(jù)緩沖區(qū)指針*siReadLen:接收數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待* output parameters:無* Returned value: 讀取成功為讀取到的字節(jié)數(shù),否那么為-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設備寫入數(shù)據(jù)* input parameters: siPipeNum:所要操作的管道號,可以是1,3,5,7,9,11,13*pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針*siSendLen:發(fā)送數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待*

20、output parameters:無* Returned value: 發(fā)送成功為發(fā)送的字節(jié)數(shù),否那么為-1*/extern "C" _declspec(dllexport) int Usb_WriteData(int siPipeNum,unsigned char *pucSendBuf,int siSendLen,int siWaitTime);/* Function name:Usb_ReadPort1* Descriptions: 從USB設備的邏輯端點1讀數(shù)據(jù)* input parameters: pucRcvBuf:接收數(shù)據(jù)緩沖區(qū)指針*siReadLen:接收

21、數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待* output parameters:無* Returned value: 讀取成功為讀取到的字節(jié)數(shù),否那么為-1*/extern "C" _declspec(dllexport)int Usb_Read_Port1(unsigned char *pucRcvBuf,int siReadLen,int waittime=-1);/* Function name:Usb_ReadPort2* Descriptions: 從USB設備的邏輯端點2讀數(shù)據(jù)* input parameters: pucRc

22、vBuf:接收數(shù)據(jù)緩沖區(qū)指針*siReadLen:接收數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待* output parameters:無* Returned value: 讀取成功為讀取到的字節(jié)數(shù),否那么為-1*/extern "C" _declspec(dllexport)int Usb_ReadPort2(unsigned char *pucRcvBuf,int siReadLen,int siWaitTime=-1);/* Function name:Usb_WritePort1* Descriptions: 向USB設備的邏輯端點

23、1寫數(shù)據(jù)* input parameters: pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針*siSendLen:發(fā)送數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待* output parameters:無* Returned value: 寫入成功為發(fā)送的字節(jié)數(shù),否那么為-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寫數(shù)據(jù)* input parameters: pucSendBuf:發(fā)送數(shù)據(jù)緩沖區(qū)指針*siSendLen:發(fā)送數(shù)據(jù)字節(jié)數(shù)*siWaitTime:等待超時時間,單位ms,為-1表示一直等待* output parameters:無* Returned value: 寫入成功為發(fā)送的字節(jié)數(shù),否那么為-1*/extern "C" _declspec(dllexport)int Usb_WritePort2(unsigned char *pucSendBuf, int siSendLen, int siWaitT

25、ime=-1);/馬達旋轉;參數(shù)1:旋轉脈沖數(shù),參數(shù)2:速度extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor(int Pulnum,int Speed);/旋轉馬達方向,參數(shù):0:正,1負extern "C" _declspec(dllexport)void PASCAL EXPORT Set_MotorDir(bool dir);/Y馬達旋轉;參數(shù)1:旋轉脈沖數(shù),參數(shù)2:速度extern "C" _declspec(dllexport)BOOL PASCAL

26、EXPORT Sport_Motor_Y(int Pulnum,int Speed);/Y旋轉馬達方向,參數(shù):0:正,1負extern "C" _declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Y(bool dir);/Z馬達旋轉;參數(shù)1:旋轉脈沖數(shù),參數(shù)2:速度extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor_Z(int Pulnum,int Speed);/Z旋轉馬達方向,參數(shù):0:正,1負extern "C&qu

27、ot; _declspec(dllexport)void PASCAL EXPORT Set_MotorDir_Z(bool dir);/Q馬達旋轉;參數(shù)1:旋轉脈沖數(shù),參數(shù)2:速度extern "C" _declspec(dllexport)BOOL PASCAL EXPORT Sport_Motor_Q(int Pulnum,int Speed);/Q旋轉馬達方向,參數(shù):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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論