⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch365modl.bas

📁 南京沁恒电子有限公司USB通用设备接口芯片资料
💻 BAS
📖 第 1 页 / 共 2 页
字号:
'  iEnableInterrupt   是否需要支持中断

Declare Function CH365mCloseDevice Lib "CH365DLL.DLL" (ByVal iIndex As Long)
'  CH365mCloseDevice   关闭CH365设备
'             iIndex   指定CH365设备序号

Declare Function CH365mDriverCommand Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByRef ioCommand As mWIN32_COMMAND) As Long
'CH365mDriverCommand   直接传递命令给驱动程序,出错则返回0,否则返回数据长度
'             iIndex   指定CH365设备序号
'          ioCommand   命令结构的指针
' 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中,
' 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1,
' 命令结构在调用前,分别提供:命令功能代码,起始地址(可选),存取数据的长度(可选),
' 命令结构在调用后,分别返回:操作状态代码,返回的基址(可选),后续数据的长度(可选),
'   操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H,
'   返回的基址只适用于下列命令:获取I/O基址,获取存储器基址,获取中断号,对于其它命令则保持输入时的起始地址
'   后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0

Declare Function CH365mGetIoBaseAddr Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByRef oIoBaseAddr As mCH365_IO_REG) As Boolean

' CH365mGetIoBaseAddr   获取I/O端口的基址
'              iIndex   指定CH365设备序号
'         oIoBaseAddr   保存I/O端口基址的单元地址

Declare Function CH365mSetIoBaseAddr Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iIoBaseAddr As mCH365_IO_REG) As Boolean
'  CH365mSetIoBaseAddr   设定I/O端口的基址
'               iIndex   指定CH365设备序号
'          iIoBaseAddr   指定I/O端口基址

Declare Function CH365mGetMemBaseAddr Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByRef oMemBaseAddr As mCH365_MEM_REG) As Boolean

'  CH365mGetMemBaseAddr   获取存储器的基址
'                iIndex   指定CH365设备序号
'          oMemBaseAddr   保存存储器基址的单元地址

Declare Function CH365mSetMemBaseAddr Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iMemBaseAddr As mCH365_MEM_REG) As Boolean

'  CH365mSetMemBaseAddr    设定存储器的基址
'                iIndex    指定CH365设备序号
'          iMemBaseAddr    指定存储器基址,为0则关闭存储器,为-1则自动设定

Declare Function CH365mGetIntLine Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByRef oIntLine As Long) As Boolean

'  CH365mGetIntLine    获取中断号
'            iIndex    指定CH365设备序号
'          oIntLine    保存中断号的单元地址

Declare Function CH365mSetIntLine Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iIntLine As Long) As Boolean

' CH365mSetIntLine   设定中断号
'           iIndex   指定CH365设备序号
'         iIntLine   指定中断号,为0则关闭中断,为-1则自动检测并设定

Declare Function CH365mWaitInterrupt Lib "CH365DLL.DLL" (ByVal iIndex As Long) As Boolean

'  CH365mWaitInterrupt    等待中断事件
'               iIndex    指定CH365设备序号

Declare Function CH365mAbortWaitInt Lib "CH365DLL.DLL" (ByVal iIndex As Long) As Boolean

'  CH365mAbortWaitInt   放弃等待中断
'              iIndex   指定CH365设备序号

Declare Function CH365mSetIntRoutine Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iIntRoutine As Long) As Boolean

' CH365mSetIntRoutine   设定中断服务程序
'              iIndex   指定CH365设备序号
'  mPCH365_INT_ROUTINE iIntRoutine    指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序

Declare Function CH365mReadIntCommand Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByRef oCommand As mWIN32_COMMAND, ByVal iCmdIndex As Long) As Boolean

'  CH365mReadIntCommand   读取中断命令缓冲区
'                iIndex   指定CH365设备序号
'              oCommand   指向一个足够大的缓冲区,用于保存读取的命令结构
'             iCmdIndex   中断命令序号,为1或者2

Declare Function CH365mWriteIntCommand Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByRef iCommand As mWIN32_COMMAND, ByVal iCmdIndex As Long) As Boolean

'  CH365mWriteIntCommand    写入中断命令缓冲区
'                 iIndex    指定CH365设备序号
'               iCommand    指向作为中断命令的命令结构
'               iCmdIndex    中断命令序号,为1或者2

Declare Function CH365mReadIoByte Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByRef oByte As Byte) As Boolean

' CH365mReadIoByte   从I/O端口读取一个字节
'           iIndex   指定CH365设备序号
'            iAddr   指定I/O端口的地址
'            oByte   指向一个字节单元,用于保存读取的字节数据

Declare Function CH365mReadIoWord Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByRef oWord As Integer) As Boolean

'  CH365mReadIoWord    从I/O端口读取一个字
'            iIndex    指定CH365设备序号
'             iAddr    指定I/O端口的地址
'             oWord    指向一个字单元,用于保存读取的字数据

Declare Function CH365mReadIoDword Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByRef oDword As Long) As Boolean
' CH365mReadIoDword   从I/O端口读取一个双字
'            iIndex   指定CH365设备序号
'             iAddr   指定I/O端口的地址
'            oDword   指向一个双字单元,用于保存读取的双字数据

Declare Function CH365mWriteIoByte Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByVal iByte As Byte) As Boolean

' CH365mWriteIoByte   向I/O端口写入一个字节
'            iIndex   指定CH365设备序号
'             iAddr   指定I/O端口的地址
'             iByte   待写入的字节数据

Declare Function CH365mWriteIoWord Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByVal iWord As Integer) As Boolean

' CH365mWriteIoWord    向I/O端口写入一个字
'            iIndex    指定CH365设备序号
'             iAddr    指定I/O端口的地址
'             iWord    待写入的字数据

Declare Function CH365mWriteIoDword Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByVal iDword As Long) As Boolean

'  CH365mWriteIoDword   向I/O端口写入一个双字
'              iIndex   指定CH365设备序号
'               iAddr   指定I/O端口的地址
'              iDword   待写入的双字数据

Declare Function CH365mReadMemByte Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByRef oByte As Byte) As Boolean

' CH365mReadMemByte   从存储器读取一个字节
'            iIndex   指定CH365设备序号
'             iAddr   指定存储器的地址,虚拟地址
'             oByte   指向一个字节单元,用于保存读取的字节数据

Declare Function CH365mReadMemDword Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByRef oDword As Long) As Boolean

'  CH365mReadMemDword    从存储器读取一个双字
'              iIndex    指定CH365设备序号
'               iAddr    指定存储器的地址,虚拟地址
'              oDword    指向一个双字单元,用于保存读取的双字数据

Declare Function CH365mWriteMemByte Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByVal iByte As Byte) As Boolean

' CH365mWriteMemByte    向存储器写入一个字节
'             iIndex    指定CH365设备序号
'              iAddr    指定存储器的地址,虚拟地址
'              iByte    待写入的字节数据

Declare Function CH365mWriteMemDword Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Any, ByVal iDword As Long) As Boolean

' CH365mWriteMemDword   向存储器写入一个双字
'              iIndex   指定CH365设备序号
'               iAddr   指定存储器的地址,虚拟地址
'              iDword   待写入的双字数据

Declare Function CH365mReadConfig Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iOffset As Any, ByRef oByte As Byte) As Boolean
'  CH365mReadConfig    从配置空间读取一个字节数据
'            iIndex    指定CH365设备序号
'           iOffset    指定偏移地址
'             oByte    指向一个字节单元,用于保存读取的字节数据

Declare Function CH365mWriteConfig Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iOffset As Any, ByVal iByte As Byte) As Boolean

'  CH365mWriteConfig    向配置空间写入一个字节数据
'             iIndex    指定CH365设备序号
'            iOffset    指定偏移地址
'              iByte    待写入的字节数据

Declare Function CH365mSetA15_A8 Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iA15_A8 As Byte) As Boolean

'  CH365mSetA15_A8    设置高地址,即设置A15-A8的输出
'           iIndex    指定CH365设备序号
'          iA15_A8    位7-位0对应A15-A8的输出,1为高电平,0为低电平

Declare Function CH365mReadI2C Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByRef oByte As Byte) As Boolean
' CH365mReadI2C   从I2C接口读取一个字节数据
'        iIndex   指定CH365设备序号
'       iDevice   低7位指定I2C设备地址
'         iAddr   指定数据单元的地址
'         oByte   指向一个字节单元,用于保存读取的字节数据

Declare Function CH365mWriteI2C Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByVal iByte As Byte) As Boolean

'  CH365mWriteI2C   向I2C接口写入一个字节数据
'          iIndex   指定CH365设备序号
'         iDevice   低7位指定I2C设备地址
'           iAddr   指定数据单元的地址
'           iByte   待写入的字节数据

Declare Function CH365DelayUS Lib "CH365DLL.DLL" (ByVal iDelay As Long) As Boolean
'       延时指定微秒
'        iDelay  指定要延时的微秒数,如果延时小于10则误差较大

Declare Function CH365mAccessBlock Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iAccessMode As Long, ByVal iAddr As Any, ByRef ioBuffer As Any, ByVal iLength As Long) As Boolean
'       读取或者写入数据块
'        iIndex        指定CH365设备序号
'        iAccessMode   参考下面的说明
'        iAddr         指定I/O端口或者存储器的地址
'        ioBuffer      指向输入或者输出的缓冲区
'        iLength       数据块长度,也就是读取或者写入的字节数,长度不超过32KB

Declare Function CH365mSetExclusive Lib "CH365DLL.DLL" (ByVal iIndex As Long, ByVal iExclusive As Long) As Boolean
' 设置独占使用当前CH365设备
' iIndex   指定CH365设备序号
' iExclusive 为0则设备可以共享使用,非0则独占使用


Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

 '将文本框中输入的十六进制值转换成BCD码

Function hextobcd(str As String) As Byte
Dim length As Integer
Dim X As String
Dim i As Integer
length = Len(str)
For i = 0 To length - 1
X = Mid(str, length - i, 1)
Select Case X
       Case "a", "A"
         hextobcd = hextobcd + 10 * (16 ^ i)
       Case "b", "B"
         hextobcd = hextobcd + 11 * (16 ^ i)
       Case "c", "C"
         hextobcd = hextobcd + 12 * (16 ^ i)
       Case "d", "D"
         hextobcd = hextobcd + 13 * (16 ^ i)
       Case "e", "E"
         hextobcd = hextobcd + 14 * (16 ^ i)
       Case "f", "F"
         hextobcd = hextobcd + 15 * (16 ^ i)
       Case "0" To "9"
         hextobcd = hextobcd + Val(X) * 16 ^ i
       Case Else
       MsgBox "非十六进制数", vbCritical, "信息提示"
       hextobcd = 0
End Select
Next i
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -