救急啊!串口通信,问题多多 ( 积分: 30 )

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

love751

Unregistered / Unconfirmed
GUEST, unregistred user!
我是个刚刚接触串口通信的菜鸟。那位过路人能留个串口通信的程序让小弟参考一下。只要收发就可以了最好是用SPCOMM控件做的。我自己做的只能发数据但是接收不到数据。我就剩这点分了,请大家帮帮忙。
 
我是个刚刚接触串口通信的菜鸟。那位过路人能留个串口通信的程序让小弟参考一下。只要收发就可以了最好是用SPCOMM控件做的。我自己做的只能发数据但是接收不到数据。我就剩这点分了,请大家帮帮忙。
 
请大家帮帮忙啊!
 
分析SPCOMM源文件,什么都清楚了
 
这里有例程
http://www.source520.com/SoftView/SoftView_4604.html
 
不知道您是用他来做什么的?
 
我用SPCOMM做串口通信。使用writecommdata()这个函数发出数据。但OnReceiveData 这个事件为什么没有反映呢??请大家指点迷经啊!急!!!!!!!!!
 
说的太不清楚了,留个邮箱吧
 
你的程序我估计是没什么问题,可能是添加了第三方控件忘了注明吧
你可以在interface下面uses下再加一个SPcomm
试一下,能不能运行!
不能运行的话给我说一下错误提示
 
发送程序
procedure senddata;
var
i:integer;
commflg:boolean;
begin
viewstring:='' ;
commflg:=true;
for i:=1 to 6 do
begin
if not form1.comm1.writecommdata(@sbuf,1) then
begin
commflg:=false;
break;
end;

sleep(2);
viewstring:=viewstring+inttohex(sbuf,2)+'' ;
end;
viewstring:='发送'+viewstring+' ';
form1.memo1.lines.add(viewstring);
form1.memo1.lines.add('');
if not commflg then
messagedlg('发送失败!' ,mterror,[mbyes],0);
end;
发送的数
procedure TForm1.Button1Click(Sender: TObject);
begin

sbuf[1]:=byte($f0); //Ö¡Í·
sbuf[2]:=byte($01); //ÃüÁîºÅ
sbuf[3]:=byte($ff);
sbuf[4]:=byte($ff);
sbuf[5]:=byte($01);
sbuf[6]:=byte($f0); //֡β
senddata;//µ÷Ó÷¢Ëͺ¯Êý
end;
接收
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
viewstring:='';
move(buffer^,pchar(@rbuf^),bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring + inttohex(rbuf,2)+'';
viewstring:='接收'+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');
end;
错误提示:[Error] Unit1.pas(95): Pointer type required
就是说它pchar(@rbuf^)指针类型不匹配
是什么原因啊!请大家帮帮忙啊
 
你在接收
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
下再加 viewstring:string;
rbuf:array[0..5] of byte;
试试
 
这个接收有问题。我换了一个控件comport大家有用过的吗??用这个控件怎么来接收数据啊???请各位大虾指点米经。谢谢了!!!!
 
串口通讯偶一般是用API函数,控件只用过MSComm,还是先研究一下API函数吧,也不难
 
pchar(@rbuf^)指针类型不匹配,是不是应该这样写:pchar(@rbuf)^,还有是不是要连接上串口呢,有线连了吗?
 
SPComm,MSComm我都用,各有优点,我都封装了,如果需要,留个E-mail发给你
看你写的~~~~
 
谢谢大家的支持,我用comport控件完成了串口的收发通信。不过很麻烦,需要对串口进行初始化。大家有空也用用这个控件很好用的
 
多人接受答案了。
 
后退
顶部