串口控件的使用及属性说明

合集下载

串口通信-MSComm控件使用详解

串口通信-MSComm控件使用详解

串口通信-MSComm控件使用详解2012-11-13 09:35 6988人阅读评论(0) 收藏举报控件编程 Delphi编程(13)MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。

Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

1.MSComm控件两种处理通讯的方式1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。

在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。

在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。

OnComm 事件还可以检查和处理通讯错误。

所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。

在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。

这种方法的优点是程序响应及时,可靠性高。

每个MSComm 控件对应着一个串行端口。

如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。

1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。

在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。

如果应用程序较小,并且是自保持的,这种方法可能是更可取的。

例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

Vs2010中MSCOMM串口控件的使用

Vs2010中MSCOMM串口控件的使用

Vs2010中MSCOMM串口控件的使用Vs2010中MSCOMM串口控件的使用注意:Mscomm控件在VC6.0里面生成的类和VS2010里面生成的类不一样。

准确的说是封装的操作名字和使用方式有点不一样。

以对话框程序为例,下面试着在vs2010下使用该控件(控件在使用之前必须要注册)。

第一步:创建对话框程序,画好编辑框等控件。

第二步:插入MSCOMM控件,添加控件相关的类。

并为控件添加好变量。

第三步:添加消息处理函数,这里要注意的是MSCOMM控件的响应函数要右击控件选择添加事件处理函数,消息类型选择为OnComm类型。

下面是各个函数的实现:[cpp]01. //发送按钮按下响应函数02. void CCommTeatDlg::OnBnClickedButton3()03. {04. UpdateData(TRUE);05. m_mscomm.put_Output(COleVariant(m_EditSend));//向串口下发数据06. m_EditSend.Empty();//将编辑框内容清空07. UpdateData(FALSE);08. }[cpp]01. void CCommTeatDlg::OnBnClickedButton2()02. {03. m_mscomm.put_PortOpen(FALSE);//关闭串口04. AfxMessageBox(_T("串口已关闭"));//显示提示窗口05. }[cpp]01. void CCommTeatDlg::OnBnClickedButton1()02. {03. if(m_mscomm.get_PortOpen())//检测串口是否已经打开04. {05. m_mscomm.put_PortOpen(FALSE);//若串口已经打开,则关闭串口06. }07. m_mscomm.put_CommPort(1);//打开串口108. m_mscomm.put_InBufferSize(1024);//串口接收缓冲区大小09. m_mscomm.put_OutBufferSize(1024);//串口发送缓冲去大小10. m_mscomm.put_InputLen(0);//数据发送长度11. m_mscomm.put_InputMode(1);//数据发送模式12. m_mscomm.put_RThreshold(1);//13. m_mscomm.put_Settings(_T("4800,n,8,1"));//串口设置14. if(!m_mscomm.get_PortOpen())//检测串口是否打开,若关闭则打开串口15. {16. m_mscomm.put_PortOpen(TRUE);17. AfxMessageBox(_T("打开串口成功"));18. }19. else20. {21. m_mscomm.put_OutBufferCount(0);//清空输出缓冲区22. AfxMessageBox(_T("打开串口失败"));//提示串口打开失败23. }24. }特别注意一下这段:[cpp]01. BEGIN_EVENTSINK_MAP(CCommTeatDlg, CDialogEx)02. ON_EVENT(CCommTeatDlg, IDC_MSCOMM1, 1, CCommTeatDlg::OnCommMscomm1, VTS_NONE)03. END_EVENTSINK_MAP()[cpp]01. void CCommTeatDlg::OnCommMscomm1()02. {03. static unsigned int cnt = 0;04. VARIANT variant_inp;05. COleSafeArray safearryay_inp;06. long len,k;07. unsigned int data[1024]={0};08. byte rxdata[1024];09. CString stremp;10. if(m_mscomm.get_CommEvent() == 2)11. {12. cnt++;13. variant_inp = m_mscomm.get_Input();14. safearryay_inp = variant_inp;15. len = safearryay_inp.GetOneDimSize();16. for(k=0;k<len;k++)17. {18. safearryay_inp.GetElement(&k,rxdata+k);19. }20. for (k=0;k<len;k++)21. {22. stremp.Format(_T("%c"),*(rxdata+k));23. m_EditReceive += stremp;24. CString temp=_T("\r\n");25. m_EditReceive += temp;26. }27. }28. UpdateData(FALSE);29. }利用MSComm操纵串口数据1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点);2.在项目中插入MSComm控件选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。

串口小助手的简单使用说明

串口小助手的简单使用说明

①串口小助手使用准备:
用一条USB专串口线,连接设备后的串口,和电脑的USB口
在上右击,选择属性
硬件-设备管理器
找到串口的COM口,现在是COM12
打开串口小助手,相关设置如下:
打开串口
②用串口小助手获得设备的IP地址:
在发送区输入:GET 0 IPADDR 回车(记得要回车)按手动发送
就可以得到设备的IP地址。

③串口小助手把程序清空
“CLEAR 0 DEVCONFIG <LF>”
④串口小助手更改IP地址--单台设备连接控制不建议更改IP地址
要更改IP地址,先要把里面的程序清空,可以在小助手上发送 “CLEAR 0 DEVCONFIG <LF>”
然后输入更改IP地址的代码:
SET 0 IPADDR 192.168.1.101 <LF>
更改IP地址,默认网关,子网掩码后,都要重新启动设备才有效。

具体可参看BIAMP软件的帮助文件。

C#串口通信:MSComm控件使用详解

C#串口通信:MSComm控件使用详解

C#串口通信:MSComm控件使用详解目次MSComm 控件两种处理通讯的方式CommPort 属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性DSRHolding 属性Settings 属性InputLen 属性EOFEnable 属性Handshake 常数OnComm 常数InputMode 常数错误消息MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi 等语言中均可使用。

Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。

在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。

在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。

OnComm 事件还可以检查和处理通讯错误。

所有通讯事件和通讯错误的列表,参阅CommEvent 属性。

在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。

这种方法的优点是程序响应及时,可靠性高。

每个MSComm 控件对应着一个串行端口。

如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。

串口控件

串口控件

MSComm控件vb中mscomm 控件的应用属性描述 CommPort 设置并返回通讯端口号。

Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen 设置并返回通讯端口的状态。

也可以打开和关闭端口。

Input 从接收缓冲区返回和删除字符。

Output 向传输缓冲区写一个字符串。

.目录在开始使用MSComm控件之前。

需要先了解其属性、事件或错误属性描述CommPort 设置或返回通信端口号Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位PortOpen 设置或返回通信端口的状态。

也可以打开和关闭端口Input 返回和删除接收缓冲区中的字符Output 将字符串写入发送缓冲区CommEvent属性为通信事件或错误返回下列值之一。

在该控件的对象库中也可以找到这些常量。

常量值描述ComEventBreak 1001 收到了断开信号ComEventCTSTO 1002 Clear To Send Timeout。

在发送字符时,在系统指定的事1件内,CTS(Clear To Send)线是低电平ComEventDSRTO 1003 Data Set Ready Timeout。

在发送字符时,在系统指定的事件内,DSR(Data Set Ready)线是低电平ComEventFrame 1004 数据帧错误。

硬件检测到一个数据帧错误ComEventOverrun 1006 端口溢出。

硬件中的字符尚未读,下一个字符又到达,并且丢失ComEventCDTO 1007 Carrier Detect Time。

在发送字符时,在系统指定的事件内,CD(Carrier Detect)线是低电平。

CD 也称为RLSD(Receive Line Singal Detect,接收线信号检测)ComEventRxOver 1008 接收缓冲区溢出。

在接收缓冲区中没有空间ComEventRxParity 1009 奇偶校验错。

SerialPort控件的使用

SerialPort控件的使用

ms-help://MS.VSCC.v80/MS.MSDN.v80/DE‎V FX.v20.chs/cpref‎8/html/T_Sys‎t em_I‎O_P or‎t s_Se‎r ialP‎o rt_M‎e mber‎s.htm//串口控件一.概述在Visu‎a l Studi‎o 6.0中编写串‎口通讯程序‎,一般都使用‎M icro‎s oft Commu‎n icat‎i on Contr‎o l(简称MSC‎o mm)的通讯控件‎,只要通过对此控件‎的属性和事‎件进行相应‎编程操作,就可以轻松‎地实现串口‎通讯。

