📄 frmmain.frm
字号:
MsgBox "MEM地址方式1读拔码开关状态失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
End If
'按钮状态显示
If ((mBuf(0) And 1) = 0) Then
swit(0).Value = 1
Else
swit(0).Value = 0
End If
If ((mBuf(0) And 2) = 0) Then
swit(1).Value = 1
Else
swit(1).Value = 0
End If
If ((mBuf(0) And 4) = 0) Then
swit(2).Value = 1
Else
swit(2).Value = 0
End If
If ((mBuf(0) And 8) = 0) Then
swit(3).Value = 1
Else
swit(3).Value = 0
End If
If ((mBuf(0) And 16) = 0) Then
swit(4).Value = 1
Else
swit(4).Value = 0
End If
If ((mBuf(0) And 32) = 0) Then
swit(5).Value = 1
Else
swit(5).Value = 0
End If
If ((mBuf(0) And 64) = 0) Then
swit(6).Value = 1
Else
swit(6).Value = 0
End If
If ((mBuf(0) And 128) = 0) Then
swit(7).Value = 1
Else
swit(7).Value = 0
End If
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub Form_Load()
mIndex = 0
'SSTab1.TabVisible(0) = False
'SSTab1.TabVisible(1) = False
'SSTab1.TabVisible(2) = False
'SSTab1.TabVisible(3) = False
'SSTab1.TabVisible(1) = False
'SSTab1.TabVisible(4) = False
hopen = USBIO_OpenDevice(mIndex)
If (hopen = INVALID_HANDLE_VALUE) Then
mOpen = False
Else
mOpen = True
End If
'设置设备插拔通知
If USBIO_SetDeviceNotify(mIndex, vbNullString, AddressOf mUSBIO_NOTIFY_ROUTINE) = False Then
MsgBox "设置设备插拔通知失败", vbExclamation, "USB2ISP DEMO"
End If
enablebtn (mOpen)
End Sub
Private Sub Form_Unload(Cancel As Integer)
USBIO_SetDeviceNotify mIndex, vbNullString, 0&
If (mOpen = True) Then
USBIO_CloseDevice (mIndex)
End If
End Sub
Private Sub Led_Click(Index As Integer)
Dim mBuf(0) As Byte
Dim mLen As Long
If (mOpen = True) Then
mLen = 1
mBuf(0) = CByte((Led(0).Value * (2 ^ 7)) + (Led(1).Value * (2 ^ 6)) + (Led(2).Value * (2 ^ 5)) + (Led(3).Value * (2 ^ 4)) + (Led(4).Value * (2 ^ 3)) + (Led(5).Value * (2 ^ 2)) + (Led(6).Value * (2 ^ 1)) + (Led(7).Value * (2 ^ 0))) '组合按钮键值
If (memadd0(0).Value = True) Then '地址0
If (USBIO_MemWriteAddr0(mIndex, mBuf(0), mLen) = False) Then
MsgBox "发送LED状态值失败!", vbExclamation, "USB2ISP DEMO"
End If
ElseIf (memadd1(1).Value = True) Then
If (USBIO_MemWriteAddr1(mIndex, mBuf(0), mLen) = False) Then
MsgBox "发送LED状态值失败!", vbExclamation, "USB2ISP DEMO"
End If
End If
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub memRead0_Click()
Dim mLen As Long
Dim buffer As arrRBuffer
mLen = HexToBcd(memLen0.Text)
If (mLen <= 0) Then
MsgBox "请输入读取长度", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
If (mOpen = True) Then
On Error Resume Next
If (USBIO_MemReadAddr0(mIndex, buffer, mLen)) Then
Dim buff As String
Dim i As Long
buff = ""
For i = 0 To mLen - 1 Step 1
DoEvents
buff = buff & Hex2bit(buffer.buf(i)) + " "
Next i
memData0.Text = buff
Else
MsgBox "MEM读数据块0失败! ", vbExclamation, "USB2ISP DEMO"
End If
memLen0.Text = Hex(mLen)
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub memRead1_Click()
Dim mLen As Long
Dim buffer As arrRBuffer
mLen = HexToBcd(memLen1.Text)
If (mLen <= 0) Then
MsgBox "请输入读数据长度", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
If (mOpen = True) Then
If (USBIO_MemReadAddr1(mIndex, buffer, mLen)) Then
Dim buff As String
Dim i As Long
For i = 0 To mLen - 1
buff = buff & Hex2bit(buffer.buf(i)) + " "
Next i
memData1.Text = buff
Else
MsgBox "MEM读数据块1失败! ", vbExclamation, "USB2ISP DEMO"
End If
memLen1.Text = Hex(mLen)
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub memWrite0_Click()
Dim mLen As Long
Dim buffer As arrRBuffer
mLen = HexToBcd(memLen0.Text)
If (mLen <= 0 Or Len(memData0.Text) = 0) Then
MsgBox "请输入要写的数据,长度!", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
If (mLen > Len(memData0.Text) / 2) Then
mLen = Len(memData0.Text) / 2
End If
Call mStrtoVal(memData0.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据
If (mOpen = True) Then
If (USBIO_MemWriteAddr0(mIndex, buffer, mLen) = False) Then
MsgBox "MEM写数据块0失败!", vbExclamation, "USB2ISP DEMO"
End If
memLen0.Text = Hex(mLen)
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub memWrite1_Click()
Dim mLen As Long
Dim buffer As arrRBuffer
mLen = HexToBcd(memLen1.Text)
If (mLen <= 0 Or Len(memData1.Text) = 0) Then
MsgBox "请输入要写入的数据,长度!", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
If (mLen > Len(memData1.Text) / 2) Then
mLen = Len(memData1.Text) / 2
End If
Call mStrtoVal(memData1.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据
If (mOpen = True) Then
If (USBIO_MemWriteAddr1(mIndex, buffer, mLen) = False) Then
MsgBox "MEM写数据块0失败!", vbExclamation, "USB2ISP DEMO"
End If
memLen1.Text = Hex(mLen)
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub Option1_Click(Index As Integer)
End Sub
Private Sub SSTab1_Click(PreviousTab As Integer)
If (mOpen = True) And (SSTab1.Tab = 4) Then
Call evtbtrefresh_Click
Call Led_Click(0)
End If
End Sub
Private Sub StreamICRW_Click()
Dim mWRLen As Long
Dim mRdLen As Long
Dim iBuff As arrRBuffer
Dim buffer As arrRBuffer
mWRLen = HexToBcd(I2CWRLen.Text)
mRdLen = HexToBcd(I2CRDLen.Text)
'----------------------------------------
If (I2CM(0).Value = True) Then
If (USBIO_SetStream(mIndex, &H80) = False) Then
MsgBox "设置I2C时钟 = 20KHz失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
ElseIf (I2CM(1).Value = True) Then
If (USBIO_SetStream(mIndex, &H81) = False) Then
MsgBox "设置I2C时钟 = 100KHz失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
ElseIf (I2CM(2).Value = True) Then
If (USBIO_SetStream(mIndex, &H82) = False) Then
MsgBox "设置I2C时钟 = 400KHz失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
ElseIf (I2CM(3).Value = True) Then
If (USBIO_SetStream(mIndex, &H83) = False) Then
MsgBox "设置I2C时钟 = 750KHz失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
End If
'----------------------------------------
If (mWRLen > 0 And I2CWRBuf.Text = "") Then
MsgBox "请输入要写的数据,长度!", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
If ((mWRLen = 0) And (mRdLen = 0)) Then
MsgBox "请输入读数据所需的长度!", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
If (mWRLen > Len(Trim(I2CWRBuf.Text)) \ 2) Then
mWRLen = Len(Trim(I2CWRBuf.Text)) \ 2
End If
Call mStrtoVal(I2CWRBuf.Text, buffer, mWRLen) '将输入的十六进制格式字符数据转成数值数据
If (mOpen = True) Then
If (USBIO_StreamI2C(mIndex, mWRLen, buffer, mRdLen, iBuff) = False) Then
MsgBox "I2C流模式读写数据失败!", vbExclamation, "USB2ISP DEMO"
Else
If (mRdLen > 0) Then '有数据返回
Dim buff As String
Dim i As Long
For i = 0 To mRdLen - 1
buff = buff & Hex2bit(iBuff.buf(i)) + " "
Next
I2CRDBuf.Text = buff
End If
End If
I2CWRLen.Text = Hex(mWRLen)
I2CRDLen.Text = Hex(mRdLen)
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub StreamSPIRW_Click()
Dim mWRLen As Long
'Dim mRdLen As Long
Dim ioBuff As arrRBuffer
'Dim iBuff As arrRBuffer
'Dim buffer As arrRBuffer
mWRLen = HexToBcd(SPIWRLen.Text)
'mRdLen = HexToBcd(I2CRDLen.Text)
Dim mTheFirst As Boolean
mTheFirst = True
'If (mTheFirst) Then
' If (USBIO_SetStream(mIndex, &H81) = False) Then
' MsgBox "设置SPI模式失败!", vbExclamation, "USB2ISP DEMO"
' Else
' mTheFirst = False
'Exit Sub
' End If
'End If
'----------------------------------------
If (SPIMSB(0).Value = True) Then
If (USBIO_SetStream(mIndex, &H81) = False) Then
MsgBox "设置SPI高位在前模式失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
ElseIf (SPILSB(1).Value = True) Then
If (USBIO_SetStream(mIndex, &H1) = False) Then
MsgBox "设置SPI低位在前模式失败! ", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
End If
'----------------------------------------
If (mWRLen > 0 And SPIWRBuf.Text = "") Then
MsgBox "请输入要准备传输的数据字节数!", vbExclamation, "USB2ISP DEMO"
Exit Sub
End If
'If ((mWRLen = 0) And (mRdLen = 0)) Then
' MsgBox "请输入读数据所需的长度!", vbExclamation, "USB2ISP DEMO"
' Exit Sub
'End If
If (mWRLen > Len(Trim(SPIWRBuf.Text)) \ 2) Then
mWRLen = Len(Trim(SPIWRBuf.Text)) \ 2
End If
Call mStrtoVal(SPIWRBuf.Text, ioBuff, mWRLen) '将输入的十六进制格式字符数据转成数值数据
If (mOpen = True) Then
If (USBIO_StreamSPI4(mIndex, &H80, mWRLen, ioBuff) = False) Then
MsgBox "SPI流模式读写数据失败!", vbExclamation, "USB2ISP DEMO"
Else
If (mWRLen > 0) Then '有数据返回
Dim buff As String
Dim i As Long
For i = 0 To mWRLen - 1
buff = buff & Hex2bit(ioBuff.buf(i)) + " "
Next
SPIWRBuf.Text = buff
End If
End If
SPIWRLen.Text = Hex(mWRLen)
'I2CRDLen.Text = Hex(mRdLen)
Else
MsgBox "设备未打开!", vbExclamation, "USB2ISP DEMO"
End If
End Sub
Private Sub USBIO_NOTIFY_ROUTINE_KeyUp(KeyCode As Integer, Shift As Integer) '设备插拔通知处理程序
Dim iEventStatus As Long
iEventStatus = KeyCode '插拔事件
If (iEventStatus = USBIO_DEVICE_ARRIVAL) Then ' 设备插入事件,已经插入
If (USBIO_OpenDevice(mIndex) = INVALID_HANDLE_VALUE) Then
MsgBox "打开设备失败!", vbOK, "USB2ISP DEMO"
mOpen = False
Else
mOpen = True '打开成功
End If
ElseIf (iEventStatus = USBI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -