串口控件的使用及属性说明
串口通信-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串口控件的使用注意: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控件使用详解目次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控件的使用
ms-help://MS.VSCC.v80/MS.MSDN.v80/DEV FX.v20.chs/cpref8/html/T_Syst em_IO_P ort s_Ser ialPo rt_Me mbers.htm//串口控件一.概述在Visua l Studio 6.0中编写串口通讯程序,一般都使用M icros oft Commun icati on Contro l(简称MSCo mm)的通讯控件,只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。
但在Micr osof技术广泛应用的今天,Visual Studi没有将此控件加入控件库,所以人们采用了许多方法在Visu al Studi来编写串口通讯程序:第一种方法是通过采用V isual Studio 6.0中原来的M SComm控件这是最简单的,最方便的方法,但需要注册;第二种方法是采用微软在.NET推出了一个串口控件,基于.NET的P/Invoke调用方法实现;第三种方法是自己用AP I 写串口通信,虽然难度高,但可以方便实现自己想要的各种功能。
现在微软推出了最新版本的Visu al Studio 2005开发工具,可以不再采用第三方控件的方法来设计串口通讯程序。
NET Framew ork 2.0 类库包含了S erial Port类,方便地实现了所需要串口通讯的多种功能,为了使MSC omm 编程方法快速转换到以Se rialP ort类为核心的串口通讯的设计方法,本文着重讨论了Visu al Studio 6.0的MSCo mm控件和Seria lPort类设计方法的异同点。
二.Serial Port常用属性、方法和事件1.命名空间System.IO.Ports命名空间包含了控制串口重要的Se rialP ort类,该类提供了同步I/O 和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问,所以在程序代码起始位置需加入Us ing System.IO.Ports。
串口屏控件说明_如何使用数据记录控件_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三种读取串口数据的方式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()函数:实现串口的初始化并打开串口,返回串口句柄资源以供后续进程调用。
串口控件的使用及属性说明
串口控件的使用及属性说明上位机软件,尤其是串口监听软件是我们常用到的工具。
这里我讲解一下使用 时,串口控件的使用和串口的配置。
一、认识串口控件,名称SerialPort。
二、串口常用参数说明:三、代码例程1、串口配置代码Sub PortStart()'SerialPort1.PortName = COMX'计算机串口设置X,是串口号。
可以使用下列列表框选择。
SerialPort1.BaudRate = 9600 ‘波特率设置SerialPort1.DataBits = 8 '数据位设置SerialPort1.StopBits = StopBits.One '停止位设置SerialPort1.Encoding = Encoding.UTF8SerialPort1.DtrEnable = TrueSerialPort1.ReadTimeout = 500 '超时时间SerialPort1.NewLine = vbCrLf '行结束符合End Sub2、计算机串口读取Sub GetSerialPortNames()'计算机串口读取For Each sp As String In puter.Ports.SerialPortNames CompList.Items.Add(sp) ‘CompList是一个下列框控件,这里修改为你的下列框名称NextCompList.Text = CompList.Items(0)End Sub3、串口打开Sub PortOpen()TrySerialPort1.Open()Call PortStart()Catch ex As UnauthorizedAccessExceptionMsgBox("串口被占用或串口错误!", rmation, "提示!")End TryEnd Sub4、串口关闭Sub PortOpen()TrySerialPort1.Close()Catch ex As ExceptionMsgBox("串口未打开或串口异常!", rmation, "提示!") End TryEnd Sub5、串口读取数据Sub ComRec()Dim Rxstr As StringTryRxstr = SerialPort1.ReadLine ’读取一个新行Application.DoEvents()ComTxT.AppendText(Rxstr) ‘读取到的数据添加到文本框中显示Catch e As TimeoutException ’当超时以后,读取串口所有的数据Rxstr = SerialPort1.ReadExistingComTxT.AppendText(Rxstr)Application.DoEvents()End TryEnd Sub6、发送数据SerialPort.Write,将数据写入串行端口输出缓冲区。
RS232串口控件使用说明书
RS232串口控件使用说明书RS232串口空间使用说明书一、简介为了快速的开发.NET上位机程序,我公司开发了可以与RS232串口通讯的控件。
开发此控件的目的是简化读写RS232串口数据的程序的编写,并节省开发成本。
此控件由以下控件组成:此控件需要以下DLL文件:本控件的开发环境为VS2012,目标框架为.NET Framework 4.5。
在使用时,要注意操作系统是否支持此框架,比如在XP系统下,只能使用框架为.NET Framework 4.0的控件。
使用时将DLL文件拷贝到可执行文件所在的目录下。
在您的项目中,选择工具箱,在工具箱中选择控件加载的位置,点击鼠标右键,选择“选择项...”,在弹出的窗口中点击“浏览(B)...”按钮,选择vmSerialPort.dll,并确认,此时,该控件会出现在工具箱中,之后您就可以像其他控件一样使用我们的控件了。
二、配置界面控件的主界面为配置界面在您将控件拖放到窗口(Form)中,会出现空间的主页面下面是配置界面中,各个子控件的谁用说明:1.连接●串口号:要通讯的串口号。
●波特率:通讯的波特率。
●数据位:需要通讯的数据位。
●停止位、校验位:通讯的停止位与校验位。
2.报文格式●起始符:通讯时在报文起始位置添加的字符。
●结束符:通讯时在报文结束位置添加的字符。
包含回车、换行以及回车换行等。
3.日志为了便于程序调试,本控件支持通信日志的显示和存储。
存储的内用包括通信的时间,通信内容或者故障信息。
如果选择保存日志,日志为文件名为日期的txt文件。
最新的日志信息也会以红色显示在控件最下方的状态栏中。
●保存到文件:日志是否保存到文件。
●文件路径:日志文件存放的路径。
●最多显示行数:在日志显示窗口中能够显示的行数的最大值。
二、测试界面为了便于程序调试,控件提供了测试页:1.“连接”按钮:点击此按钮,如果和串口的连接建立成功,按钮的文字会改为“断开”,同时右侧的灯会为绿色。
在VS(VC)2010中使用MSComm控件实现串口通信的详细步骤
// TODO: 在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä|理¤¨ª程¨¬序¨°代䨲码? }
void CCommTestDlg::OnBnClickedButtonOpen() { // TODO: 在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä|理¤¨ª程¨¬序¨°代䨲码? }
10. 添加关闭串口按钮的消息响应函数 void CCommTestDlg::OnBnClickedButtonClose() { // TODO: 在此添加控件通知处理程序代码 m_mscomm.put_PortOpen(FALSE);//关闭串口 AfxMessageBox(_T("串口 1 已关闭")); } 11. 添加发送按钮消息响应函数 void CCommTestDlg::OnBnClickedButtonSend() { // TODO: 在此添加控件通知处理程序代码 UpdateData(true); //读取编辑框内容 m_mscomm.put_Output(COleVariant(m_EditSend));//发送数据 m_EditSend.Empty(); //发送后清空输入框 UpdateData(false); //更新编辑框内容 } 12. 接收数据 void CCommTestDlg::OnCommMscomm1() { // TODO: 在此处添加消息处理程序代码 static unsigned int cnt=0; VARIANT variant_inp; COleSafeArray safearray_inp; long len,k; unsigned int data[1024]={0}; byte rxdata[1024]; //设置 BYTE 数组 CString strtemp; if(m_mscomm.get_CommEvent()==2) //值为 2 表示接收缓冲区内有字符 {
msm控件的用法和函数说明
MSComm控件进行串口编程步骤:1.在建立的程序工程中插入MSComm控件。
2.添加MSComm控件ID 的控制变量(或者对象)。
3.对串口进行初始化,设置MSComm控件的属性。
4.添加串口事件的消息处理函数OnComm()函数,在函数中根据应用需要,编写数据处理代码5.编写串口发送等其他代码。
6.关闭串口。
+MSComm控件常用属性:mPort:设置并返回通信端口号2.Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位3.PortOpen:设置并返回通信端口的状态。
也可以打开和关闭端口4.Input:从接收缓冲区返回和删除字符5.Output:向传输缓冲区写一个字符6.InputLen:设置并返回Input属性从接收缓冲区读取的字符数。
7.InBufferSize:设置或返回输入缓冲区的大小。
8.OutBufferSize:设置或返回输入缓冲区的大小。
9.InBufferCount:设置或返回输入缓冲区内等待读取的字节个数。
10.OutBufferCount:设置或返回输入缓冲区内等待读取的字节个数。
对MSComm控件通过Get/Set函数对来获取或设置控件的属性,每个属性均有与之对应的Get/Set函数对。
用法说明mPort:设置并返回通信端口号Void CMSComm::SetCommPort(short n);设置串口号Short CMSComm::GetCommPort();查询当前串口号说明:n可以设置成1到16中的任何数(缺省值为1)。
但是,如果用PortOpen属性打开一个并不存在的端口是,MSComm控件会产生错误68(设备无效);必须在打开端口之前设置CommPort属性。
2.Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位Void CMSComm::SetSettings(LPCTSTR lpszNewValue);CString CMSComm::GetSettings();说明:当端口打开时,如果设置值lpszNewValue非法,则MSComm控件产生错误380(非法属性值)。
SerialPort控件的详细用法
serialport控件的详细用法1、简介随着USB的流行,串口通讯已经应用到日常生活的很多方面了,USB是一种高速的串口通讯协议,USB接口非常复杂,通常被用在需要传输大量数据数据的地方,如U盘、相机、打印机等。
除了USB这种较为奢侈的串口外,在工控和嵌入式行业,大量被使用的是另一种古老的串口协议,RS-232串口。
RS-232是一种非常简洁的低速串口通讯接口,它可以同时进行数据接收和发送的工作。
2、.NET 2.0对串口的支持.NET 2.0提供了对串口通信功能的支持,有关类可以在命名空间System.IO.Ports下找到,这其中最为重要的是SerialPort类。
通过创建一个新的SerialPort 对象,我们就可以在.NET程序中控制串口通讯的全过程。
3、使用SerialPort 设置串口属性进行串口通讯时,需要设置一些相关参数,可以通过设置SerialPort 类的属性来进行。
串口属性主要包括.PortName 串口名称,COM1, COM2等。
.BaudRate 波特率,也就是串口通讯的速度,进行串口通讯的双方其波特率需要相同,如果用PC连接其他非PC系统,一般地,波特率由非PC系统决定。
Parity 奇偶校验。
可以选取枚举Parity中的值.DataBits 数据位.StopBits 停止位,可以选取枚举StopBits中的值.Handshake 握手方式,也就是数据流控制方式,可以选取枚举Handshake中的值4、打开与关闭串口在创建一个SerialPort 对象,设置串口属性后,可以通过Open()方法打开串口。
数据读写完成后,可以通过Close()方法关闭串口。
根据经验,对于有些系统,在打开串口后,还需要将RtsEnable设置为True,这样才能读写数据,否则不能正常读写数据。
5、读写行数据双方通讯时,一般都需要定义通讯协议,即使最简单的通过串口发送文本聊天的程序。
通常是在当一方按下回车时,将其所数据的文本连同换行符发给另一方。
SerialPort控件的详细用法
serialport控件的详细用法1、简介随着USB的流行,串口通讯已经应用到日常生活的很多方面了,USB是一种高速的串口通讯协议,USB接口非常复杂,通常被用在需要传输大量数据数据的地方,如U盘、相机、打印机等。
除了USB这种较为奢侈的串口外,在工控和嵌入式行业,大量被使用的是另一种古老的串口协议,RS-232串口。
RS-232是一种非常简洁的低速串口通讯接口,它可以同时进行数据接收和发送的工作。
2、.NET 2.0对串口的支持.NET 2.0提供了对串口通信功能的支持,有关类可以在命名空间System.IO.Ports下找到,这其中最为重要的是SerialPort类。
通过创建一个新的SerialPort 对象,我们就可以在.NET程序中控制串口通讯的全过程。
3、使用SerialPort 设置串口属性进行串口通讯时,需要设置一些相关参数,可以通过设置SerialPort 类的属性来进行。
串口属性主要包括.PortName 串口名称,COM1, COM2等。
.BaudRate 波特率,也就是串口通讯的速度,进行串口通讯的双方其波特率需要相同,如果用PC连接其他非PC系统,一般地,波特率由非PC系统决定。
Parity 奇偶校验。
可以选取枚举Parity中的值.DataBits 数据位.StopBits 停止位,可以选取枚举StopBits中的值.Handshake 握手方式,也就是数据流控制方式,可以选取枚举Handshake中的值4、打开与关闭串口在创建一个SerialPort 对象,设置串口属性后,可以通过Open()方法打开串口。
数据读写完成后,可以通过Close()方法关闭串口。
根据经验,对于有些系统,在打开串口后,还需要将RtsEnable设置为True,这样才能读写数据,否则不能正常读写数据。
5、读写行数据双方通讯时,一般都需要定义通讯协议,即使最简单的通过串口发送文本聊天的程序。
通常是在当一方按下回车时,将其所数据的文本连同换行符发给另一方。
串口配置使用的一般步骤及实例解读
串口配置使用的一般步骤及实例解读串口配置是在计算机与外部设备之间进行数据传输的重要方式之一、以下是串口配置的一般步骤及实例解读。
步骤一:选择合适的串口在开始串口配置之前,首先要确定使用哪个串口。
计算机通常有多个串口,通常标识为COM1、COM2等。
选择串口的原则是根据实际需要和设备的要求来确定。
例如,如果连接的是打印机,通常使用标准的RS232串口。
步骤二:打开设备管理器设备管理器是Windows操作系统提供的管理设备的工具。
可以通过“控制面板”中的“设备管理器”来打开。
在设备管理器中,可以查看计算机中安装的各种硬件设备。
步骤三:找到并选择串口在设备管理器中,可以找到“端口(COM和LPT)”选项。
点击该选项,可以看到计算机上已经安装的串口设备。
根据步骤一选择的串口,找到对应的串口并选中。
步骤四:配置串口属性选择串口后,右键点击鼠标,在弹出的菜单中选择“属性”。
在属性对话框中,可以配置串口的基本属性,如波特率、数据位、停止位、校验位等。
根据实际需要和设备要求来进行配置。
数据位决定每个字符的位数,常用的有数据位为8位和数据位为7位的两种选择。
停止位决定数据传输的结束位,常用的有1位停止位和2位停止位两种选择。
校验位用于校验数据传输的准确性,常用的有无校验位、奇校验和偶校验三种选择。
步骤五:保存配置并测试完成串口属性的配置后,点击“确定”按钮保存配置。
接下来可以进行测试,查看串口配置是否成功。
可以通过串口调试助手等工具进行测试,发送和接收数据,在工具中设置相应的波特率和其他属性,测试串口的收发功能。
实例解读:以通过串口连接并控制Arduino开发板为例,介绍串口配置的实例解读。
步骤一:选择合适的串口首先要确定连接Arduino开发板使用的是哪一个串口。
可以通过查看设备管理器来确认计算机中安装的串口设备。
步骤二:打开设备管理器打开Windows操作系统提供的设备管理器,查看计算机中已安装的硬件设备。
步骤三:找到并选择串口在设备管理器中找到“端口(COM和LPT)”选项,找到连接Arduino开发板所使用的串口。
串口调试助手使用说明和技术总结
串口调试助手使用说明和技术总结一、引言二、使用说明1.硬件准备:首先需要一对串口线,将电脑的串口与设备的串口进行连接。
确保连接正确无误。
2. 软件安装:选择一款合适的串口调试助手软件,如Tera Term、SecureCRT等,并进行安装。
3.打开串口:打开串口调试助手软件,选择正确的串口端口号,并设置波特率。
一般情况下,设备的串口通信参数可以在设备的说明书中找到。
4.进行数据收发:点击软件界面上的“打开串口”按钮后,即可开始进行数据的收发。
可以直接在软件的发送窗口中输入要发送的数据,并点击“发送”按钮,或者通过点击“读取文件”按钮,从本地文件中读取数据并发送。
同时,接收到的数据也会在软件的接收窗口中实时显示。
5.数据解析:对于不同格式的数据,可以通过软件提供的解析功能进行解析。
一般情况下,串口数据是以字节流的形式进行传输的,解析时需要将字节解析为可读的格式。
6.其他功能:串口调试助手软件一般还提供了其他功能,如数据录制、数据回放、数据比对等。
根据实际需求,可以灵活运用这些功能。
三、技术总结1.串口通信协议:串口调试助手在数据收发过程中依赖于串口通信协议。
常见的串口通信协议有RS232、RS485等。
了解和理解这些协议对于正确使用串口调试助手非常重要。
3.数据解析:串口调试助手常常需要对收到的字节流进行解析,将其转化为可读的数据。
这需要根据具体的协议和数据格式进行解析工作,例如将十六进制数据转化为ASCII码等。
4.数据录制与回放:一些串口调试助手软件提供数据录制和回放功能,方便在需要时重新进行调试或查看数据。
这对于复杂系统的调试和故障排除非常有用。
5.多串口支持:一些串口调试助手软件支持多串口同时进行数据收发和调试。
这对于同时调试多个设备通信时非常方便。
6.错误处理:在使用串口调试助手过程中,可能会遇到数据传输错误、设备无响应等问题。
正确处理这些错误非常重要,可以使用软件提供的日志记录功能或者手动检查设备连接等方式来定位和解决问题。
SPComm的一些注意
CommName属性:计算机串口端口号的名字,COM1、COM2……等,在打开串口前,必须填写好此值。
Parity属性:校验位 None、Odd、Even、Mark、Space等。
BaudRate:设定支持串口通信用的波特率9600,4800等,根据实际需要来定,在串口打开后也可更改波特率,实际波特率随之更改。
SPCOMM的一些用法注意
使用串口SPCOMM接收数据的时候0x11和0x13无法接受,从时间间隔上看来可以接收,但是无法显示。网上查错误得:
------------------------------------------------------------------------
OutX_XonXOffFlow/InX_XonXoffFlow:这个属性是指进行发送/接收时的软件握手标志,两个握手信号之间的数据被认为是通讯数据,收到握手信号后,通讯就中止了。
在Delphi7.0中安装Spcomm串口通信控件的方法为:选择Delphi7.0的“Component”菜单,点击“Install Component...”菜单项,然后在弹出的Into existing package属性页中Unit file name输人框中选择SPCOMM.pas文件,单击两次 “OK”按钮后,就可以将Spcomm控件安装到Delphi7.0的System组件页上。
Spcomm共实现了三个类:串口类Tcomm、读线程类TreadThread以及写线程类TwziteThread[1]。Tcomm的某个实例在方法StartComm中打开串口,并实例化了一个读线程ReadThread和一个写线程WriteThread,它们和主线程之间进行消息的传递,实现串口通信。
串口调试助手使用说明概要
串口调试助手使用说明为简单明了,有些不言自明的功能不作介绍。
1 串口调试助手1.1 设置串口参数:串口号:1-16波特率:600-256000,>115200 时需要硬件支持。
2 接收区/键盘发送区2.1 接收数据a 设置串口参数b 如果要按十六进制形式显示接收数据,将十六进制显示选项选中。
c 点击打开/关闭串口区中的打开串口按钮。
2.2 显示接收数据的长度因某些限制,显示接收数据的文本不能太长,所以当显示文本长度快达到 62K 时会自动将显示文本删减到 32K,此时文本可保留 32K 的字符或约 10K 的十六进制数据显示。
2.3 在键盘上发送英文字符a在接收区/键盘发送区的输入框中用鼠标点一下。
b在键盘按下按键立刻发送。
在这里不能发送回车换行,也不能发送汉字,若要发送请在单字符串发送区发送。
3 发送数据可以发送单字符串,多字符串(字符串序列或直接在键盘上发送英文字符。
有两种发送数据格式,一种是普通的字符串,另外一种是十六进制数据即 HEX 格式数据。
发送 HEX 格式数据时要在字符串输入区中输入 HEX 格式字符串,并且要将相应区内的十六进制发送选项选中。
例:HEX 格式数据字符串12 34 AB CD FF3.1 单字符串发送区3.1.1自动发送,自动发送周期:此项功能可以每隔一段时间反复地自动发送输入框中的数据,点击自动发送按钮后即启动自动发送功能。
自动发送周期最大为 65535mS。
3.2 多字符串发送区在多字符串发送区可以发送一个字符串,或者自动地、依次发送所有的字符串。
请把鼠标移到“接收区/键盘发送区”和“多字符串发送区”之间,当鼠标形状发生变化时按下鼠标器的左键不松开,然后移动鼠标,将“多字符串发送区”的宽度调宽一些,让“间隔时间”显露出来。
3.2.1发送一个字符串a 输入字符串。
b 如果要发送 16 进制数据, 要先在字符串后的 HEX 选项框中打上对勾。
c 点击发送按钮。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,将数据写入串行端口输出缓冲区。