版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Dim OutputAscii As BooleanDim InputString As StringDim OutputString As String'= =' 变量定义'= =Option Explicit ' 强制显式声明Dim ComSwitch As Boolean ' 串口开关状态判断Dim FileData As String ' 要发送的文件暂存Dim SendCount As Long ' 发送数据字节计数器Dim ReceiveCount As Long ' 接收数据字节计数器Dim InputSignal
2、 As String ' 接收缓冲暂存Dim OutputSignal As String ' 发送数据暂存Dim DisplaySwitch As Boolean ' 显示开关Dim ModeSend As Boolean ' 发送方式判断Dim Savetime As Single ' 时间数据暂存 延时用Dim SaveTextPath As String ' 保存文本路径' 网页超链接申明Private Declare Function ShellExecute Lib "shell32.dll" Alias
3、"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long As LongPrivate Sub CloseCom( ' 关闭串口On Error GoTo ErrIf MSComm.PortOpen = True Then MSComm.PortOpen = False ' 先
4、判断串口是否打 开,如果打开则先关闭txtstatus.Text = "STATUS:COM Port Cloced" ' 串口状态显示mnuconnect.Caption = "断开串口 "cmdswitch.Caption = "打开串口 "'ImgSwitch.Picture = LoadPicture("f:我的 VB串口调试软件 图片 guan.jpg" ' 显示串口已经关闭 的图标ImgSwitchoff.Visible = TrueImgSwitchon.Visible = F
5、alseErr:End SubPrivate Sub UpdateStatus(If MSComm.PortOpen ThenStatusBar1.Panels(1.Text = "Connected"mnuautosend.Caption = "自动发送 "mnuconnect.Caption = "断开串口 "ElseStatusBar1.Panels(1.Text = "断开串口 "mnuautosend.Caption = "disautosend"mnuconnect.Caption
6、= "打开串口 "End IfStatusBar1.Panels(2.Text = "COM" & MSComm.CommPortStatusBar1.Panels(3.Text = MSComm.SettingsIf (OutputAscii ThenStatusBar1.Panels(4 = "ASCII"ElseStatusBar1.Panels(4 = "HEX"End If'On Error GoTo ErrIf ChkAutoSend.Value = 1 Then ' 如果有效则
7、,自动发送If MSComm.PortOpen = True Then ' 串口状态判断mnuautosend.Caption = "Dis&autosend"TmrAutoSend.Interval = Val(TxtAutoSendTime ' 设置自动发送时间TmrAutoSend.Enabled = True ' 打开自动发送定时器Elsemnuautosend.Caption = "autosend"ChkAutoSend.Value = 0 ' 串口没有打开去掉自动发送MsgBox "串口没有
8、打开,请打开串口 ", 48, "串口调试助手 " ' 如果串口没有被打开,提 示打开串口End IfElseIf ChkAutoSend.Value = 0 Then ' 如果无效,不发送mnuautosend.Caption = "autosend"TmrAutoSend.Enabled = False ' 关闭自动发送定时器End IfErr:End SubPrivate Sub CmdSendFile_Click( '发送文件On Error GoTo ErrIf MSComm.PortOpen = Tr
9、ue Then ' 如果串口打开了,则可以发送数 据If FileData = "" Then ' 判断发送数据是否为空MsgBox "发送的文件为空 ", 16, "串口调试助手 " ' 发送数据为空则提示ElseIf ChkHexReceive.Value = 1 Then ' 如果按十六进制接收时,按二进制 发送,否则按文本发送MSComm.InputMode = comInputModeBinary ' 二进制发送ElseMSComm.InputMode = comInputModeTe
10、xt ' 文本发送End IfMSComm.Output = Trim(FileData ' 发送数据ModeSend = True ' 设置文本发送方式End IfElseMsgBox "串口没有打开,请打开串口 ", 48, "串口调试助手 " ' 如果串口没有被打开,提 示打开串口End IfErr:End SubPrivate Sub Comm_initial(Port As Byte, BaudRate As String, ParityBit As String, DataBit As Integer, Sto
11、pBit As IntegerOn Error GoTo ErrorTrap ' 错误则跳往错误处理If MSComm.PortOpen = True Then MSComm.PortOpen = False ' 先判断串口是否打 开,如果打开则先关闭MSComm.CommPort = Port ' 设定端口MSComm.Settings = BaudRate & "," & ParityBit & "," & DataBit & "," & StopBit
12、39; 设置波特率,无校 验, 8位数据位, 1位停止位MSComm.InBufferSize = 1024 ' 设置接收缓冲区为 1024字节 MSComm.OutBufferSize = 4096 ' 设置发送缓冲区为 4096字节 MSComm.InBufferCount = 0 ' 清空输入缓冲区MSComm.OutBufferCount = 0 ' 清空输出缓冲区MSComm.SThreshold = 1 ' 发送缓冲区空触发发送事件MSComm.RThreshold = 1 ' 每 X 个字符到接收缓冲区引起触发接 收事件MSComm
13、.OutBufferCount = 0 ' 清空发送缓冲区MSComm.InBufferCount = 0 ' 滑空接收缓冲MSComm.PortOpen = True ' 打开串口If MSComm.PortOpen = True Thentxtstatus.Text = "STATUS :" & cbocom.Text & " OPEND , " & cbobaudrate.Text & "," & Left(cboparitybit.Text, 1 & &q
14、uot;," & cbodatabit.Text & "," & cbostopbit.TextElsetxtstatus.Text = "STATUS:COM Port Cloced" ' 串口没打开时,提示串口关闭 状态End IfExit SubErrorTrap: ' 错误处理Select Case Err.NumberCase comPortAlreadyOpen ' 如果串口已经打开,则提示MsgBox "没有发现此串口或被占用 ", 49, "串口调试助
15、手 "CloseComCase ElseMsgBox "没有发现此串口或被占用 ", 49, "串口调试助手 "CloseComEnd SelectErr.ClearEnd SubPrivate Sub Comm_reSet(Port As Byte, BaudRate As String, ParityBit As String, DataBit As Integer,StopBit As IntegerOn Error GoTo ErrorHint ' 错误则跳往错误处理If MSComm.PortOpen = True Then
16、MSComm.PortOpen = False ' 先判断串口是否打 开,如果打开则先关闭MSComm.CommPort = Port ' 设定端口MSComm.Settings = BaudRate & "," & ParityBit & "," & DataBit & "," & StopBit ' 设置波特率,无校 验, 8位数据位, 1位停止位MSComm.PortOpen = True ' 打开串口If MSComm.PortOpen = Tru
17、e Thencmdswitch.Caption = "关闭串口 "'ImgSwitch.Picture = LoadPicture("f:我的 VB串口调试软件 图片 kai.jpg" ' 显示串口已经打开的 图标ImgSwitchoff.Visible = Falsemnuconnect.Caption = "disconnect"ImgSwitchon.Visible = Truetxtstatus.Text = "STATUS :" & cbocom.Text & "
18、 OPEND , " & cbobaudrate.Text & "," & Left(cboparitybit.Text, 1 & "," & cbodatabit.Text & "," & cbostopbit.TextElsecmdswitch.Caption = "打开串口 "'ImgSwitch.Picture = LoadPicture("f:我的 VB串口调试软件 图片 guan.jpg" ' 显示串口
19、已经关闭 的图标ImgSwitchon.Visible = FalseImgSwitchoff.Visible = Truetxtstatus.Text = "STATUS:COM Port Cloced"End IfExit SubErrorHint: ' 错误处理Select Case Err.NumberCase comPortAlreadyOpen ' 如果串口已经打开,则提示MsgBox "没有成功,请重试 ", vbExclamation, "串口调试助手 "CloseCom ' 调用关闭串口函数C
20、ase ElseMsgBox "没有成功,请重试 ", vbExclamation, "串口调试助手 "CloseCom ' 调用关闭串口函数End SelectErr.Clear ' 清除 Err 对象的属性End SubPrivate Sub Command1_Click(End SubPrivate Sub cbobaudrate_Change(Call Comm_reSet(Val(Mid(cbocom.Text, 4, 2, cbobaudrate.Text, Left(cboparitybit.Text, 1, cbodata
21、bit.Text, cbostopbit.Text ' 串口设置End SubPrivate Sub cbocom_Change(Call Comm_reSet(Val(Mid(cbocom.Text, 4, 2, cbobaudrate.Text, Left(cboparitybit.Text, 1, cbodatabit.Text, cbostopbit.Text ' 串口设置End SubPrivate Sub cbodatabit_Change(Call Comm_reSet(Val(Mid(cbocom.Text, 4, 2, cbobaudrate.Text, Le
22、ft(cboparitybit.Text, 1, cbodatabit.Text, cbostopbit.Text ' 串口设置End SubPrivate Sub cboparitybit_Change(Call Comm_reSet(Val(Mid(cbocom.Text, 4, 2, cbobaudrate.Text, Left(cboparitybit.Text, 1, cbodatabit.Text, cbostopbit.Text ' 串口设置End SubPrivate Sub cbostopbit_Change(Call Comm_reSet(Val(Mid(c
23、bocom.Text, 4, 2, cbobaudrate.Text, Left(cboparitybit.Text, 1, cbodatabit.Text, cbostopbit.Text ' 串口设置End SubPrivate Sub chkautosend_Click(On Error GoTo ErrIf ChkAutoSend.Value = 1 Then ' 如果有效则,自动发送If MSComm.PortOpen = True Then ' 串口状态判断mnuautosend.Caption = "取消自动发送 "TmrAutoSen
24、d.Interval = Val(TxtAutoSendTime ' 设置自动发送时间TmrAutoSend.Enabled = True ' 打开自动发送定时器ElseChkAutoSend.Value = 0 ' 串口没有打开去掉自动发送MsgBox "串口没有打开,请打开串口 ", 48, "串口调试助手 " ' 如果串口没有被打开,提 示打开串口End IfElseIf ChkAutoSend.Value = 0 Then ' 如果无效,不发送mnuautosend.Caption = "自动发送
25、数据 "TmrAutoSend.Enabled = False ' 关闭自动发送定时器End IfErr:End SubPrivate Sub cmdamend_Click(Dim spShell As Object ' 定义存放引用对象的变量Dim spFolder As Object ' 定义存放引用对象的变量Dim spFolderItem As Object ' 定义存放引用对象的变量Dim spPath As String ' 定义存放的变量On Error GoTo Err ' 错误处理,防止取消打开文件夹时报错 Const
26、 WINDOW_HANDLE = 0Const NO_OPTIONS = 0Set spShell = CreateObject("Shell.Application"Set spFolder = spShell.BrowseForFolder(WINDOW_HANDLE, " 选 择 目 录 :", NO_OPTIONS, "C:Scripts"Set spFolderItem = spFolder.SelfspPath = spFolderItem.PathspPath = Replace(spPath, ""
27、, "" ' Replace函数的返回值是一个字符串 txtsavepath.Text = spPath ' 把文件夹路径显示在标签上SaveTextPath = txtsavepath.Text ' 路径暂存Err:End SubPrivate Sub CmdClearCounter_Click(On Error GoTo ErrSendCount = 0 ' 发送计数器清零ReceiveCount = 0 ' 接收计数器清零txtRXcount.Text = "RX:" & 0 ' 接收计数tx
28、tTXcount.Text = "TX:" & 0 ' 发送计数Err:End SubPrivate Sub cmdclearrecieve_Click(TxtReceive.Text = ""End SubPrivate Sub cmdclearsend_Click(txtsend.Text = ""End SubPrivate Sub CmdHelp_Click(FrmHelp.ShowEnd SubPrivate Sub CmdQuit_Click(If MSComm.PortOpen = True Then M
29、SComm.PortOpen = False ' 先判断串口是否打 开,如果打开则先关闭Unload Me ' 卸载窗体,并退出程序EndEnd SubPrivate Sub cmdsavedisp_Click(On Error GoTo Err ' 错误处理SaveTextPath = txtsavepath ' 路径暂存Open txtsavepath & "1.txt" For Output As #1 ' 打开文件' 不存在的话 会创建文件 , 如已存在 会覆盖' output 改为 append 为追
30、加' 改为 input 则只读Print #1, Year(Date & "年 " & Month(Date & "月 " & Day(Date & _" 日 " & Hour(Time & "时 " & Minute(Time & "分 " & Second(Time & _" 秒 " & vbCrLf & TxtReceive.Text + vbCrLf
31、9; 把接收区的文本保存 文本前加上 保存时间 (0000年 00月 00日 00时 00分 00秒' vbcrlf 为回车换行Close #1 ' 关闭文件txtsavepath = "OK,1.txt Save" ' 提示保存成功cmdsavedisp.Enabled = FalseSavetime = Timer ' 记下开始的时间While Timer < Savetime + 5 ' 循环等待 5 - 要延时的时间DoEvents ' 转让控制权,以便让操作系统处理其它的事 件。Wendtxtsavepath
32、= SaveTextPath ' 显示保存路径cmdsavedisp.Enabled = TrueErr:End Sub'= =' 选择要发送的文件并放入内存中'= =Private Sub CmdSelectFile_Click( ' 选择要发送的文件On Error GoTo Err ' 错误处理CommonDialog1.Flags = cdlCFBothCommonDialog1.ShowOpenTxtSendPath.Text = CommonDialog1.FileName ' 把 打 开 的 文 件 名 给 于 TxtSendPathOpen TxtSendPa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 26845-2026地毯毯面外观变化的评价
- 上海外国语大学贤达经济人文学院《社会保险学》2025-2026学年期末试卷
- 沈阳药科大学《人际传播与沟通》2025-2026学年期末试卷
- 内蒙古农业大学《马克思主义发展史》2025-2026学年期末试卷
- 乌海职业技术学院《语言学纲要》2025-2026学年期末试卷
- 四平职业大学《人民调解实务》2025-2026学年期末试卷
- 山西电子科技学院《材料成形工艺基础》2025-2026学年期末试卷
- 内蒙古师范大学《经济地理学》2025-2026学年期末试卷
- 苏州科技大学《当代英国概况》2025-2026学年期末试卷
- 山西财经大学《理论新闻传播学导论》2025-2026学年期末试卷
- 2025-2030中国自行车行业市场深度调研及发展趋势与投资前景预测研究报告
- 2026年陕西延长石油集团有限责任公司校园招聘笔试备考题库及答案解析
- 工会2025年度工作报告国企2025工会工作报告
- 2026年及未来5年市场数据中国税务大数据行业市场全景分析及投资前景展望报告
- 2026年中考英语专题复习:5个主题作文 预测练习题(含答案+范文)
- 2026年陕西能源职业技术学院单招职业适应性考试题库附参考答案详解(完整版)
- 24J113-1 内隔墙-轻质条板(一)
- 小区道路及室外管网配套工程施工设计方案
- 轨道交通防水工程施工质量验收标准
- 2026年乌海职业技术学院单招职业技能测试题库及一套答案详解
- 华南地区地理知识
评论
0/150
提交评论