转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
mscomm32的简单应用         ★★★★

mscomm32的简单应用

作者:闵涛 文章来源:闵涛的学习笔记 点击数:599 更新时间:2009/4/23 18:33:58

风花雪月 e梦情缘
网络代号:wnhoo or sos_admin
网名:e梦缘
Mail:
wnhoo@163.com

因为看到很多网友对串口通信的问题,其中最多的是关于元件的选用与通信的实现。
我想您不论用什么类型的控件操作rs232均是一样的,我比较喜欢用mscomm32,因为它是ms的,且是vb程式设计软件自带的,并且免费哦
还有一个就是moxa的rs232专业开发包pcomm,到
www.moxa.com.twwww.moxa.com.cn可以看到。
但是我建议您使用ms的,它免费,但pcomm不是的。并且mscomm32有中文帮助的,基本对串口操作事例都有的。很好用!!!

所以下面我就针对mscomm32的应用写了一个简单的串口通信工具,主要功能就是通过ms的mscomm32控件实现rs232的数据传送与接受。
主要讲解2中传送方法:
1、直接传送
2、传送数组元素

down:

http://delphi.ur-solution.com/delphi_download/upload/35466_mscomm1.rar

控件安装〉〉〉

方法零
直接regsvr32 mscomm32.ocx
条件:系统以前装过vb

方法一
1、安装VB6.0
2、如同我上面的所说的安装方法,在DELPHI(5、6、7)中安装就可以用了

方法二
原文著作:王金涛
出处:http://www.s8s8.net/cgi-bin/post.cgi?action=replyquote&forum=5&topic=2279&postno=4

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

  首先在VB安装目录下找到下列三个文件:

  Mscomm.reg, Mscomm32.ocx,Mscomm32.dep ,

  把这三个文件拷贝到Windows的system目录下(注意WinNT下是System32)。然后用Windows下的注册工具regsvr32注册该OCX控件,例如:

  Regsvr32 … system目录\Mscomm32.ocx .

  注册成功后用记事本打开Mscomm.reg,可以看到类似下面的内容:

  [HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]

@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun",为了能正确使用该控件,需要修改注册表的信息,在注册表的在HKEY_CLASSES_ROOT\Licenses下建一主键:

4250E830-6AC2-11cf-8ADB-00AA00C00905,主键的内容为

kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun.

  至此已经完成了控件的系统注册工作,剩下的工作是在Delphi中导入这个ActiveX控件,进入Delphi环境在Component菜单下选Import ActiveX Control,这时在列表中可以看到Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。在ActiveX控件页上可以看到一个电话为图标的控件,这就是MSComm控件。这样就可以象在VB中一样方便得使用MSComm控件了。

 

但是byte array的資料就是不知該用什麼方法送出去?

type
TCharArray=array[0..1] of BYTE;
PCharArray=^TCharArray;
procedure WriteCom(comm:TMSComm;const Buf:array of BYTE);
var
V:Variant;
p:PCharArray;
i:Integer;
begin
V:= VarArrayCreate([Low(Buf), High(Buf)],varByte);
P := VarArrayLock(V);
try
for i:=Low(Buf) to High(Buf) do P^[i]:=Buf[i];
finally
VarArrayUnlock(v);
end;
comm.OutPut:=V;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
buf:array[1..20] of BYTE;
i:integer;
str:string;
begin
if comm1.PortOpen then
begin
for i:=1 to length(str) do
buf[i]:=I;
comm1.RThreshold:=20;
WriteCom(comm1,buf);
end;
end;

我想您使用byte array,应该是传送2进制;需要将INPUTMODE为1 - comInputModeBinary。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台