?? ch375dll.bas
字號:
Attribute VB_Name = "CH375DLL"
' 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
'
'
Type mUspValue
mUspValueLow As Byte ' 02H 值參數低字節
mUspValueHigh As Byte ' 03H 值參數高字節
End Type
Type mUspIndex
mUspIndexLow As Byte ' 04H 索引參數低字節
mUspIndexHigh As Byte ' 05H 索引參數高字節
End Type
Type USB_SETUP_PKT ' USB控制傳輸的建立階段的數據請求包結構
mUspReqType As Byte ' 00H 請求類型
mUspRequest As Byte ' 01H 請求代碼
mUspValue As mUspValue ' 02H-03H 值參數
mUspIndex As mUspIndex ' 04H-05H 索引參數
mLength As Integer ' 06H-07H 數據階段的數據長度
End Type
Public Const mCH375_PACKET_LENGTH = 64 ' CH375支持的數據包的長度
Public Const mCH375_PKT_LEN_SHORT = 8 ' CH375支持的短數據包的長度
Type WIN32_COMMAND '定義WIN32命令接口結構
mFunction As Long '輸入時指定功能代碼或者管道號
'輸出時返回操作狀態
mLength As Long '存取長度,返回后續數據的長度
mBuffer(mCH375_PACKET_LENGTH - 1) As Byte '數據緩沖區,長度為0至255B
End Type
Public mWIN32_COMMAND As WIN32_COMMAND
' WIN32應用層接口命令
'Public Const IOCTL_CH375_COMMAND = (FILE_DEVICE_UNKNOWN * (2 ^ 16) Or FILE_ANY_ACCESS * (2 ^ 14) Or &HF37 * (2 ^ 2) Or METHOD_BUFFERED) ' 專用接口
'Public Const mWIN32_COMMAND_HEAD = mOFFSET(mWIN32_COMMAND, mBuffer) ' WIN32命令接口的頭長度
'Public Const mCH375_MAX_NUMBER = 16 ' 最多同時連接的CH375數
'Public Const mMAX_BUFFER_LENGTH = &H1000 ' 數據緩沖區最大長度4096
'Public Const mMAX_COMMAND_LENGTH = (mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH) ' 最大數據長度加上命令結構頭的長度
'Public Const mDEFAULT_BUFFER_LEN = &H400 ' 數據緩沖區默認長度1024
'Public Const mDEFAULT_COMMAND_LEN = (mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN) ' 默認數據長度加上命令結構頭的長度
' CH375端點地址
Public Const mCH375_ENDP_INTER_UP = &H81 ' CH375的中斷數據上傳端點的地址
Public Const mCH375_ENDP_AUX_DOWN = &H1 ' CH375的輔助數據下傳端點的地址
Public Const mCH375_ENDP_DATA_UP = &H82 ' CH375的數據塊上傳端點的地址
Public Const mCH375_ENDP_DATA_DOWN = &H2 ' CH375的數據塊下傳端點的地址
' 設備層接口提供的管道操作命令
Public Const mPipeDeviceCtrl = &H4 ' CH375的綜合控制管道
Public Const mPipeInterUp = &H5 ' CH375的中斷數據上傳管道
Public Const mPipeDataUp = &H6 ' CH375的數據塊上傳管道
Public Const mPipeDataDown = &H7 ' CH375的數據塊下傳管道
Public Const mPipeAuxDown = &H8 ' CH375的輔助數據下傳管道
' 應用層接口的功能代碼
Public Const mFuncNoOperation = &H0 ' 無操作
Public Const mFuncGetVersion = &H1 ' 獲取驅動程序版本號
Public Const mFuncGetConfig = &H2 ' 獲取USB設備配置描述符
Public Const mFuncSetExclusive = &HB ' 設置獨占使用
Public Const mFuncResetDevice = &HC ' 復位USB設備
Public Const mFuncResetPipe = &HD ' 復位USB管道
Public Const mFuncAbortPipe = &HE ' 取消USB管道的數據請求
Public Const mFuncSetTimeout = &HF ' 設置USB通訊超時
Public Const mFuncBufferMode = &H10 ' 設定緩沖上傳模式及查詢緩沖區中的數據長度
' USB設備標準請求代碼
Public Const mUSB_CLR_FEATURE = &H1
Public Const mUSB_SET_FEATURE = &H3
Public Const mUSB_GET_STATUS = &H0
Public Const mUSB_SET_ADDRESS = &H5
Public Const mUSB_GET_DESCR = &H6
Public Const mUSB_SET_DESCR = &H7
Public Const mUSB_GET_CONFIG = &H8
Public Const mUSB_SET_CONFIG = &H9
Public Const mUSB_GET_INTERF = &HA
Public Const mUSB_SET_INTERF = &HB
Public Const mUSB_SYNC_FRAME = &HC
' CH375控制傳輸的廠商專用請求類型
Public Const mCH375_VENDOR_READ = &HC0 ' 通過控制傳輸實現的CH375廠商專用讀操作
Public Const mCH375_VENDOR_WRITE = &H40 ' 通過控制傳輸實現的CH375廠商專用寫操作
' CH375控制傳輸的廠商專用請求代碼
Public Const mCH375_SET_CONTROL = &H51 ' 輸出控制信號
Public Const mCH375_GET_STATUS = &H52 ' 輸入狀態信號
' 寄存器的位定義
Public Const mBitInputRxd = &H2 ' 只讀,RXD#引腳輸入狀態,1:高電平,0:低電平
Public Const mBitInputReq = &H4 ' 只讀,REQ#引腳輸入狀態,1:高電平,0:低電平
' 直接輸入的狀態信號的位定義
Public Const mStateRXD = &H200 ' RXD#引腳輸入狀態,1:高電平,0:低電平
Public Const mStateREQ = &H400 ' REQ#引腳輸入狀態,1:高電平,0:低電平
Declare Function CH375OpenDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long) As Long
'打開CH375設備,返回句柄,出錯則無效. 指定CH375設備序號,0對應第一個設備
Declare Sub CH375CloseDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long)
'關閉CH375設備,指定CH375設備序號
Declare Function CH375GetVersion Lib "CH375DLL.DLL" ()
'獲得DLL版本號,返回版本號
Declare Function CH375DriverCommand Lib "CH375DLL.DLL" (ByVal iIndex As Long, ByRef ioCommand As WIN32_COMMAND) As Long
' 直接傳遞命令給驅動程序,出錯則返回0,否則返回數據長度
' iIndex 指定CH375設備序號
' WIN32_COMMAND 命令結構的指針
' 該程序在調用后返回數據長度,并且仍然返回命令結構,如果是讀操作,則數據返回在命令結構中,
' 返回的數據長度在操作失敗時為0,操作成功時為整個命令結構的長度,例如讀一個字節,則返回mWIN32_COMMAND_HEAD+1,
' 命令結構在調用前,分別提供:管道號或者命令功能代碼,存取數據的長度(可選),數據(可選)
' 命令結構在調用后,分別返回:操作狀態代碼,后續數據的長度(可選),
' 操作狀態代碼是由WINDOWS定義的代碼,可以參考NTSTATUS.H,
' 后續數據的長度是指讀操作返回的數據長度,數據存放在隨后的緩沖區中,對于寫操作一般為0
Declare Function CH375GetDrvVersion Lib "CH375DLL.DLL" () As Long
'獲得驅動程序版本號,返回版本號,出錯則返回0
Declare Function CH375ResetDevice Lib "CH375DLL.DLL" (ByVal iIndex As Long) As Boolean
' 復位USB設備, iIndex 指定CH375設備序號
Declare Function CH375GetDeviceDescr Lib "CH375DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean
' 讀取設備描述符
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -