分享
 
 
 

mscomm32的简单应用

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有