DELPHI如何对串口进行控制?

dai79 2003-03-18 09:28:48
各位大虾,小弟想使用串口传送一个文件,但是对串口不是很清楚,没有用过,有谁能执导一、二谢谢。最后能有参考的例子。
...全文
38 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dai79 2003-03-18
  • 打赏
  • 举报
回复
非常感谢,我先看看。有问题再请教各位。我的email:dai79@21cn.com
shengliqiang168 2003-03-18
  • 打赏
  • 举报
回复
MMSCOMM和SPCOMM控件
一、使用SPCOMM控件
http://vip.6to23.com/aizb/subpage/delphidoc/spcomm.htm
二、使用MMSCOMM控件

由于Delphi中没有串口控件可用,所以首先需要把ActiveX控件MSCOMM加到元件选项板上。这是一个非常好的控件它不仅能对串口进行操作,而且还可以对Modem进行控制。下面结合一个具体的实例来说明如何用MSCOMM控件开发出串口通信程序。

创建一个Communication.dpr工程,把窗体的Name属性变为CommForm,将标题改为The Communication Test,选择File/Save As将新的窗体存储为CommFrm.pas,接下来参照图1和图2将控件添加到主窗体中。

图1 图2

由图1和图2我们可以看出,通过设置页可选定进行数据传输的通信端口和端口的波特率、奇偶校验、数据位和停止位,通信时每传输一个字符都将触发响应事件,在通信页“传输显示”位置可看到当前正在进行传输的数据。同时当出现回车换行符时将整行内容显示在memDisplay新的一行中,而全部接收的内容还将存在一个文件中。部分源代码如下:

变量说明

var

CommForm: TCommForm;

ss :string;

savef,readf :file of char;

i,j :longint;

初始化

procedure TCommForm.FormCreate(Sender: TObject);

begin

mscomm.commport:=1;

mscomm.settings:='9600,n,8,1';

mscomm.inputlen:=1;

mscomm.inbuffercount:=0;

mscomm.portopen:=true;

ss:='';

i:=0;

j:=0;

assignfile(savef,'save1');

rewrite(savef);

assignfile(readf,'read1');

reset(readf);

end;

设置确定

procedure TCommForm.btnConfirmClick(Sender: TObject);

begin

if mscomm.portopen then

mscomm.portopen:=false;

mscomm.commport:=strtoint(edtCommport.text);

mscomm.settings:=edtCommsetting.Text;

end;

传输事件

procedure TCommForm.MSCommComm(Sender: TObject);

var

filenrc :char;

buffer :variant;

s1:string;

c :char;

begin

case mscomm.commEvent of

comEvSend:

begin

while not(eof(readf)) do

begin

read(readf,filenrc);

mscomm.output:=filenrc;

j:=j+1;

lblDisplay.caption:=inttostr(j);

if mscomm.outbuffercount>=2 then

break;

end;

end;

comEvReceive:

begin

buffer:=mscomm.Input;

s1:=buffer;

c:=s1[1];

ss:=ss+c;

i:=i+1;

lblDisplay.caption:=c+inttostr(i);

write(savef,c);

if (c=chr(10))or(c=chr(13)) then

begin

lblDisplay.caption:='cr'+inttostr(i);

memDisplay.lines.add(ss);

ss:='';

end;

end;

end;

end;

307 2003-03-18
  • 打赏
  • 举报
回复
提供一篇文章给你看,希望能有帮助!
http://expert.csdn.net/Expert/topic/1538/1538505.xml?temp=6.332034E-02
有问题请发信息到我的E-mail:guangbowang@yahoo.com.cn
sunny518 2003-03-18
  • 打赏
  • 举报
回复
使用AT命令 具体不太清楚 看看串口编程的书吧

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