亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch375dll.pas

?? CH372的單片機編程,VC編程,VB編程,dephi編程
?? PAS
字號:
unit CH375DLL;

interface
// 2003.09.08, 2003.12.28, 2004.10.15, 2004.12.05, 2004.12.10, 2005.01.20, 2005.02.23, 2005.07.15
//****************************************
//**  Copyright  (C)  W.ch  1999-2005   **
//**  Web:  http://www.winchiphead.com  **
//****************************************
//**  DLL for USB interface chip CH375  **
//**  C, VC5.0                          **
//****************************************
//
// USB總線接口芯片CH375的應用層接口庫  V2.1
// 南京沁恒電子有限公司  作者: W.ch 2005.07
// CH375-DLL  V2.1 , Support: Ctrl/Bulk/Int
// 運行環境: Windows 98/ME, Windows 2000/XP
// support USB chip: CH372/CH375
//
uses main,SysUtils,unit1;
Const
   mCH375_PACKET_LENGTH = 64;         // CH375支持的數據包的長度
   mCH375_MAX_NUMBER = 16;            // 最多同時連接的CH375數
   mMAX_BUFFER_LENGTH = $1000;        // 數據緩沖區最大長度
   mDEFAULT_BUFFER_LEN = $400;        // 數據緩沖區默認長度1024

// CH375端點地址
   mCH375_ENDP_INTER_UP = $81;        // CH375的中斷數據上傳端點的地址
   mCH375_ENDP_INTER_DOWN = $1;       // CH375的中斷數據下傳端點的地址
   mCH375_ENDP_DATA_UP = $82;         // CH375的數據塊上傳端點的地址
   mCH375_ENDP_DATA_DOWN = $2;        //CH375的數據塊下傳端點的地址

// 設備層接口提供的管道操作命令
   mPipeDeviceCtrl = $4;              // CH375的綜合控制管道;
   mPipeInterUp = $5;                 //CH375的中斷數據上傳管道;
   mPipeDataUp = $6;                  //CH375的數據塊上傳管道
   mPipeDataDown = $7;                //CH375的數據塊下傳管道
   mPipeAuxDown =$8;	              // CH375的輔助數據下傳管道

// 應用層接口的功能代碼
   mFuncNoOperation = $H0;            // 無操作
   mFuncGetVersion = $1;              // 獲取驅動程序版本號
   mFuncGetConfig = $2;               // 獲取USB設備配置描述符
   mFuncSetExclusive = $b;	      // 設置獨占使用
   mFuncResetDevice = $C;             // 復位USB設備
   mFuncResetPipe = $D;               // 復位USB管道
   mFuncAbortPipe = $E;               // 取消USB管道的數據請求
   mFuncSetTimeout = $0f;	      // 設置USB通訊超時
   mFuncBufferMode = $10;			// 設定緩沖上傳模式及查詢緩沖區中的數據長度

// USB設備標準請求代碼
   mUSB_CLR_FEATURE = $1;
   mUSB_SET_FEATURE = $3;
   mUSB_GET_STATUS = $0 ;
   mUSB_SET_ADDRESS = $5;
   mUSB_GET_DESCR = $6;
   mUSB_SET_DESCR = $7;
   mUSB_GET_CONFIG = $8;
   mUSB_SET_CONFIG = $9;
   mUSB_GET_INTERF = $A;
   mUSB_SET_INTERF = $B;
   mUSB_SYNC_FRAME = $C;

// CH375控制傳輸的廠商專用請求類型
   mCH375_VENDOR_READ = $C0;          //通過控制傳輸實現的CH375供應商專用讀操作
   mCH375_VENDOR_WRITE = $40;         //通過控制傳輸實現的CH375供應商專用寫操作

// CH375控制傳輸的供應商專用請求代碼
   mCH375_SET_CONTROL = $51;          // 輸出控制信號
   mCH375_GET_STATUS = $52;           // 輸入狀態信號

// 寄存器的位定義
   mBitInputRxd = $2;                 // 只讀,RXD#引腳輸入狀態,1:高電平,0:低電平
   mBitInputReq = $4;                 // 只讀,REQ#引腳輸入狀態,1:高電平,0:低電平

// 直接輸入的狀態信號的位定義
   mStateRXD = $200;                  // RXD#引腳輸入狀態,1:高電平,0:低電平
   mStateREQ = $400;                  // REQ#引腳輸入狀態,1:高電平,0:低電平

type
  PVOID =Pointer;
  plong=pcardinal;
  TiIntRoutine=procedure(mbuffer:pbytearray);stdcall;

Type
        mUspValue=record
        mUspValueLow : Byte;
        mUspValueHigh : Byte;
End;
Type
        mUspIndex=record
        mUspIndexLow : Byte;
        mUspIndexHigh  : Byte;
End ;
Type
    USB_SETUP_PKT=record
    mUspReqType : Byte;
    mUspRequest : Byte;
    mUspValue : mUspValue;
    mUspIndex : mUspIndex;
    mLength : Integer;
End ;
Type
   WIN32_COMMAND=record               //定義WIN32命令接口結構
   mFunction : cardinal;              //輸入時指定功能代碼或者管道號
                                      //輸出時返回操作狀態
   mLength : cardinal;                //存取長度,返回后續數據的長度
   mBuffer:array[0..(mCH375_PACKET_LENGTH-1)] of Byte;         //數據緩沖區,長度為0至255B                                           '數據緩沖區,長度為0至255B
End ;

var
   mUSB_SETUP_PKT :USB_SETUP_PKT;
   mWIN32_COMMAND : WIN32_COMMAND;
   mm:procedure(mbuffer:pbytearray);stdcall;

   Function CH375OpenDevice(iIndex :cardinal):cardinal ;Stdcall; external 'CH375DLL.DLL' ;
//打開CH375設備,返回句柄,出錯則無效. 指定CH375設備序號,0對應第一個設備

   procedure CH375CloseDevice(iIndex :cardinal) ;Stdcall; external 'CH375DLL.DLL';
//關閉CH375設備,指定CH375設備序號

   Function CH375GetVersion():cardinal  ;Stdcall; external 'CH375DLL.DLL';
//獲得DLL版本號,返回版本號

   Function CH375DriverCommand (           // 直接傳遞命令給驅動程序,出錯則返回0,否則返回數據長度
                 iIndex:cardinal;          // 指定CH375設備序號,V1.6以上DLL也可以是設備打開后的句柄
                 ioCommand:WIN32_COMMAND   // 命令結構的指針
                 ):cardinal;Stdcall;external 'CH375DLL.DLL';

