基本信息
源码名称:vb 串口调试软件源代码
源码大小:5.88KB
文件格式:.rar
开发语言:ASP
更新时间:2019-06-23
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
串口调试助手的源代码,可以实现数据的接收和发送;二是实现点击某个按钮发送指定数据的应用程序的源代码。代码都是含有详细的中文注释,可以直接编译通过,且内含可执行文件都是可以直接运行的。适合作为串口助手开发与原理了解的参考,希望本资源对您有用!
串口调试助手的源代码,可以实现数据的接收和发送;二是实现点击某个按钮发送指定数据的应用程序的源代码。代码都是含有详细的中文注释,可以直接编译通过,且内含可执行文件都是可以直接运行的。适合作为串口助手开发与原理了解的参考,希望本资源对您有用!
VERSION 5.00 Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX" Begin VB.Form Form1 Caption = "串口" ClientHeight = 5760 ClientLeft = 60 ClientTop = 450 ClientWidth = 7155 Icon = "串口.frx":0000 LinkTopic = "Form1" ScaleHeight = 5760 ScaleWidth = 7155 StartUpPosition = 3 '窗口缺省 Begin MSCommLib.MSComm MSComm1 Left = 5640 Top = 3960 _ExtentX = 1005 _ExtentY = 1005 _Version = 393216 DTREnable = -1 'True End Begin VB.CommandButton Command7 Caption = "退出" BeginProperty Font Name = "宋体" Size = 9 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 495 Left = 360 TabIndex = 20 Top = 5160 Width = 735 End Begin VB.CommandButton Command6 Caption = "发送" Height = 375 Left = 1080 TabIndex = 19 Top = 4680 Width = 615 End Begin VB.TextBox Text2 Height = 1335 Left = 1680 MultiLine = -1 'True TabIndex = 18 Top = 4200 Width = 5415 End Begin VB.CommandButton Command5 Caption = "清空重填" Height = 375 Left = 0 TabIndex = 15 Top = 4320 Width = 1095 End Begin VB.CommandButton Command4 Caption = "保存显示数据" Height = 375 Left = 0 TabIndex = 13 Top = 3360 Width = 1335 End Begin VB.CommandButton Command3 Caption = "停止显示" Height = 375 Left = 0 TabIndex = 12 Top = 2640 Width = 1095 End Begin VB.CommandButton Command2 Caption = "清空接收区" Height = 375 Left = 0 TabIndex = 11 Top = 2160 Width = 1095 End Begin VB.TextBox Text1 Height = 3855 Left = 1680 MultiLine = -1 'True TabIndex = 10 Top = 240 Width = 5415 End Begin VB.CommandButton Command1 Caption = "关闭串口" Height = 375 Left = 600 TabIndex = 9 Top = 1680 Width = 1095 End Begin VB.OptionButton Option1 BackColor = &H000000FF& Height = 255 Left = 240 TabIndex = 8 Top = 1680 Value = -1 'True Width = 255 End Begin VB.ComboBox Combo4 Height = 300 ItemData = "串口.frx":030A Left = 840 List = "串口.frx":0314 TabIndex = 7 Text = " 1" Top = 1320 Width = 855 End Begin VB.ComboBox Combo3 Height = 300 ItemData = "串口.frx":0320 Left = 840 List = "串口.frx":032D TabIndex = 5 Text = " 8" Top = 960 Width = 855 End Begin VB.ComboBox Combo2 Height = 300 ItemData = "串口.frx":033D Left = 840 List = "串口.frx":0362 TabIndex = 3 Text = "9600" Top = 600 Width = 855 End Begin VB.ComboBox Combo1 Height = 300 ItemData = "串口.frx":03AC Left = 840 List = "串口.frx":03BC TabIndex = 1 Text = "COM1" Top = 240 Width = 855 End Begin VB.Label Label9 Caption = "十六进制" Height = 255 Left = 240 TabIndex = 22 Top = 3120 Width = 855 End Begin VB.Label Label8 Caption = "十六进制" Height = 255 Left = 240 TabIndex = 21 Top = 4800 Width = 855 End Begin VB.Label Label7 BorderStyle = 1 'Fixed Single Caption = "发送区" Height = 255 Left = 1080 TabIndex = 17 Top = 4320 Width = 615 End Begin VB.Label Label6 Caption = "C:\COMDATA" Height = 255 Left = 120 TabIndex = 16 Top = 3840 Width = 1215 End Begin VB.Label Label5 BorderStyle = 1 'Fixed Single Caption = "接收区" Height = 255 Left = 1080 TabIndex = 14 Top = 2400 Width = 615 End Begin VB.Label Label4 Caption = "停止位" Height = 255 Left = 240 TabIndex = 6 Top = 1320 Width = 615 End Begin VB.Label Label3 Caption = "数据位" Height = 255 Left = 240 TabIndex = 4 Top = 960 Width = 735 End Begin VB.Label Label2 Caption = "波特率" Height = 255 Left = 240 TabIndex = 2 Top = 600 Width = 615 End Begin VB.Label Label1 Caption = "串口" Height = 255 Left = 360 TabIndex = 0 Top = 240 Width = 495 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Option Base 1 'Download by http://www.codefans.net Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim comport As Byte Dim rate As Long Dim data_cnt As Integer Dim stop_cnt As Integer Dim disp_on As Integer 'Dim mut As Boolean Dim bMSCommOpen As Boolean '串口打开标志 Private Sub com_change() Dim flag As Boolean On Error Resume Next Err.Clear If bMSCommOpen = False Then Exit Sub '初始化完成前本过程无效 flag = MSComm1.PortOpen If flag Then MSComm1.PortOpen = False '已打开先关闭 MSComm1.CommPort = comport '设置串行端口 MSComm1.Settings = CStr(rate) ",N," CStr(data_cnt) "," CStr(stop_cnt) '设置波特率及数据帧格式 MSComm1.PortOpen = True If Err.Number Then If Err.Number = 8002 Then MsgBox "串口" CStr(comport) "不存在!", vbOKOnly, "警告" If Err.Number = 8005 Then MsgBox "串口" CStr(comport) "已打开!", vbOKOnly, "警告" Option1.BackColor = RGB(0, 0, 0) Command1.Enabled = False Command6.Enabled = False Err.Clear Else Option1.BackColor = RGB(255, 0, 0) Command1.Enabled = True Command1.Caption = "关闭串口" Command6.Enabled = True End If End Sub Private Sub Combo1_click() comport = Combo1.ListIndex 1 com_change End Sub Private Sub Combo2_click() Select Case Combo2.ListIndex Case 0 rate = 300 Case 1 rate = 600 Case 2 rate = 1200 Case 3 rate = 2400 Case 4 rate = 4800 Case 5 rate = 9600 Case 6 rate = 19200 Case 7 rate = 38400 Case 8 rate = 56000 Case 9 rate = 57600 Case 10 rate = 115200 End Select com_change End Sub Private Sub Combo3_click() data_cnt = 8 - Combo3.ListIndex com_change End Sub Private Sub Combo4_click() stop_cnt = 1 Combo4.ListIndex com_change End Sub Private Sub Command1_Click() If Command1.Caption = "关闭串口" Then MSComm1.PortOpen = False Command1.Caption = "打开串口" Option1.BackColor = RGB(0, 0, 0) Else MSComm1.PortOpen = True Command1.Caption = "关闭串口" Option1.BackColor = RGB(255, 0, 0) End If End Sub Private Sub Command2_Click() Text1.Text = "" End Sub Private Sub Command3_Click() Static f2 As Byte If f2 = 0 Then disp_on = 0 f2 = 1 Command3.Caption = "继续显示" Else disp_on = 0 f2 = 0 Command3.Caption = "停止显示" End If End Sub Private Sub Command4_Click() Dim time As Date time = Now() Open "c:\comdata.txt" For Output As #5 Print #5, time Print #5, Text1.Text Close #5 End Sub Private Sub Command5_Click() Text2.Text = "" End Sub Public Function IsHex(c As String) As Integer If c >= "0" And c <= "9" Then IsHex = Val(c) - Val("0") ElseIf c >= "a" And c <= "f" Then IsHex = Asc(c) - Asc("a") 10 ElseIf c >= "A" And c <= "F" Then IsHex = Asc(c) - Asc("A") 10 Else IsHex = 16 End If End Function Private Sub Command6_Click() 'Dim s As String 'Dim l As Integer 'Dim i As Integer, j As Integer, cnt As Integer 'Dim a As Integer ' 'Dim send_buf() As Byte ' 'ReDim send_buf(1024) ' 'cnt = 0 's = Trim(Text2.Text) 'l = Len(s) 'Do While (l) ' Do Until IsHex(Left(s, 1)) <> 16 ' l = l - 1 ' If l = 0 Then Exit Do ' s = Right(s, l) ' Loop ' a = IsHex(Left(s, 1)) ' ' l = l - 1 ' s = Right(s, l) ' ' If l <> 0 And IsHex(Left(s, 1)) <> 16 Then ' a = a * 16 IsHex(Left(s, 1)) ' l = l - 1 ' s = Right(s, l) ' End If ' cnt = cnt 1 ' send_buf(cnt) = a 'Loop ' 'If cnt > 128 Then cnt = 128 'ReDim Preserve send_buf(cnt) MSComm1.Output = "?" 'send_buf() MSComm1.Output = vbCr End Sub Private Sub Command7_Click() Unload Me End Sub Private Sub Form_Activate() On Error Resume Next bMSCommOpen = False Combo1.ListIndex = 3 Combo2.ListIndex = 10 Combo3.ListIndex = 0 Combo4.ListIndex = 0 bMSCommOpen = True MSComm1.PortOpen = True If Err.Number Then MsgBox "串口1已打开!", vbOKOnly, "警告" Option1.BackColor = RGB(0, 0, 0) Command1.Enabled = False Command6.Enabled = False Err.Clear End If 'Command1.SetFocus End Sub Private Sub Form_Load() MSComm1.CommPort = 1 '设置串行端口com1 MSComm1.Settings = "9600,N,8,1" '设置波特率及数据帧格式 MSComm1.InputLen = 0 '读取接收缓冲区的所有字符 MSComm1.InBufferSize = 4000 '数据接受缓冲区大小为4000字节 MSComm1.OutBufferSize = 4000 '数据发送缓冲区大小为4000字节 MSComm1.RThreshold = 1 '每10位数据到接收缓冲区都触发接收事件 MSComm1.SThreshold = 1 '发送缓冲区空触发发送事件 MSComm1.InputMode = comInputModeText '字节模式 'MSComm1.InputMode = comInputModeBinary'设定 InputMode 以读取二进位资料 disp_on = 1 comport = 1 rate = 9600 data_cnt = 8 stop_cnt = 1 End Sub Private Sub MSComm1_OnComm() Static cnt As Integer Dim receive_cnt As Integer Dim i As Integer Dim Buffer As Variant Dim Arr() As Byte Dim s As String 'Select Case MSComm1.CommEvent 'Case comEvReceive 'receive_cnt = MSComm1.InBufferCount '接收缓冲区的字节数 ' 往暂存区存二进位资料 'Buffer = MSComm1.Input ' 指定给位元组阵列以便处理 'Arr = Buffer ' 's = "" 'For i = 0 To receive_cnt - 1 ' 'If Arr(i) > 15 Then 's = s Hex(Arr(i)) " " 'Else 's = s "0" Hex(Arr(i)) " " 'End If ' 'cnt = cnt 1 ' 'Next i Text1.Text = MSComm1.Input 'Text1.Text & s 'If cnt >= 300 Then ' Text1.Text = "" ' cnt = 0 ' Exit Sub 'End If 'Case comEvSend ' 'End Select End Sub