mscomm32的简单应用

yuyu_happy1314

yuyu_happy1314

2016-02-19 12:47

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的mscomm32的简单应用,过去的都会过去,迎接崭新的开始,释放更美好的自己。
 

  风花雪月 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:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  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_ROOTLicenses4250E830-6AC2-11cf-8ADB-00AA00C00905]

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

  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;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  

  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。

展开更多 50%)
分享

猜你喜欢

mscomm32的简单应用

编程语言 网络编程
mscomm32的简单应用

MsComm文字传输

编程语言 网络编程
MsComm文字传输

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

iis 7启用32位应用程序

服务器
iis 7启用32位应用程序

不是有效的win32应用程序怎么解决

windows
不是有效的win32应用程序怎么解决

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

不是有效Win32应用程序的解决方法

电脑入门
不是有效Win32应用程序的解决方法

令Win32应用程序跳入系统零层

编程语言 网络编程
令Win32应用程序跳入系统零层

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win7和win10哪个好?

win7和win10哪个好?

DEPHI发布时免安装环境

DEPHI发布时免安装环境
下拉加载更多内容 ↓