将串口接收到的数据保存到ecel文档

上传人:第*** 文档编号:99002707 上传时间:2019-09-16 格式:DOC 页数:10 大小:136.50KB
返回 下载 相关 举报
将串口接收到的数据保存到ecel文档_第1页
第1页 / 共10页
将串口接收到的数据保存到ecel文档_第2页
第2页 / 共10页
将串口接收到的数据保存到ecel文档_第3页
第3页 / 共10页
将串口接收到的数据保存到ecel文档_第4页
第4页 / 共10页
将串口接收到的数据保存到ecel文档_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《将串口接收到的数据保存到ecel文档》由会员分享,可在线阅读,更多相关《将串口接收到的数据保存到ecel文档(10页珍藏版)》请在金锄头文库上搜索。

1、一用VB DDE通讯!二1.启动excel从:工具-宏-Visual Basic 编辑器,打开excel VBA.2.在ThisWorkbook上右单击鼠标选择插入-用户窗体3.单击一下插入的窗体,单击菜单上的-工具-附加控件-选择Microsoft Communications Control, version 6.04.在窗体上添加mscomm1,添加commandButton15.单串口机子,短接rs232的2脚和3脚,双串口机子用232线连接两个串口,注意2、3线交叉,我这里以单串口短接举例。6.复制以下代码到你的窗体里:VB codeVBA代码Private Sub CommandB

2、utton1_Click() MSComm1.Output = BEG1ENDEnd SubPrivate Sub MSComm1_OnComm()Dim t1 As Long, com_String As StringStatic i As Integert1 = TimerSelect Case MSComm1.CommEvent Case comEvReceive 收到 RThreshold定义的字符数1字节 MSComm1.RThreshold = 0 Do DoEvents Loop While Timer - t1 255 Then i = 1 Application.Cells(

3、3, i).Value = com_String End Select ActiveWorkbook.SaveAs Filename:=C:d1.xlsEnd SubPrivate Sub iniMscomm() On Error Resume Next=-初始化通信串口-= MSComm1.CommPort = 1 使用 COM1 MSComm1.Settings = 9600,N,8,1 9600 波特,无奇偶校验,8 位数据,一个停止位 MSComm1.PortOpen = True 打开端口 MSComm1.RThreshold = 1 缓冲区有1个字节就产生OnComm事件 MSCo

4、mm1.InputLen = 0 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。 MSComm1.InputMode = comInputModeTextInput以二进制形式取回用comInputModeBinary,以文本形式取回是(缺省项) MSComm1.RTSEnable = True MSComm1.InBufferCount = 0 清空缓冲区 End SubPrivate Sub UserForm_Initialize() iniMscommEnd Sub7.双击thisWorkBook,复制以下代码到窗体里:VB codeVBA代码Priv

5、ate Sub Workbook_Open() UserForm1.Show 0 UserForm1.HideEnd Sub8.保存文件并关闭excel,然后再打开你的文件,然后单击你窗体上的按钮看看。9.这个程序是我为你特意做的,已经做过测试,sys2003 office2003。10.如果excel中有数据输入,再去测试你的设置,注意com口号与波特率的设置。三mark excel 串口还有一个办法就是用任何编程,只需将收到的数据用csv文件的格式,生成一个文本文件,然后就可以用excel打开了。这个方法适合于任何语言,只要能生成文本文件就可以了。如果存成txt再打包可以的话, Perl简

6、单些,不熟悉的人3天也能做出来.Spreadsheet:WriteExcel 和 Spreadsheet:ParseExcel四Excel VBA串口通信 2010-01-27 16:41 1466人阅读 评论(0) 收藏 举报 用c#也可以实现这种功能,那就是用serialPort控件,这里用VBA写的,用MSComm控件实现。其实还有另外一个控件叫NETComm控件,也可以做,源码中注释很清楚,不再赘述vb:showcolumns:firstline1 view plaincopyprint?1020304050607080901001101201301401501. PrivateSub

7、btn_Close_Click()2. MSComm1.PortOpen=False打开串口 3. btn_Start.Enabled=True连接按钮响应 4. btn_Close.Enabled=False断开按钮变灰 5. EndSub6. 7. PrivateSubbtn_exit_Click()8. IfMSComm1.PortOpen=TrueThen如果串口被打开 9. MSComm1.PortOpen=False关闭按钮 10. EndIf11. UnloadUserForm1关闭窗体 12. EndSub13. 14. PrivateSubbtn_Start_Click()1

8、5. iniMSComm对串口控件设置 16. MSComm1.PortOpen=True17. btn_Close.Enabled=True18. btn_Start.Enabled=False19. EndSub20. 21. PrivateSubiniMSComm()对串口控件设置 22. MSComm1.CommPort=1占用的串口号,1表示COM1 23. MSComm1.Settings=115200,n,8,1这个自己根据自己的情况设置 24. 25. MSComm1.RThreshold=126. MSComm1.InputLen=027. MSComm1.PortOpen=

9、True这句话放到连接按钮事件中去 28. MSComm1.InputMode=comInputModeText29. MSComm1.RTSEnable=True30. MSComm1.InBufferCount=031. EndSub32. 33. PrivateSubMSComm1_OnComm()事件处理 34. Dimt1AsLong,com_stringAsString35. StaticiAsInteger36. t1=Timer37. SelectCaseMSComm1.CommEvent38. CasecomEvReceive 如果接收到数据则执行下列语句 39. MSCom

10、m1.RThreshold=040. Do41. DoEvents42. LoopWhileTimer-t1255Theni=146. Application.Cells(3,i).Value=com_string写到Excel中去 47. txtRec.Text=txtRec.Text+com_string写到文本框中去 48. EndSelect49. EndSub五VBA的妙用:串口通讯程序与EXCEL相结合发布时间:2010-3-11发布者:北京世纪长秋科技有限公司1 VBA简介Visual Basic的应用程序版(VBA)是Microsoft公司长期追求的目标,使可编程应用软件得到完

11、美的实现,它作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。在没有VBA以前,一些应用软件如Excel、Word、Access、Project等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。VBA作为一种新一代的标准宏语言,具有上述跨越多种应用软件并且具有控制应用软件对象的能力,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同

12、的用户界面,而且VBA与原应用软件的宏语言相兼容,以保障用户在代码和工作上的投资。有了VBA以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相互开发和调用能力。2 串口通讯程序简单的串口通讯程序一般是先由上位机向下位机发送读(write)或写(read)数据命令,然后等待下位机应答;下位机接受到命令之后,首先要对数据命令进行校验,对于符合校验约束的命令下位机会将相应的数据回复到上位机,对于不符合校验约束的命令下位机或将其抛弃或回复错误信息;上位机接收到下位机的响应之后,首先要对接收到的回复信息进行校验,对不符合校验约束的数据进行异常处理,对符合校验约束的信息进行解码,解码之后的信息便是上位机从下位机获得的有效信息了。上位机向串口发送读命令之后需要等待下位机应答并读取回复信息,常用的等待有3种方式:1) 轮询式上位机向串口发送读命令之后一直等待下位机应答,通讯程序处于一个等待循环中。优点:速度快、误码率低(几乎不存在误码)。缺点:消耗CPU。(解决办法:使用Slee

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号