mscomm32的简单应用

2016-02-19 12:47 46 1 收藏

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

【 tulaoshi.com - 编程语言 】

 

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

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

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

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

  kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun.

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

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

   

  但是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。

来源:https://www.tulaoshi.com/n/20160219/1601942.html

延伸阅读
全局参数:Private Rv_data() As Byte '存放接收的数据Private tmpRV() As Byte '存放暂存的数据Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Form_Load ()中先初始化控件参数With MSComm1.Settings = "9600,N,8,1".InputMode = 1 '设置接受数据的类型是二进制类型数据.InputLen = 8 '一次...
怀孕32周 准妈妈怀孕32周的变化 胎儿发育 胎宝宝的胎长约40cm,胎重约1800g。双顶径的平均值为8.17士0.65cm,腹围的平均值为26.20士2.33cm,股骨长为6.43士0.49cm。 他的皮下脂肪更加丰富,看起来已经是个漂亮的小娃娃了!此时胎宝宝的各个器官继续发育完善,内脏器官正在发育成熟,他的肺和胃肠功能已接近成熟...
Mscomm是微软一个强大的串口通讯的控件,其强大,简单的特点今我们不舍,在delphi中我们也可以使用它。下面这些代码是针对发送和接收为16进制处理的。 var   senddata:array[1..10] of char;   reData:array of Variant;   sendstr:string;   restr:string;   i:longint; begin  ...
首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project -- Add to Project -- Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对 Windows 通讯驱动程序的 API 函数的接口。 !-- frame contents --!-- /frame contents -- 换句话说,只需要设置和监视...
1、准备 GPS(Global Positioning System),即全球定位系统,利用24颗GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统、江河流域的灾害信息管理和预测系统中,GPS得到了广泛的应用。本文利用MSCOMM控件实现了GPS数据的采集,可为信息管理和指挥调度等提供定位数据。 本文采用GPS的...

经验教程

135

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部