但在Mic‎r osof‎技术‎广泛应用的‎今天,Visua‎l Studi‎没有‎将此控件加‎入控件库,所以人们采‎用了许多方‎法在Vis‎u al Studi‎来编‎写串口通讯‎程序:第一种方法‎是通过采用‎V isua‎l Studi‎o 6.0中原来的‎M SCom‎m控件这是‎最简单的,最方便的方‎法,但需要注册‎;第二种方法‎是采用微软‎在.NET推出‎了一个串口‎控件,基于.NET的P‎/Invok‎e调用方法‎实现;第三种方法‎是自己用A‎P I 写串口‎通信,虽然难度高‎,但可以方便‎实现自己想‎要的各种功‎能。

现在微软推‎出了最新版‎本的Vis‎u al Studi‎o 2005开‎发工具,可以不再采‎用第三方控‎件的方法来‎设计串口通‎讯程序。

NET Frame‎w ork 2.0 类库包含了‎S eria‎l Port‎类,方便地实现‎了所需要串‎口通讯的多‎种功能,为了使MS‎C omm 编‎程方法快速‎转换到以S‎e rial‎P ort类‎为核心的串‎口通讯的设‎计方法,本文着重讨‎论了Vis‎u al Studi‎o 6.0的MSC‎o mm控件‎和Seri‎a lPor‎t类设计方法‎的异同点。

二.Seria‎l Port‎常用属性、方法和事件‎1.命名空间Syste‎m.IO.Ports‎命名空间包‎含了控制串‎口重要的S‎e rial‎P ort类‎,该类提供了‎同步I/O 和事件驱动‎的I/O、对管脚和中‎断状态的访‎问以及对串‎行驱动程序‎属性的访问‎,所以在程序‎代码起始位‎置需加入U‎s ing Syste‎m.IO.Ports‎。

串口屏控件说明_如何使用数据记录控件_V2.1

串口屏控件说明_如何使用数据记录控件_V2.1

数据记录控件工程技术笔记广州大彩光电科技有限公司修订历史目录1.适用范围 (4)2.开发环境版本 (5)3.功能概述 (6)4.技术实现 (7)4.1属性窗口 (7)4.1.1显示设置 (7)4.1.2记录设置 (7)4.2例程操作 (10)附录:数据记录控件基本指令集 (11)1.适用范围文档适合经济型、基本型、物联型、86盒等系列串口屏产品。

2.开发环境版本1.VisualTFT软件版本:V3.0.0.732及以上;版本查看:(1)打开软件,右下角显示的软件版本号。

(2)打开VisualTFT,点击帮助->关于VisualTFT可以查看当前软件版本号。

2.串口屏硬件版本:V2.22.915.XXX及以上。

版本查看:(1)查看屏幕背面版本号贴纸。

(2)VisualTFT与屏幕联机成功后,右下角显示的版本号。

3.功能概述数据记录控件,用于记录数据、数据表格、报警值时间等。

控件记录历史告警、当前告警或者用作通用表格,记录数据掉电保存,若需要查看记录的数据,直接在屏幕上进行查看,多数据可以使用滑条查看。

4.技术实现4.1属性窗口熟悉数据记录控件的属性窗口可以更好地对控件的属性进行设置,如图4-1为数据记录控件的属性窗口。

图4-1文本控件的属性窗口4.1.1显示设置1.字体:设置数据记录显示的字体和字体大小。

2.文字颜色:设置字体的显示颜色。

3.显示网格:是否显示网格。

4.网格颜色:设置网格的显示颜色。

5.显示背景:是否显示背景。

6.背景颜色:选择背景的显示颜色。

7.允许选择:是否允许选中数据所在行。

是,点击数据所在行颜色改变并发出通知给主机;否,不允许选择。

8.显示滚动条:是否显示滚动条。

4.1.2记录设置1.记录类型,可以选择不同的记录类型。

A)当前告警:同一个编号的告警数据仅能记录一次,无法重复记录,但不限制记录顺序,若解除告警数据后,则可再次记录一次。

如图4-2所示。

图4-2记录不重复数据B)历史告警:同一个告警编号可重复记录,不限制记录的次数,如图4-3所示。

VB三种读取串口数据的方式

