⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.vb

📁 USB2I2C USB2SPI USB2ISP资料开发包
💻 VB
📖 第 1 页 / 共 2 页
字号:
		'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 + -