// 該程序在調用后返回數據長度,并且仍然返回命令結構,如果是讀操作,則數據返回在命令結構中,
// 返回的數據長度在操作失敗時為0,操作成功時為整個命令結構的長度,例如讀一個字節,則返回mWIN32_COMMAND_HEAD+1,
// 命令結構在調用前,分別提供:管道號或者命令功能代碼,存取數據的長度(可選),數據(可選)
// 命令結構在調用后,分別返回:操作狀態代碼,后續數據的長度(可選),
// 操作狀態代碼是由WINDOWS定義的代碼,可以參考NTSTATUS.H,
// 后續數據的長度是指讀操作返回的數據長度,數據存放在隨后的緩沖區中,對于寫操作一般為0

   Function CH375GetDrvVersion:cardinal;Stdcall; external'CH375DLL.DLL';
   //獲得驅動程序版本號,返回版本號,出錯則返回0

   Function CH375ResetDevice(iIndex:cardinal) : Boolean ;Stdcall; external 'CH375DLL.DLL';
   //復位USB設備, iIndex 指定CH375設備序號

   Function CH375GetDeviceDescr (iIndex :cardinal;oBuffer:pvoid;ioLength:plong) : Boolean ;Stdcall; external'CH375DLL.DLL';
   //讀取設備描述符
   //iIndex指定CH375設備序號
   //oBuffer指向一個足夠大的緩沖區,用于保存描述符
   //ioLength指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度

   Function CH375GetConfigDescr(iIndex :cardinal; oBuffer :pvoid; ioLength:plong) : Boolean ;Stdcall; external 'CH375DLL.DLL' ;
   //讀取配置描述符
   //iIndex指定CH375設備序號
   //oBuffer指向一個足夠大的緩沖區,用于保存描述符
   //ioLength  指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度

   Function CH375SetIntRoutine (iIndex:cardinal;iIntRoutine :TiIntRoutine) :boolean ;Stdcall; external 'CH375DLL.DLL';
   //設定中斷服務程序
   //iIndex指定CH375設備序號
   //iIntRoutine指定中斷服務程序,為NULL則取消中斷服務,否則在中斷時調用該程序
   //"TiIntRoutine"過程傳遞參數要用非默認的'Register'方式傳遞.

   Function CH375ReadInter(iIndex:cardinal;oBuffer:pvoid;ioLength :plong) :Boolean ; Stdcall;external 'CH375DLL.DLL';
   //讀取中斷數據
   //iIndex指定CH375設備序號
   //oBuffer指向一個足夠大的緩沖區,用于保存描述符
   //ioLength指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度

   Function CH375AbortInter (iIndex :cardinal) :Boolean ;Stdcall; external 'CH375DLL.DLL';
   //放棄中斷數據讀操作
   //iIndex  指定CH375設備序號

   Function CH375ReadData (iIndex :cardinal;oBuffer :pvoid;ioLength :plong):Boolean ;Stdcall; external 'CH375DLL.DLL'; //讀取數據塊
   //iIndex指定CH375設備序號,oBuffer指向一個足夠大的緩沖區,用于保存描述符,ioLength指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度

   function CH375AbortRead(iIndex:cardinal):boolean ;Stdcall; external 'CH375DLL.DLL' ;
   //放棄數據塊讀操作
   //iIndex  指定CH375設備序號

   Function CH375WriteData(iIndex :cardinal;iBuffer :pvoid;ioLength :plong):longbool ;Stdcall; external 'CH375DLL.DLL';
   //先寫出標準的數據塊(命令,長度不超過8字節),再讀取標準的數據塊(應答,長度不超過8字節)
   //iIndex指定CH375設備序號,oBuffer指向一個足夠大的緩沖區,用于保存描述符,ioLength指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度

   Function CH375AbortWrite (iIndex:cardinal):boolean ;Stdcall; external 'CH375DLL.DLL';
   //放棄數據塊寫操作
   //iIndex  指定CH375設備序號

   Function CH375WriteRead (iIndex:cardinal;iBuffer:byte;oBuffer :pvoid;ioLength:plong):Boolean ;Stdcall; external 'CH375DLL.DLL'; //寫出數據塊
   //iIndex指定CH375設備序號,iBuffer指向一個緩沖區,放置準備寫出的數據,長度不大于mCH375_PACKET_LENGTH,oBuffer指向一個足夠大的緩沖區,用于保存描述符,ioLength指向長度單元,輸入時為準備讀取的長度,返回后為實際讀取的長度

   Function CH375GetStatus(iIndex:cardinal;var iStatus:plong):boolean ;Stdcall; external 'CH375DLL.DLL';
    //通過CH375直接輸入數據和狀態
    //iIndex   指定CH375設備序號
    //iStatus  指向一個雙字單元,用于保存狀態數據
    //位7-位0對應CH375的D7-D0引腳,位9對應CH375的RXD#引腳,位10對應CH375的REQ#引腳

   Function CH375SetTimeout(         // 設置USB數據讀寫的超時
	    iIndex:cardinal;         // 指定CH375設備序號
	    iWriteTimeout:cardinal;  // 指定USB寫出數據塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認值)
	    iReadTimeout:cardinal    // 指定USB讀取數據塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認值)
                            ):boolean;Stdcall; external 'CH375DLL.DLL';

   Function CH375WriteAuxData(     // 寫出輔助數據
	iIndex:cardinal;           // 指定CH375設備序號
	iBuffer:pvoid;             // 指向一個緩沖區,放置準備寫出的數據
	ioLength:plong             // 指向長度單元,輸入時為準備寫出的長度,返回后為實際寫出的長度
                              ):boolean;Stdcall; external 'CH375DLL.DLL';

   Function CH375SetExclusive(  // 設置獨占使用當前CH375設備
	iIndex:cardinal;        // 指定CH375設備序號
	iExclusive:cardinal     // 為0則設備可以共享使用,非0則獨占使用
         ):boolean;Stdcall; external 'CH375DLL.DLL';

   Function CH375GetUsbID(  // 獲取USB設備ID,返回數據中,低16位為廠商ID,高16位為產品ID,錯誤時返回全0(無效ID)
	    iIndex:cardinal // 指定CH375設備序號
                         ):cardinal;Stdcall; external 'CH375DLL.DLL';

   Function CH375GetDeviceName(  // 返回指向CH375設備名稱的緩沖區,出錯則返回NULL
	    iIndex:cardinal      // 指定CH375設備序號,0對應第一個設備
                               ):pvoid;Stdcall; external 'CH375DLL.DLL';

  Function CH375SetBufUpload(       // 設定內部緩沖上傳模式
       iIndex:cardinal;             // 指定CH375設備序號,0對應第一個設備
        iEnableOrClear:cardinal ):longbool;Stdcall; external 'CH375DLL.DLL';  // 為0則禁止內部緩沖上傳模式,使用直接上傳,非0則啟用內部緩沖上傳模式并清除緩沖區中的已有數據
// 如果啟用內部緩沖上傳模式,那么CH375驅動程序創建線程自動接收USB上傳數據到內部緩沖區,同時清除緩沖區中的已有數據,當應用程序調用CH375ReadData后將立即返回緩沖區中的已有數據

  Function CH375QueryBufUpload(  // 查詢內部上傳緩沖區中的已有數據包個數,成功返回數據包個數,出錯返回-1
        	iIndex:cardinal ):integer;Stdcall; external 'CH375DLL.DLL';  // 指定CH375設備序號,0對應第一個設備

  Function CH375SetBufDownload(  // 設定內部緩沖下傳模式
	iIndex:cardinal;  // 指定CH375設備序號,0對應第一個設備
	iEnableOrClear:cardinal ):longbool;Stdcall; external 'CH375DLL.DLL';  // 為0則禁止內部緩沖下傳模式,使用直接下傳,非0則啟用內部緩沖下傳模式并清除緩沖區中的已有數據
// 如果啟用內部緩沖下傳模式,那么當應用程序調用CH375WriteData后將僅僅是將USB下傳數據放到內部緩沖區并立即返回,而由CH375驅動程序創建的線程自動發送直到完畢


  Function CH375QueryBufDownload(  // 查詢內部下傳緩沖區中的剩余數據包個數(尚未發送),成功返回數據包個數,出錯返回-1
        iIndex:cardinal ):integer;Stdcall; external 'CH375DLL.DLL';  // 指定CH375設備序號,0對應第一個設備


  Function CH375ResetInter(  // 復位中斷數據讀操作
	 iIndex:cardinal ):longbool;Stdcall; external 'CH375DLL.DLL';  // 指定CH375設備序號


  Function CH375ResetAux(  // 復位輔助數據寫操作
	iIndex:cardinal ):longbool;Stdcall; external 'CH375DLL.DLL';  // 指定CH375設備序號


  Function CH375ResetRead(  // 復位數據塊讀操作
        iIndex:cardinal ):longbool;Stdcall; external 'CH375DLL.DLL';  // 指定CH375設備序號


  Function CH375ResetWrite(  // 復位數據塊寫操作
	iIndex:cardinal ):longbool;Stdcall; external 'CH375DLL.DLL';  // 指定CH375設備序號

  type
	mPCH375_NOTIFY_ROUTINE=Procedure (iEventStatus:cardinal );stdcall;  // 設備事件通知回調程序
       // 設備事件和當前狀態(在下行定義): 0=設備拔出事件, 3=設備插入事件

  const	CH375_DEVICE_ARRIVAL=	3;		// 設備插入事件,已經插入
	CH375_DEVICE_REMOVE_PEND=1;		// 設備將要拔出
        CH375_DEVICE_REMOVE=0;		// 設備拔出事件,已經拔出


  Function CH375SetDeviceNotify(  // 設定設備事件通知程序
	iIndex:cardinal;  // 指定CH375設備序號,0對應第一個設備
	iDeviceID:PCHAR;  // 可選參數,指向字符串,指定被監控的設備的ID,字符串以\0終止
	iNotifyRoutine:mPCH375_NOTIFY_ROUTINE ):longbool;Stdcall; external 'CH375DLL.DLL';  // 指定設備事件回調程序,為NULL則取消事件通知,否則在檢測到事件時調用該程序

implementation

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区国产精品| 韩国视频一区二区| 乱中年女人伦av一区二区| 国产不卡一区视频| 欧美一区二区视频观看视频 | 国产日韩欧美a| 一区二区三区成人| 成人午夜激情视频| 日韩无一区二区| 亚洲激情在线激情| 成人教育av在线| 欧美精品一区二区三区很污很色的| 尤物av一区二区| 国产v日产∨综合v精品视频| 欧美一区二区三区成人| 亚洲激情图片qvod| 99久久伊人精品| 中国av一区二区三区| 国产资源精品在线观看| 91麻豆精品91久久久久同性| 亚洲综合av网| 在线观看日韩高清av| 1区2区3区国产精品| 丁香六月久久综合狠狠色| 2020国产精品久久精品美国| 精品一区二区三区欧美| 51精品秘密在线观看| 天天综合色天天| 欧美日韩精品电影| 亚洲一区自拍偷拍| 91麻豆自制传媒国产之光| 国产精品理伦片| 北条麻妃国产九九精品视频| 中文字幕第一区| 成人免费看黄yyy456| 欧美激情资源网| av电影在线观看一区| 亚洲日本在线a| 色婷婷亚洲综合| 亚洲午夜久久久久久久久久久| 日本伦理一区二区| 亚洲a一区二区| 日韩一区二区免费在线电影| 麻豆91在线播放免费| 精品国产自在久精品国产| 国产一区二区久久| 国产精品久久久久永久免费观看| www.成人网.com| 亚洲乱码国产乱码精品精的特点 | 91成人免费在线视频| 亚洲综合网站在线观看| 欧美猛男男办公室激情| 国内国产精品久久| 中文字幕中文字幕一区二区| 91麻豆福利精品推荐| 一区2区3区在线看| 91精品国产91久久久久久最新毛片| 另类的小说在线视频另类成人小视频在线 | 久久综合五月天婷婷伊人| 九九**精品视频免费播放| 国产日韩欧美在线一区| 91亚洲永久精品| 亚洲高清视频在线| 久久久亚洲综合| 在线影视一区二区三区| 精品一区二区三区影院在线午夜| 国产精品欧美精品| 欧美疯狂做受xxxx富婆| 国产精品夜夜嗨| 洋洋成人永久网站入口| 欧美va亚洲va在线观看蝴蝶网| 成人少妇影院yyyy| 午夜影视日本亚洲欧洲精品| 久久蜜桃av一区精品变态类天堂 | 极品尤物av久久免费看| 国产精品久久久久7777按摩 | 91丝袜高跟美女视频| 日韩va亚洲va欧美va久久| 国产精品沙发午睡系列990531| 欧美色偷偷大香| 国产成人精品1024| 日本女优在线视频一区二区| 中文字幕亚洲一区二区av在线| 日韩一区二区视频| 91麻豆自制传媒国产之光| 精品亚洲免费视频| 一区二区三区蜜桃| 国产精品午夜免费| 精品国产露脸精彩对白| 欧美视频一区二区在线观看| 国产精一品亚洲二区在线视频| 日韩精品色哟哟| 一区二区三区免费观看| 中文字幕巨乱亚洲| 欧美精品一区二区三区在线| 欧美日韩另类一区| 91久久精品一区二区三区| 国产jizzjizz一区二区| 美洲天堂一区二卡三卡四卡视频 | 精品国产网站在线观看| 色婷婷久久99综合精品jk白丝 | 一区二区三区四区中文字幕| 久久免费视频色| 日韩视频一区二区三区在线播放| 欧美在线啊v一区| 色综合一个色综合| 一本色道a无线码一区v| 成人黄动漫网站免费app| 国产精品123| 国产乱码一区二区三区| 韩日av一区二区| 精品一区二区免费在线观看| 麻豆视频一区二区| 久99久精品视频免费观看| 九一九一国产精品| 狠狠色狠狠色合久久伊人| 精品一区二区久久久| 久久99久久99精品免视看婷婷| 美国精品在线观看| 久久99精品一区二区三区三区| 久久成人麻豆午夜电影| 国产又粗又猛又爽又黄91精品| 久久精品久久99精品久久| 卡一卡二国产精品| 国产最新精品免费| 国产1区2区3区精品美女| 国产成人在线视频播放| gogogo免费视频观看亚洲一| av动漫一区二区| 欧美亚洲日本一区| 亚洲国产日韩在线一区模特| 一区二区久久久| 水野朝阳av一区二区三区| 青娱乐精品视频在线| 狠狠色丁香久久婷婷综合_中| 国产精品99久久久久久宅男| 成人免费视频视频| 欧美亚洲国产怡红院影院| 欧美精品99久久久**| 欧美精品一区二区三区视频| 国产精品女同一区二区三区| 亚洲欧美视频一区| 亚洲成人久久影院| 国产麻豆精品95视频| 99久久99久久综合| 91精品国产一区二区三区蜜臀| 精品国产不卡一区二区三区| 国产精品久久久久久久久免费桃花 | 日韩欧美在线观看一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 26uuu久久天堂性欧美| 国产精品嫩草影院com| 亚洲一区在线观看免费 | 日韩一区二区影院| 国产精品网站一区| 亚洲国产欧美日韩另类综合 | 国产精一区二区三区| 一本大道av伊人久久综合| 7777精品伊人久久久大香线蕉经典版下载 | 日韩欧美一二三四区| 国产精品美女视频| 天天综合色天天| 成人福利在线看| 欧美一区二区三区四区视频| 中文av字幕一区| 麻豆91精品视频| 91精品91久久久中77777| 久久嫩草精品久久久久| 一区二区三区蜜桃| 国产suv精品一区二区6| 日韩一二三区视频| 亚洲精选视频在线| 国产精品一二三四五| 91麻豆精品国产| 一区二区三区精品视频在线| 国产不卡视频在线观看| 69av一区二区三区| 亚洲乱码国产乱码精品精小说 | 欧美精品三级日韩久久| 综合电影一区二区三区| 国产精品亚洲人在线观看| 欧美高清视频不卡网| 综合精品久久久| 国产白丝精品91爽爽久久| 2023国产精品视频| 精品一区二区三区影院在线午夜 | av在线播放不卡| 亚洲精品在线一区二区| 日本女人一区二区三区| 欧美三级日韩三级| 亚洲一区免费观看| 91香蕉视频污| 亚洲丝袜美腿综合| 99精品视频在线观看| 国产女同性恋一区二区| 国产在线不卡一卡二卡三卡四卡| 日韩一级黄色大片| 美女尤物国产一区| 日韩美女一区二区三区| 日本亚洲免费观看|