Declare Function CH341WriteRead Lib "CH341DLL.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 ' CH341WriteRead 执行数据流命令,先输出再输入 ' iIndex, 指定CH341设备序号 ' iWriteLength, 写长度,准备写出的长度 ' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据 ' iReadStep, 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) ' iReadTimes, 准备读取的次数 ' oReadLength, 指向长度单元,返回后为实际读取的长度 ' oReadBuffer 指向一个足够大的缓冲区,用于保存读取的数据
这个函数怎么在VB中实现?
Type mBuf mBuff(mCH341_PACKET_LENGTH) As Byte End Type'在.bas文件中定义
Private Sub Command2_Click()’按钮事件
Dim mBuffer As mBuf Dim mLength, mInLen As Long mBuffer.mBuff(0) = mCH341A_CMD_I2C_STREAM mBuffer.mBuff(1) = mCH341A_CMD_I2C_STM_OUT mBuffer.mBuff(2) = 20 mBuffer.mBuff(3) = mCH341A_CMD_I2C_STM_END mLength = 4 mInLen = 0
If (mOpen = True) Then If (CH341WriteRead(0, mLength, mBuffer, 32, 1, mInLen, mBuffer)) Then MsgBox "写数据成功!", vbExclamation, "CH341" Else: MsgBox "写数据失败!", vbExclamation, "CH341" End If Else MsgBox "设备未打开!", vbExclamation, "CH341PAR" End If
End Sub
实现这个函数时,程序直接卡死掉!!!求解!!!