逐步指导用VBA做串口通信解决方法

fieldset{padding:10px;}

逐步指导用VBA做串口通信请高手指导做一个VBA串口通信:手头上有一个称重仪,需要把仪器的输出数据记录并保存在EXCEL文档内,并将数据点连起来生成实时重量-时间图。称重仪通信协议是:A/D转换速度: 40次/秒,串口的属性-2400,n,8,1,波特率可调。通过串口通讯助手得出输出格式为16进制“3D 30 2E 39 30 30 30 20”翻译过来为“= 0 . 9 0 0 0 空格”,所以有效数值为第2位至第7位。硬件已经接好。请高手一步一步教我怎样用VBA做这个程序,用实例了解VBA的应用,谢谢!——解决方案——————————————————–这个是用VBA写的,用MSComm控件实现。Private Sub btn_Close_Click()MSComm1.PortOpen = False ‘打开串口btn_Start.Enabled = True ‘连接按钮响应btn_Close.Enabled = False ‘断开按钮变灰End SubPrivate Sub btn_exit_Click()If MSComm1.PortOpen = True Then ‘如果串口被打开MSComm1.PortOpen = False ‘关闭按钮End IfUnload UserForm1 ‘关闭窗体End SubPrivate Sub btn_Start_Click()iniMSComm ‘对串口控件设置MSComm1.PortOpen = Truebtn_Close.Enabled = Truebtn_Start.Enabled = FalseEnd SubPrivate Sub iniMSComm() ‘对串口控件设置MSComm1.CommPort = 1 ‘占用的串口号,1表示COM1MSComm1.Settings = "115200,n,8,1" ‘这个自己根据自己的情况设置MSComm1.RThreshold = 1MSComm1.InputLen = 0’MSComm1.PortOpen = True’这句话放到连接按钮事件中去MSComm1.InputMode = comInputModeTextMSComm1.RTSEnable = TrueMSComm1.InBufferCount = 0End SubPrivate Sub MSComm1_OnComm() ‘事件处理Dim t1 As Long, com_string As StringStatic i As Integert1 = TimerSelect Case MSComm1.CommEventCase comEvReceive ‘如果接收到数据则执行下列语句MSComm1.RThreshold = 0DoDoEventsLoop While Timer – t1 < 0.1com_string = MSComm1.InputMSComm1.RThreshold = 1i = i + 1: If i > 255 Then i = 1Application.Cells(3, i).Value = com_string ‘写到Excel中去txtRec.Text = txtRec.Text + com_string ‘写到文本框中去End SelectEnd Sub你可以这样理解 impossible(不可能)–I'm possible (我是可能的)。

逐步指导用VBA做串口通信解决方法

相关文章:

你感兴趣的文章:

标签云: