我用spcomm控件做的1个串口通讯的例子,求大侠帮忙看下错在那里?
设置
Comm1.CommName := 'COM1'; //串口名
Comm1.BaudRate := 19200; //波特率
Comm1.Parity := None;
Comm1.ByteSize := _8;
Comm1.StopBits := _1;
发送
SendMsg := 'A&' + '13100001111' + '&' + SendMsg;
if Comm1.WriteCommData(PChar(SendMsg), Length(SendMsg)) then
SendResult := Format('信息%s发送成功', [SendMsg])
else
SendResult := Format('信息%s发送失败', [SendMsg]);
接收
SetLength(RMsg,BufferLength);
move(Buffer^,pchar(@RMsg[1])^,BufferLength);
Memo2.Lines.Add(RMsg);在没发送信息前可以读取到串口的初始化信息,但是点击发送按钮后提示‘发送成功’但接收不到‘发送’信息,在一台电脑上通过发个消息给板,板收到消息后把信息发到串口。
急等
设置
Comm1.CommName := 'COM1'; //串口名
Comm1.BaudRate := 19200; //波特率
Comm1.Parity := None;
Comm1.ByteSize := _8;
Comm1.StopBits := _1;
发送
SendMsg := 'A&' + '13100001111' + '&' + SendMsg;
if Comm1.WriteCommData(PChar(SendMsg), Length(SendMsg)) then
SendResult := Format('信息%s发送成功', [SendMsg])
else
SendResult := Format('信息%s发送失败', [SendMsg]);
接收
SetLength(RMsg,BufferLength);
move(Buffer^,pchar(@RMsg[1])^,BufferLength);
Memo2.Lines.Add(RMsg);在没发送信息前可以读取到串口的初始化信息,但是点击发送按钮后提示‘发送成功’但接收不到‘发送’信息,在一台电脑上通过发个消息给板,板收到消息后把信息发到串口。
急等
建议使用AdpComPort控件。
var
S:String;
begin
SetLength(S, BufferLength);
Move(Buffer^, PChar(S)^, BufferLength);
卡了两天在网上也没找到答案,有的说是spcomm控件的问题,我从新下载了一个新的还是没用
BufferLength: Word);
var
RMsg: string;
begin
//ShowMessage('111111111');
Memo1.Lines.Add('come');
SetLength(RMsg,BufferLength);
Move(Buffer^, Pchar(RMsg)^,BufferLength); //@RMsg[1]
//ShowMessage(RMsg);
Memo2.Lines.Add(RMsg);
end;
这个不就是绑定的接收事件吗。我最纳闷的是没发送前可以监听到串口信息,自己一发送就收不到了
用串口监控软件看看发送的内容
有没有邮箱,或是在网上也可以找到的
刚才发错了