📄 usbioxdll.bas
字号:
' 位10对应USB2SPI的INT#引脚, 位11对应USB2SPI的SLCT引脚, 位23对应USB2SPI的SDA引脚
'************************************************************************************************
'************************************************************************************************
'以下为USBIOX.DLL提供的主要设备管理API
'************************************************************************************************
'************************************************************************************************
Declare Function USBIO_OpenDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long
' 打开USB2SPI设备,返回句柄,出错则无效
' iIndex 指定USB2SPI设备序号,0对应第一个设备
Declare Sub USBIO_CloseDevice Lib "USBIOX.DLL" (ByVal iIndex As Long)
' 关闭USB2SPI设备
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_GetVersion Lib "USBIOX.DLL" () As Long
Declare Function USBIO_GetDrvVersion Lib "USBIOX.DLL" () As Long
' 获得驱动程序版本号,返回版本号,出错则返回0
Declare Function USBIO_ResetDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
'复位USB设备
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_GetDeviceDescr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean
' 读取设备描述符
' iIndex, 指定USB2SPI设备序号
' oBuffer 指向一个足够大的缓冲区,用于保存描述符
' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度
Declare Function USBIO_GetConfigDescr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean
' 读取配置描述符
' iIndex, 指定USB2SPI设备序号
' oBuffer, 指向一个足够大的缓冲区,用于保存描述符
' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度
Declare Function USBIO_SetIntRoutine Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iIntRoutine As Long) As Boolean
'设定中断服务程序
' 指定USB2SPI设备序号
'指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序
Declare Function USBIO_ReadInter Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean
' 读取中断数据
' iIndex, 指定USB2SPI设备序号
' iStatus 指向一个双字单元,用于保存读取的中断状态数据,见下行
' 位7-位0对应USB2SPI的D7-D0引脚
' 位8对应USB2SPI的ERR#引脚, 位9对应USB2SPI的PEMP引脚, 位10对应USB2SPI的INT#引脚, 位11对应USB2SPI的SLCT引脚
Declare Function USBIO_AbortInter Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' 放弃中断数据读操作
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_ReadData0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean
' 从0#端口读取数据块
' iIndex 指定USB2SPI设备序号
' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据
' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度
Declare Function USBIO_ReadData1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean
' 从1#端口读取数据块
' iIndex, 指定USB2SPI设备序号
' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据
' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度
Declare Function USBIO_AbortRead Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' 放弃数据块读操作
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_WriteData0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean
' 向0#端口写出数据块
' iIndex, 指定USB2SPI设备序号
' iBuffer 指向一个缓冲区,放置准备写出的数据
' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度
Declare Function USBIO_WriteData1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean
' 向1#端口写出数据块
' iIndex, 指定USB2SPI设备序号
' iBuffer, 指向一个缓冲区,放置准备写出的数据
' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度
Declare Function USBIO_AbortWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' 放弃数据块写操作
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_SetExclusive Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iExclusive As Long) As Boolean
' 设置独占使用当前USB2SPI设备
' iIndex, 指定USB2SPI设备序号
' iExclusive 为0则设备可以共享使用,非0则独占使用
Declare Function USBIO_SetTimeout Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteTimeout As Long, ByVal iReadTimeout As Long) As Boolean
' 设置USB数据读写的超时
' iIndex, // 指定USB2SPI设备序号
' iWriteTimeout 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值)
' iReadTimeout 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值)
Declare Function USBIO_ReadData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean
' 读取数据块
' iIndex, 指定USB2SPI设备序号
' oBuffer, 指向一个足够大的缓冲区,用于保存读取的数据
' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度
Declare Function USBIO_WriteData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean
' 写出数据块
' iIndex, 指定USB2SPI设备序号
' iBuffer, 指向一个缓冲区,放置准备写出的数据
' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度
Declare Function USBIO_Set_D5_D0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iSetDirOut As Long, ByVal iSetDataOut As Long) As Boolean
' USBIO_Set_D5_D0 设置USB2SPI的D5-D0引脚的I/O方向,并通过USB2SPI的D5-D0引脚直接输出数据
' ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 *****
' iIndex, 指定USB2SPI设备序号
' iSetDirOut, 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入
' iSetDataOut 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平
'// 以上数据的位5-位0分别对应USB2SPI的D5-D0引脚
Declare Function USBIO_GetDeviceName Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long ''''
' 返回指向USB2SPI设备名称的缓冲区,出错则返回NULL
' iIndex 指定USB2SPI设备序号,0对应第一个设备
Declare Function USBIO_GetVerIC Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_FlushBuffer Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' 清空USB2SPI的缓冲区
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_WriteRead Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadStep As Long, ByVal iReadTimes As Long, ByRef oReadLength As Long, ByRef oReadBuffer As Any) As Boolean
' iIndex, 指定USB2SPI设备序号
' iWriteLength, 写长度,准备写出的长度
' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据
' iReadStep, 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes)
' iReadTimes, 准备读取的次数
' oReadLength, 指向长度单元,返回后为实际读取的长度
' oReadBuffer 指向一个足够大的缓冲区,用于保存读取的数据
Declare Function USBIO_SetDelaymS Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDelay As Long) As Boolean
' USBIO_SetDelaymS 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数
' iIndex, 指定USB2SPI设备序号
' iDelay 指定延时的毫秒数
Declare Function USBIO_SetBufUpload Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean ' 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据
' USBIO_SetBufUpload ' 设定内部缓冲上传模式
' iIndex, 0指定USB2SPI设备序号,0对应第一个设备
' iEnableOrClear 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据
' 如果启用内部缓冲上传模式,那么USB2SPI驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用USBIO_ReadData后将立即返回缓冲区中的已有数据
Declare Function USBIO_QueryBufUpload Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long
' USBIO_QueryBufUpload 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1
' iIndex 指定USB2SPI设备序号,0对应第一个设备
Declare Function USBIO_SetBufDownload Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean
' USBIO_SetBufDownload 设定内部缓冲下传模式
' iIndex, 指定USB2SPI设备序号,0对应第一个设备
' iEnableOrClear 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据
' 如果启用内部缓冲下传模式,那么当应用程序调用USBIO_WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由USB2SPI驱动程序创建的线程自动发送直到完毕
Declare Function USBIO_QueryBufDownload Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long ' 指定USB2SPI设备序号,0对应第一个设备
' USBIO_QueryBufDownload 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1
' iIndex 指定USB2SPI设备序号,0对应第一个设备
Declare Function USBIO_ResetInter Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' USBIO_ResetInter 复位中断数据读操作
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_ResetRead Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' USBIO_ResetRead 复位数据块读操作
' iIndex 指定USB2SPI设备序号
Declare Function USBIO_ResetWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
'Declare Function USBIO_ResetWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean
' USBIO_ResetRead 复位数据块读操作
' iIndex 指定USB2SPI设备序号
Public Const USBIO_DEVICE_ARRIVAL = 3 ' 设备插入事件,已经插入
Public Const USBIO_DEVICE_REMOVE_PEND = 1 ' 设备将要拔出
Public Const USBIO_DEVICE_REMOVE = 0 ' 设备拔出事件,已经拔出
Declare Function USBIO_SetDeviceNotify Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean
' USBIO_SetDeviceNotify 设定设备事件通知程序
' iIndex, 指定USB2SPI设备序号,0对应第一个设备
' iDeviceID, 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止
' iNotifyRoutine (函数地址)指定设备事件回调程序, 为NULL则取消事件通知, 否则在检测到事件时调用该程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -