首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > 使用VB调用USB20C函数

使用VB调用USB20C函数

资料介绍
(注:以下函数声明在VB的一般模块内(Module),如果将函数声明在窗体模块内就必须在每个函数的前面添加 Private 关键字。可以通过书写或粘贴的方式在VB Module 内声明,其中每条函数必须书写在同一行内,本文挡内有换行的函数在使用时写在同一行内。)

Declare Function USB20C_EnumDeviceCount Lib "USB20C" () As Long
Declare Function USB20C_Init Lib "USB20C" (ByVal DevNo As Long, ByVal I2CCHhip As Long) As Long
Declare Function USB20C_Done Lib "USB20C" () As Long
Declare Function USB20C_WorkAtHighSpeed Lib "USB20C" () As Boolean
Declare Function USB20C_GetLastErrorStr Lib "USB20C" () As String

Declare Function USB20C_SetAddress Lib "USB20C" (ByVal iAdd As Long) As Boolean
Declare Function USB20C_Input Lib "USB20C" (ByVal iAdd As Long) As Long
Declare Function USB20C_Output Lib "USB20C" (ByVal iAdd As Long, ByVal iData As Long) As Boolean
Declare Function USB20C_MultInput Lib "USB20C" (ByVal Num As Long, ByRef Buf As Any) As Boolean
Declare Function USB20C_MultOutput Lib "USB20C" (ByVal Num As Long, ByRef Buf As Any) As Boolean
Declare Function USB20C_MixedIO Lib "USB20C" (ByVal Num As Long, ByRef Buf As Any) As Boolean

Declare Function USB20C_StartDMARead Lib "USB20C" () As Boolean
Declare Function USB20C_StartDMAWrite Lib "USB20C" () As Boolean
Declare Function USB20C_EndDMA Lib "USB20C" () As Boolean
Declare Function USB20C_DMARead Lib "USB20C" (ByRef iData As Any, ByVal dataSize As Long, ByVal OverTime As Long) As Boolean

Declare Function USB20C_DMAWrite Lib "USB20C" (ByRef iData As Any, ByVal dataSize As Long, ByVal DataWriteLen As Long, ByVal OverTime As Long) As Boolean

Declare Function USB20C_SetIFCFG Lib "USB20C" (ByVal IntIFCLK As Boolean, ByVal intClk48MHz As Boolean, ByVal IntClkOutEn As Boolean, ByVal IFCLKInvert As Boolean, ByVal AsyncFIFO As Boolean, ByVal OnePulseEarly As Boolean) As Boolean

Declare Function USB20C_SetCPUCS Lib "USB20C" (ByVal cupSpeed As Long, ByVal ClkOutEnable As Boolean, ByVal ClkInvert As Boolean) As Boolean
Declare Function USB20C_SetI2CFrequency Lib "USB20C" (ByVal WorkAt400KHz As Boolean) As Boolean
Declare Function USB20C_ReadI2C Lib "USB20C" (ByVal ChipAddr As Long, ByVal Num As Long, ByVal StartAddr As Long, ByVal I2CChip As Long, ByRef Data As Any) As Boolean
Declare Function USB20C_WriteI2C Lib "USB20C" (ByVal ChipAddr As Long, ByVal Num As Long, ByVal StartAddr As Long, ByVal I2CChip As Long, ByRef Data As Any) As Boolean

Declare Function USB20C_GetLastError Lib "USB20C" () As Long

函数实际调用:
0:在Module内定义共享变量

Public gApiLong As Long ‘获得函数调用的返回值
Public gApibl As Boolean ‘获得函数调用的返回值
Public iAdd As Byte ‘读写地址
Public iDataLen As Long ‘数据长度
Public iData(0 to 4095) As Byte ‘返回数据

1:USB20C_EnumDeviceCount() As Long

gApiLong = USB20C_EnumDeviceCount
If gApiLong > 0 Then
gApiLong=当前PC机上连接的USB20C模块的个数
Else
MsgBox "系统未连接到任何设备。", vbQuestion, TiShi
Exit Sub
End If

2:USB20C_Init(ByVal DevNo As Long, ByVal I2CCHhip As Long) As Long

gApiLong = USB20C_Init(DevNo,I2CCHhip)

If gApiLong > 0 Then
Select Case gApiLong
Case 1
MsgBox ("当前模块工作在全速(USB1.1)模式")
Case 2
MsgBox ("当前模块工作在高速(USB2.0)模式")
End Select
Else
MsgBox("USB20C_Init函数调用错误!")
Exit Sub
End If

3:Declare Function USB20C_WorkAtHighSpeed Lib "USB20C" () As Boolean

gApibl = USB20C_WorkAtHighSpeed
If gApibl =True Then
MsgBox("USB20C工作在高速模式")
Else
MsgBox("USB20C工作在全速模式")
End If

4:USB20C_Done Lib "USB20C" () As Long

gApiLong = USB20C_Done()
MsgBox("断开USB20C与当前PC机的连接")

5:USB20C_SetAddress Lib "USB20C" (ByVal iAdd As Long) As Boolean

iAdd=1
gApibl = USB20C_SetAddress(iAdd)
If gApibl Then
MsgBox("USB20C_SetAddress调用成功")
Else
MsgBox("USB20C_SetAddress调用成功")
End If

6:USB20C_Input Lib "USB20C" (ByVal iAdd As Long) As Long

iAdd=1
gApiLong = USB20C_Input(iAdd)
MsgBox ”返回值” gApiLong

7:USB20C_Output Lib "USB20C" (ByVal iAdd As Long, ByVal iData As Long) As Boolean

iAdd=1
iData(0)=写入的地址
gApibl = USB20C_Output(iAdd, iData(0)))
If gApibl Then
MsgBox "USB20C_Output 写入数据成功"
Else
MsgBox "USB20C_Output 写入数据失败"
End If

8:USB20C_MultInput Lib "USB20C" (ByVal Num As Long, ByRef Buf As Any) As Boolean

iAdd = 49 ‘设置读取50个数据 (注:数据个数必须≤60)
For I = 0 To iAdd
ArrData(0) = I ‘设置读那个地址的数据
Next I
gApibl = USB20C_MultInput(iAdd, ArrData(0)) 'Num≤60
If gApibl Then
MsgBox(“读出数据成功")
Else
MsgBox(“读出数据失败")
End If

For I = 0 To iAdd
Debug.Print ArrData(0)
Next I

9:USB20C_MultOutput Lib "USB20C" (ByVal Num As Long, ByRef Buf As Any) As Boolean

iAdd=5
iData [0] = 地址0 iData [1] = 数据0
iData [2] = 地址1 iData [3] = 数据1
iData [4] = 地址2 iData [5] = 数据2
iData [6] = 地址3 iData [7] = 数据3
iData [8] = 地址4 iData [9] = 数据4
iData [10] = 地址5 iData [11] = 数据5
......
gApibl= USB20C_MultOutput(iAdd,iData(0))
If gApibl Then
MsgBox(“多地址写入成功”)
Else
MsgBox(“多地址写入失败”)
End If

10:USB20C_MixedIO Lib "USB20C" (ByVal Num As Long, ByRef Buf As Any) As Boolean

iAdd=3
iData [0] = 地址0 iData[1] = 数据0
iData [2] = 地址1 iData [3] = 数据1
iData [4] = 地址2 iData [5] = 数据2
gApibl=USB20C_MixedIO(iAdd,iData(0))
If gApibl Then
MsgBox(“多地址混合读写成功”)
Else
MsgBox(“多地址混合读写失败”)
End If
Debug.Print iData(0)
Debug.Print iData(1)
Debug.Print iData(2)

11:Declare Function USB20C_StartDMARead Lib "USB20C" () As Boolean

gApibl=USB20C_StartDMARead

If gApibl Then
MsgBox(“调用成功 ”)
Else
MsgBox(“调用失败 ”)
Exit Sub
End If

12: USB20C_DMARead Lib "USB20C" (ByRef iData As Any, ByVal dataSize As Long, ByVal OverTime As Long) As Boolean
Call USB20C_DMAEnd
Call USB20C_StartDMARead

gApibl=USB20C_DMARead(iData(0),20,iDataLen,2000)
If gApibl Then
MsgBox(“USB20C_DMARead调用成功 ”)
Else
MsgBox(“USB20C_DMARead调用失败 ”)
Exit Sub
End If
For I=0 To 20
Debug.Print iData(I)
Next I

Call USB20C_DMAEnd

13: USB20C_DMAWrite Lib "USB20C" (ByRef iData As Any, ByVal dataSize As Long, ByVal DataWriteLen As Long, ByVal OverTime As Long) As Boolean

gApibl= USB20C_DMAWrite(iData(0),4096,DataWriteLen,2000)

If gApibl Then
MsgBox(“USB20C_EndDMA调用成功 ”)
Else
MsgBox(“USB20C_EndDMA调用失败 ”)
Exit Sub
End If
If DataWriteLen=4096 then

End if

14: USB20C_EndDMA Lib "USB20C" () As Boolean

gApibl=USB20C_EndDMA()
If gApibl Then
MsgBox(“USB20C_EndDMA调用成功 ”)
Else
MsgBox(“USB20C_EndDMA调用失败 ”)
Exit Sub
End If
15:USB20C_GetLastError Lib "USB20C" () As Long

gApiLong=USB20C_GetLastError
MsgBox ”返回的错误是。” getErrToStr(gApiLong)

Function getErrToStr(sErrIndex As Long) As String
Select Case sErrIndex
Case 0
getErr =”成功”
Case 1
getErr=”初始化设备时,设备曾经被初始化过一次。”
Case 2
getErr=”化设备时,没有发现设备”
Case 3
GetErr=”初始化设备时,已经发现设备,但是不能打开辅助输出管道。”
Case 4
GetErr=”初始化设备时,已经发现设备,但是不能打开辅助输入管道。”
Case 5
GetErr=”初始化设备时,已经发现设备,但是不能打开主输出管道。”
Case 6
GetErr=”初始化设备时,已经发现设备,但是不能打开主输入管道。”
Case 7
Geterr=”初始化设备时,没能创建终止事件。”
Case 8
getErr = “读写操作超时。”
Case 9
getErr =”读写操作错误(重叠)。”
Case 10
getErr =”读写操作错误。”
Case 11
getErr =”设备没有连接。”
Case 12
getErr =”没有结束上次操作。”
Case 13
getErr =”函数的参数不合适。”
Case 14
getErr =”不是我们的设备。”
End Select
End Function

标签:嵌入式单片机MCU
使用VB调用USB20C函数
本地下载

评论