注册TMsComm控件
1.将Mscomm.srg, Mscomm32.ocx,Mscomm32.dep三个文件复制到系统文件夹中C:\winnt\system32\。
2.用Windows下的注册工具regsvr32注册该OCX控件,点击“开始”->"运行",再在中填入(假设操作安装在C盘,WIN2000):
Regsvr32 C:\winnt\system32\Mscomm32.ocx
3.在注册表中手工新建一个主键项:先在点击“开始”->"运行",再在中填入regedit命令打开注册表,找到HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905 并将内容设置为:
kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
引入TMSComm控件
(1)进入Delphi 编程环境下,在菜单项中选中Component/Import ActiveX选项,出现ActiveX控件导入窗口;
(2)在其中选中Microsoft Comm Control 6.0(Version 1.1),并按需要选定Palette pages、unit dir name、Search path值(一般取默认值),最后选择Install按钮进行安装。即可将MSComm控件引入到Delphi 中。
(3)在编程使用中,直接打开ActiveX控件,选取TMSComm控件,放在窗体上,设置其属性即可。其使用方法与Delphi其它控件相同
打开Delphi,关闭所有项目。
1. 安装OCX控件
点击菜单项:Component -> Import ActiveX Control…
进入如下界面:
然后点击按钮“Add..”,弹出如下界面选择Ocx文件:
注意:如果是DLL文件,则可能不会出现,需要将文件类型切换为所有。
选中目标文件后,该Ocx或者DLL对应的OCX控件会自动添加到列表中。
点击按钮“Install…”,弹出如下对话框,提示将控件安装到哪个控件包,系统默认是dclusr.dpk,即Delphi默认的用户自定义控件包,选择默认值即可。
点击按钮“OK”后,即弹出如下dclusr.dpk的编辑界面,通常系统还会提示是否继续编译dclusr.dpk,选择“Yes”。
如果正常编译完成,则Ocx控件会被添加到Delphi IDE 控件栏的ActiveX页面。
1. 卸载OCX控件
点击菜单项:Component -> Import ActiveX Control…
界面同第1步,此略。 www.2cto.com
选中需要移除的OCX控件后,点击按钮“Remove”,系统会弹出确认对话框,点击“Yes”后,即可以移除该OCX在系统中的注册信息,理论上,将该控件拖放到窗体中会出现异常信息。
但是在用户的自定义控件包中尚存留文件,需要在空白的Delphi环境中打开自定义控件包文件,该文件通常在如下路径可以找到:
c:\borland\delphi6\LIB\dclusr.dpk
打开该文件后,会弹出如下界面:
在上述界面中,选中需要移除的文件(可能不止一个)并点击按钮“Remove”。
然后点击按钮“Compile”对该控件包重新编译。
如果编译正常的话,会提示该控件已经移除,且会从Delphi IDE控件栏的ActiveX页面中消失。
TMSComm控件的主要属性及事件
MSComm控件有27个属性,其中一部分可缺省设置为不用,常用的属性如下:
(1) CommPort:设置串行口选择。缺省值为1,选择为COM1;若赋值为2,则选择COM2。
(2) PortOpen:设置通信端的状态。设置为True时,打开端口;设置为False时,关闭端口并清除接受和发送缓冲区。
(3) Settings:设置通信时的波特率、奇偶校验、停止位参数。
(4) Inputlen:设置每次从接受缓冲区读却的字符个数。缺省值为0,表示将读取接受缓冲区中全部内容;若设置值为n,表示每次将读取接受缓冲区中的n个字符。
(5) InputMode:设置接收数据的类型。
(6) InBufferCount:设置返回接受缓冲区中等待被读取的字符个数。初始化程序时,InBufferCount设置值为0,表示清除接受缓冲区。
(7) OutBufferCount:设置返回发送缓冲区中等待发送的字符个数。设置值为0时,表示清除发送缓冲区。
(8) InBufferSize:设置接受缓冲区中的长度,缺省值为1024字节。
(9) OutBufferSize:设置发送缓冲区中的长度,缺省值为512字节。
(10) Rthreshold:设置表示在触发OnComm事件之前接收缓冲区允许有的字符数。缺省值为0,表示即使接收缓冲区有字符时,也不会触发OnComm事件;设置值为n时,表示接收缓冲区每有n个字符时,就会触发一次OnComm事件。
(11) Sthreshold:设置表示在触发OnComm事件之前发送缓冲区允许有的字符数。缺省值为0,表示不触发OnComm事件;设置值为n时,表示发送缓冲区每有n个字符时,就会触发一次OnComm事件。
(12) DTREnable:设置DTR的有效性。
(13) RTSEnable:设置RTS的有效性。
(14) Input:从串口读取数据。
(15) Output:向串口写入数据。
如果在通信过程中发生错误或事件,就会触发OnComm事件,并由CommEvent属性代码反映错误类型,在通信程序的设计中可根据该属性值来执行不同的操作。CommEvent属性值及其含义如下:
(1)ComEvSend:值为1,发送缓冲区的内容少于SThreshold指定的值。
(2)ComEvReceive:值为2,接收缓冲区内字符数达到RThreshold指定的值。
(3)ComEvFrame:值为1004,硬件检测到帧错误。
(4)ComEvRxOver:值为1008,接收缓冲区溢出。
(5)ComEvTxFull:值为1010,发送缓冲区溢出。
(6)ComEvRxParity:值为1009,奇偶校验错误。
(7)ComEvEOF:值为7,接收数据中出现文件尾(ASCII码为26)字符
本文介绍了如何在Delphi中使用TMSComm控件进行串口通信,包括控件的注册、引入、使用方法以及主要属性和事件的设置。详细步骤包括将控件文件复制到系统目录,使用regsvr32注册,通过Delphi的Component菜单导入控件,并展示了控件的主要属性如CommPort、PortOpen、Settings等,以及OnComm事件的错误处理。
1023

被折叠的 条评论
为什么被折叠?



