mscomm 的实际应用问题

问题描述

各位同仁们,我现在想做一个地磅称重的软件,现在碰到COM读数据的问题...各位:mscomm具体读数据的实例学习一下

解决方案

解决方案二:
.NET2.0开始,就可以用SerialPort类来访问串口了,没必要再用MSCOMM来做了。
解决方案三:
能说的具体一点吗??
解决方案四:
我有,要的话联系我:MSN:shiyulun1984@sina.com
解决方案五:
用MSComm控件:REM串口初始化PublicSubSCIinit(ByRefMSComm1AsAxMSCommLib.AxMSComm,ByValCOMxAsByte,ByValSCIFormatAsString)IfMSComm1.PortOpen=TrueThenMSComm1.PortOpen=FalseEndIfMSComm1.CommPort=COMx'串行口号MSComm1.Settings=SCIFormat'定义传输格式MSComm1.InputMode=MSCommLib.InputModeConstants.comInputModeBinary'二进制数据格式MSComm1.RThreshold=0'关闭串行中断MSComm1.InputLen=0'一次读取缓冲区全部数据MSComm1.PortOpen=True'打开串行口MSComm1.InBufferCount=0EndSub'----------------------------'函数名:SCISendN'功能:发送N个数据'参数:data-待发送的数据'----------------------------PublicSubSCISendN(ByRefMSComm1AsAxMSCommLib.AxMSComm,ByValdata()AsByte)MSComm1.OutBufferCount=0MSComm1.Output=dataMSComm1.OutBufferCount=0MSComm1.InBufferCount=0EndSub'----------------------------'函数名:SCIRecvN'功能:接收N个数据'----------------------------PublicFunctionSCIRecvN(ByRefMSComm1AsAxMSCommLib.AxMSComm,ByValCountAsInteger,ByValDelayTimeAsInteger)AsBooleanDimiAsIntegerDimd1AsIntegerDimresultAsBooleand1=Microsoft.VisualBasic.DateAndTime.TimerDoApplication.DoEvents()IfMicrosoft.VisualBasic.DateAndTime.Timer-d1>DelayTimeThenresult=False's内未接收到1个数据,返回FlaseGoToSCIRecvN_exitEndIfLoopUntilMSComm1.InBufferCount>=CountG_RecvData=MSComm1.InputMSComm1.InBufferCount=0result=TrueSCIRecvN_exit:ReturnresultEndFunction

时间: 2024-09-30 12:06:33

mscomm 的实际应用问题的相关文章

控件-mscomm串口波形绘制范例,求大神解析这三个函数,急急急,绘制波形图的原理是什么,拜托了

问题描述 mscomm串口波形绘制范例,求大神解析这三个函数,急急急,绘制波形图的原理是什么,拜托了 //串口void CPort_testDlg::OnComm() { //if(stop)return; VARIANT m_input1; COleSafeArray m_input2; long lengthi; BYTE data[600]; CString str; int ai=0bi=0ci=0di=0; int sum=0; if(m_Comm.GetCommEvent()==2)

pb 串行通讯-急求,大家好,我是PB软件的新手,在使用MSCOMM控件编写的时候遇到问题

问题描述 急求,大家好,我是PB软件的新手,在使用MSCOMM控件编写的时候遇到问题 在使用MSCOMM控件编写oncomm程序的时候,显示错误:coo31:syntax error string Is_input,Out_input choose case Ole_MSC.object.commevent case 2 //CommEvent属性为CommEvReceive Ole_MSC.object.InputLen=10000 //读入缓冲区中的数据长度 Is_input=Ole_MSC

mfc-关于MScomm里面的.GetCommEvent()函数

问题描述 关于MScomm里面的.GetCommEvent()函数 使用MScomm时候GetCommEvent()的值总是6,而不是数字2,怎么回事啊? 解决方案 comEvSend 1 发送事件. comEvReceive 2 接收事件. comEvCTS 3 clear-to-send 线变化. comEvDSR 4 data-set ready 线变化. comEvCD 5 carrier detect 线变化. comEvRing 6 振铃检测. comEvEOF 7 文件结束. 串口

金手指Delphi中MsComm控件的安装使用

Delphi 具有功能强大.简便易用和代码执行速度快等特点,是全球公认的快速应用开发工具技术的先驱者.但是在对串口通信的控制上Delphi的帮助文档和其他书籍中很少提及,这恰恰又是在开发应用系统时会经常遇到的问题.用过VB的程序员都知道 VB的MSComm通信控件具有丰富的与串口通信密切相关的属性及事件,提供了一系列标准通信命令的接口,可以用它创建全双工的.事件驱动的.高效实用的通信程序.在这里就介绍一下如何把MSComm这个ActiveX控件加入到Delphi中,充分发挥出二者的优越性. 首先

MSComm控件使用详解

摘要:本文详细介绍了MSComm控件在串口编程中使用. 目次 MSComm控件两种处理通讯的方式 CommPort属性 RThreshold 属性 CTSHolding属性 SThreshold 属性 CDHolding属性 DSRHolding属性 Settings 属性 InputLen 属性 EOFEnable 属性 Handshake 常数 OnComm 常数 InputMode 常数 错误消息 MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能.MSComm控件在串

MSComm控件在基于单文档中的应用

本文配套源码下载 MSComm 作为一个串行通讯控件为程序员串口通讯编程节省了很多时间.在基于对话框的应用中加入一个MSComm控件非常简单.只需进行以下操作即可: 打开"Project->Add To Project->Components and Controls->Registered Activex Controls",然后选择控件:Microsoft Communication Control,version 6.0插入到当前的工程中.这样就将类 CMSCo

Delphi中利用MSCOMM控件进行GPS数据采集

1.准备 GPS(Global Positioning System),即全球定位系统,利用24颗GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统.江河流域的灾害信息管理和预测系统中,GPS得到了广泛的应用.本文利用MSCOMM控件实现了GPS数据的采集,可为信息管理和指挥调度等提供定位数据. 本文采用GPS的异步串行传送方式,将GARMIN 12C按NMEA-0183协议输出的数据采集到了微机,并将接收到的地理坐标转换成为直角坐标. 在DELPHI

MSComm控件的Modem通讯

MSComm 控件通过串行端口(serial port)传送和接收数据,为应用程序提供了串行通讯功能.而且在可视化编程盛行的今天,可以很方便的在Visual Basic(VB).Visual C++(VC).Delphi等语言及开发平台中应用. MSComm 是 Microsoft 公司为简化Windows下串行端口编程而提供的ActiveX控件,它提供了一系列标准通讯命令的使用接口,为应用程序提供了通过串行口收发数据的简洁方法.处理数据的方式有事件驱动(Event-driver).查询法(In

线程与mscomm控件问题

问题描述 线程与mscomm控件问题 我是在做下位机向上位机传递数据,使用的mfc基于对话框的mscomm控件.需要动态实时显示曲线.我采用teechart控件来画曲线.mscomm控件有个Onmscomm()函数用来接收串口通信数据并存储起来.现在开辟了一个线程,在线程函数里实现对Onmscomm()接收到的数据的处理(此处为while(true)循环),再将处理的数据用来画图.但是现在调试时程序进入开辟的线程函数里,始终跳不出,无法进入Onmscomm()函数里(下位机有传数据),运行时会显

按钮-使用mscomm控件发送十六进制数据的写法

问题描述 使用mscomm控件发送十六进制数据的写法 我需要单击一个按钮时发送一个十六进制字符串例如"01 03 00" 解决方案 先将16进制转换成byte[]不知道什么语言,如果是C#可以写string[] hexstr = s.Split(' ');byte[] data = new byte[hexstr.Count()];for (int i = 0; i < hexstr.Count(); i++){ data[i] = Convert.ToByte(hexstr[i