VB三种读取串口数据的方式

VB三种读取串口数据的方式3三种读取串口数据的方式vb提供的这个通信控件“隐藏”了大部分串口通信的底层运行过程,程序员只需编写少量的代码就可以完成软件的开发过程。

在通信数据量不大,通信要求不是很高的情况下建议采取此方式。

(1)settings属性:以字符串的形式设置并回到波特率、奇偶校验位、数据位、暂停位。

这个属性很关键,针对相同的终端设备须要根据设备的具体情况展开调整(比如说日本的设备不同于美国的设备,通常可以使用奇校验)。

(2)inputmode属性:设置接收数据的类型,0为文本格式,1为二进制格式。

(3)input属性:读取并删除接收缓冲区中的数据流。

(4)output属性:向发送缓冲区传送一数据流。

(6)handshaking属性:设置和回到击掌协议,即为计算机内部cpu与串口之间的通讯协议,确保在缓冲区负载时数据不能遗失。

这个属性在确保数据传输的正确性方面存有非常大的促进作用,共计四个选项,分别则表示:①并无流控制;②软件流控制;③硬件流控制;④软硬件流控制。

使用硬件流控时,建议串口之间和电缆积极支持硬件击掌,在自己制作串口通信线时,有关硬件击掌的线rts、cts、dsr、dtr必须相连接恰当。

在正确设置这些属性的基础上,剩下的就是打开串口,通过串口发送及接受数据了。

本文后续章节利用一个实例详细讲解了这些属性的设置及具体代码。

3.2轻易调用win32api通信函数直接调用windowsapi函数,可以清楚地理解串口通信的机制,根据需要灵活地配置串口的各种参数和属性,而且直接调用低层api函数,通信效率比较高,但付出的代价就是程序较复杂,编程周期长,适合于大型通信程序及通讯质量要求较高的场合。

在32位的windows系统中,串口通信就是做为文件处置的,串口操作方式通常为关上、停用、加载、载入等操作方式,适当的windowsapi函数如下:[4](1)createfile()函数:实现串口的初始化并打开串口,返回串口句柄资源以供后续进程调用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上位机软件,尤其是串口监听软件是我们常用到的工具。

这里我讲解一下使用 时,串口控件的使用和串口的配置。

一、认识串口控件,名称SerialPort。

二、串口常用参数说明:
三、代码例程
1、串口配置代码
Sub PortStart()
'SerialPort1.PortName = COMX'计算机串口设置X,是串口号。

可以使用下列列表框选择。

SerialPort1.BaudRate = 9600 ‘波特率设置
SerialPort1.DataBits = 8 '数据位设置
SerialPort1.StopBits = StopBits.One '停止位设置
SerialPort1.Encoding = Encoding.UTF8
SerialPort1.DtrEnable = True
SerialPort1.ReadTimeout = 500 '超时时间
SerialPort1.NewLine = vbCrLf '行结束符合
End Sub
2、计算机串口读取
Sub GetSerialPortNames()
'计算机串口读取
For Each sp As String In puter.Ports.SerialPortNames CompList.Items.Add(sp) ‘CompList是一个下列框控件,这里修改为你的下列框名称
Next
CompList.Text = CompList.Items(0)
End Sub
3、串口打开
Sub PortOpen()
Try
SerialPort1.Open()
Call PortStart()
Catch ex As UnauthorizedAccessException
MsgBox("串口被占用或串口错误!", rmation, "提示!")
End Try
End Sub
4、串口关闭
Sub PortOpen()
Try
SerialPort1.Close()
Catch ex As Exception
MsgBox("串口未打开或串口异常!", rmation, "提示!") End Try
End Sub
5、串口读取数据
Sub ComRec()
Dim Rxstr As String
Try
Rxstr = SerialPort1.ReadLine ’读取一个新行
Application.DoEvents()
ComTxT.AppendText(Rxstr) ‘读取到的数据添加到文本框中显示Catch e As TimeoutException ’当超时以后,读取串口所有的数据Rxstr = SerialPort1.ReadExisting
ComTxT.AppendText(Rxstr)
Application.DoEvents()
End Try
End Sub
6、发送数据
SerialPort.Write,将数据写入串行端口输出缓冲区。

相关文档
最新文档