求串口通信的例子,谢谢大家,必有重谢!! ( 积分: 100 )

  • 主题发起人 主题发起人 lilyqiu_80
  • 开始时间 开始时间
L

lilyqiu_80

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好!我现在要编一个串口通信的例子,主要是做温度测量,就是从温度测量设备那儿把温度值读出来,并对温度测量设备进行一些设置,用的是485的接口,是否需要转为232,如果需要的话,要用什么设备,请做过串口通信的前辈给我一些例子学习吧!!我是初学者,需要大家朵朵帮忙,真的感激不尽!!我的邮箱是weizi801205@163.com
 
大家好!我现在要编一个串口通信的例子,主要是做温度测量,就是从温度测量设备那儿把温度值读出来,并对温度测量设备进行一些设置,用的是485的接口,是否需要转为232,如果需要的话,要用什么设备,请做过串口通信的前辈给我一些例子学习吧!!我是初学者,需要大家朵朵帮忙,真的感激不尽!!我的邮箱是weizi801205@163.com
 
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;

procedure TForm1.SendHex(S: String);
var
s2:string;
buf1:array[0..50000] of char;
i:integer;
begin
s2:='';
for i:=1 to length(s) do
begin
if ((copy(s,i,1)>='0') and (copy(s,i,1)<='9'))or((copy(s,i,1)>='a') and (copy(s,i,1)<='f'))
or((copy(s,i,1)>='A') and (copy(s,i,1)<='F')) then
begin
s2:=s2+copy(s,i,1);
end;
end;
for i:=0 to (length(s2) div 2-1) do
buf1:=char(strtoint('$'+copy(s2,i*2+1,2)));
Comm1.WriteCommData(buf1,(length(s2) div 2));
end;

procedure TForm1.Button3Click(Sender: TObject);
var
p:pchar;
x:integer;
begin
if Check1.Checked then
SendHex(Memo1.Lines.Text) //发送十六进制
else begin
x:=Length(Memo1.Lines.Text); //发送字符
p:=Pchar(Memo1.Lines.Text);
Comm1.WriteCommData(p,x);
end;
end;
//接收
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
tmpArray:array[0..4096] of Byte;
ArraySize,i: DWORD;
Count:DWORD;
tmpStr:string;
pStr:PChar;
begin
if Check1.Checked then
begin
pStr:=Buffer;
tmpStr:=string(pStr);
Dec(PStr);
for i:=0 to Length(tmpStr)-1 do
begin
inc(PStr);
tmpArray:=Byte(PSTR^);
Memo2.Lines.Add(IntToHEX(Ord(tmpArray),2));
end;
exit;
end;
pStr:= Buffer;
memo2.Lines.Add(pStr);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Comm1.StartComm;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Comm1.StopComm;
end;
 
要控件的还是api的
 
楼上用的是MSCOMM32
 
如果是485需要转成232,因为好像spcomm只支持232的(不确定,楼主自己测)

楼主的兄弟贴的应该是SPCOMM的吧

其实串口程序可以理解成两个部分,一部分是串口通信,收发数据,另外一部分更加重要,就是解些数据,这个部分通常需要自己搞定,比较少碰到现成代码

转个帖子
http://www.delphibbs.com/delphibbs/dispq.asp?LID=2538444
标题: 菜鸟发问:SPCOMM通讯问题 (100分)
 
谢谢大家关心,我想先考虑用mscomm控件的,因为时间紧张,要尽快做出来,如果有api的也行。我就想先学习一下例子,就是如果大家原来有编好的例子,我想先学习一下。还有我这儿有通讯协议,如果大家需要的话,我可以发到你们的邮箱里。我的邮箱是weizi801205@163.com,谢谢大家,请多多帮忙!!!
 
485转232可以用磨沙卡(MOXA)
 
谢谢楼上的朋友,请大家帮忙啊,提供一些温度读写方面的程序给我,我这儿有协议可以提供给大家。谢谢了
 
后退
顶部