📄 frmmain.vb
字号:
'UPGRADE_WARNING: 结构 buffer 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
Dim buffer As arrRBuffer
mLen = HexToBcd((memLen0.Text))
If (mLen <= 0) Then
MsgBox("请输入读取长度", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
Dim buff As String
Dim i As Integer
If (mOpen = True) Then
On Error Resume Next
'UPGRADE_WARNING: 未能解析对象 buffer 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
If (USBIO_MemReadAddr0(mIndex, buffer, mLen)) Then
buff = ""
For i = 0 To mLen - 1 Step 1
System.Windows.Forms.Application.DoEvents()
buff = buff & Hex2bit(buffer.buf(i)) & " "
Next i
memData0.Text = buff
Else
MsgBox("MEM读数据块0失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
memLen0.Text = Hex(mLen)
Else
MsgBox("设备未打开!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
End Sub
Private Sub memRead1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles memRead1.Click
Dim mLen As Integer
'UPGRADE_WARNING: 结构 buffer 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
Dim buffer As arrRBuffer
mLen = HexToBcd((memLen1.Text))
If (mLen <= 0) Then
MsgBox("请输入读数据长度", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
Dim buff As String
Dim i As Integer
If (mOpen = True) Then
'UPGRADE_WARNING: 未能解析对象 buffer 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
If (USBIO_MemReadAddr1(mIndex, buffer, mLen)) Then
For i = 0 To mLen - 1
buff = buff & Hex2bit(buffer.buf(i)) & " "
Next i
memData1.Text = buff
Else
MsgBox("MEM读数据块1失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
memLen1.Text = Hex(mLen)
Else
MsgBox("设备未打开!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
End Sub
Private Sub memWrite0_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles memWrite0.Click
Dim mLen As Integer
'UPGRADE_WARNING: 结构 buffer 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
Dim buffer As arrRBuffer
mLen = HexToBcd((memLen0.Text))
If (mLen <= 0 Or Len(memData0.Text) = 0) Then
MsgBox("请输入要写的数据,长度!", MsgBoxStyle.Exclamation, "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
'UPGRADE_WARNING: 未能解析对象 buffer 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
If (USBIO_MemWriteAddr0(mIndex, buffer, mLen) = False) Then
MsgBox("MEM写数据块0失败!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
memLen0.Text = Hex(mLen)
Else
MsgBox("设备未打开!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
End Sub
Private Sub memWrite1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles memWrite1.Click
Dim mLen As Integer
'UPGRADE_WARNING: 结构 buffer 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
Dim buffer As arrRBuffer
mLen = HexToBcd((memLen1.Text))
If (mLen <= 0 Or Len(memData1.Text) = 0) Then
MsgBox("请输入要写入的数据,长度!", MsgBoxStyle.Exclamation, "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
'UPGRADE_WARNING: 未能解析对象 buffer 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
If (USBIO_MemWriteAddr1(mIndex, buffer, mLen) = False) Then
MsgBox("MEM写数据块0失败!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
memLen1.Text = Hex(mLen)
Else
MsgBox("设备未打开!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
End Sub
Private Sub Option1_Click(ByRef Index As Short)
End Sub
Private Sub SSTab1_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles SSTab1.SelectedIndexChanged
Static PreviousTab As Short = SSTab1.SelectedIndex()
If (mOpen = True) And (SSTab1.SelectedIndex = 4) Then
Call evtbtrefresh_Click(evtbtrefresh, New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(0), New System.EventArgs())
End If
PreviousTab = SSTab1.SelectedIndex()
End Sub
Private Sub StreamICRW_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles StreamICRW.Click
Dim mWRLen As Integer
Dim mRdLen As Integer
'UPGRADE_WARNING: 结构 iBuff 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
Dim iBuff As arrRBuffer
'UPGRADE_WARNING: 结构 buffer 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
Dim buffer As arrRBuffer
mWRLen = HexToBcd((I2CWRLen.Text))
mRdLen = HexToBcd((I2CRDLen.Text))
'----------------------------------------
If (I2CM(0).Checked = True) Then
If (USBIO_SetStream(mIndex, &H80s) = False) Then
MsgBox("设置I2C时钟 = 20KHz失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
ElseIf (I2CM(1).Checked = True) Then
If (USBIO_SetStream(mIndex, &H81s) = False) Then
MsgBox("设置I2C时钟 = 100KHz失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
ElseIf (I2CM(2).Checked = True) Then
If (USBIO_SetStream(mIndex, &H82s) = False) Then
MsgBox("设置I2C时钟 = 400KHz失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
ElseIf (I2CM(3).Checked = True) Then
If (USBIO_SetStream(mIndex, &H83s) = False) Then
MsgBox("设置I2C时钟 = 750KHz失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
End If
'----------------------------------------
If (mWRLen > 0 And I2CWRBuf.Text = "") Then
MsgBox("请输入要写的数据,长度!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
If ((mWRLen = 0) And (mRdLen = 0)) Then
MsgBox("请输入读数据所需的长度!", MsgBoxStyle.Exclamation, "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) '将输入的十六进制格式字符数据转成数值数据
Dim buff As String
Dim i As Integer
If (mOpen = True) Then
'UPGRADE_WARNING: 未能解析对象 iBuff 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
'UPGRADE_WARNING: 未能解析对象 buffer 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
If (USBIO_StreamI2C(mIndex, mWRLen, buffer, mRdLen, iBuff) = False) Then
MsgBox("I2C流模式读写数据失败!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Else
If (mRdLen > 0) Then '有数据返回
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("设备未打开!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
End Sub
Private Sub StreamSPIRW_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles StreamSPIRW.Click
Dim mWRLen As Integer
'Dim mRdLen As Long
'UPGRADE_WARNING: 结构 ioBuff 中的数组可能需要先初始化才可以使用。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="814DF224-76BD-4BB4-BFFB-EA359CB9FC48"”
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).Checked = True) Then
If (USBIO_SetStream(mIndex, &H81s) = False) Then
MsgBox("设置SPI高位在前模式失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
ElseIf (SPILSB(1).Checked = True) Then
If (USBIO_SetStream(mIndex, &H1s) = False) Then
MsgBox("设置SPI低位在前模式失败! ", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Exit Sub
End If
End If
'----------------------------------------
If (mWRLen > 0 And SPIWRBuf.Text = "") Then
MsgBox("请输入要准备传输的数据字节数!", MsgBoxStyle.Exclamation, "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) '将输入的十六进制格式字符数据转成数值数据
Dim buff As String
Dim i As Integer
If (mOpen = True) Then
'UPGRADE_WARNING: 未能解析对象 ioBuff 的默认属性。 单击以获得更多信息:“ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"”
If (USBIO_StreamSPI4(mIndex, &H80s, mWRLen, ioBuff) = False) Then
MsgBox("SPI流模式读写数据失败!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
Else
If (mWRLen > 0) Then '有数据返回
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("设备未打开!", MsgBoxStyle.Exclamation, "USB2ISP DEMO")
End If
End Sub
Private Sub USBIO_NOTIFY_ROUTINE_KeyUp(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyEventArgs) Handles USBIO_NOTIFY_ROUTINE.KeyUp
Dim KeyCode As Short = eventArgs.KeyCode
Dim Shift As Short = eventArgs.KeyData \ &H10000 '设备插拔通知处理程序
Dim iEventStatus As Integer
iEventStatus = KeyCode '插拔事件
If (iEventStatus = USBIO_DEVICE_ARRIVAL) Then ' 设备插入事件,已经插入
If (USBIO_OpenDevice(mIndex) = INVALID_HANDLE_VALUE) Then
MsgBox("打开设备失败!", MsgBoxResult.OK, "USB2ISP DEMO")
mOpen = False
Else
mOpen = True '打开成功
End If
ElseIf (iEventStatus = USBIO_DEVICE_REMOVE) Then ' 设备拔出事件,已经拔出
USBIO_CloseDevice((mIndex))
mOpen = False
End If
enablebtn((mOpen)) '设备打开,按钮可用,设备没打开,按钮禁用
End Sub
Public Sub enablebtn(ByVal bEnable As Boolean) 'bEnable=true :各窗体按钮可用 ;=false:enable:各窗体按钮禁用
With Me
.eppRead0.Enabled = bEnable
.eppWrite0.Enabled = bEnable
.eppRead1.Enabled = bEnable
.eppWrite1.Enabled = bEnable
.memRead0.Enabled = bEnable
.memWrite0.Enabled = bEnable
.memRead1.Enabled = bEnable
.memWrite1.Enabled = bEnable
.StreamICRW.Enabled = bEnable
.StreamSPIRW.Enabled = bEnable
.eepromRdDate.Enabled = bEnable
.eepromWrDate.Enabled = bEnable
.evtbtrefresh.Enabled = bEnable
.Led(0).Enabled = bEnable
.Led(1).Enabled = bEnable
.Led(2).Enabled = bEnable
.Led(3).Enabled = bEnable
.Led(4).Enabled = bEnable
.Led(5).Enabled = bEnable
.Led(6).Enabled = bEnable
.Led(7).Enabled = bEnable
If (bEnable = True) Then '窗体标题显示
Me.Text = "USB2ISP **设备已插上"
Else
Me.Text = "USB2ISP **设备已拔出"
End If
End With
If (bEnable = True) Then '数字I/O窗口已初始化,刷新LED,按拔码开关状态
Call Led_CheckStateChanged(Led.Item(0), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(1), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(2), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(3), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(4), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(5), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(6), New System.EventArgs())
Call Led_CheckStateChanged(Led.Item(7), New System.EventArgs())
Call evtbtrefresh_Click(evtbtrefresh, New System.EventArgs())
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -