DELPHI XE 10.4串口通信,不能发送数据

weixin_55457831 2021-03-14 09:45:25
请问各位大神,DELPHI XE 10.4串口通信用什么控件?
我用SPCOMM 3.1,串口可以接收到数据,但发送不了数据。发送时正常返回,不报错,就是没有发送数据。
发送代码:
S: AnsiString;
S := mmoSend.text;
FComm.WriteCommData(@S[1], length(S));
SPCOMM控件中实现部分:
function TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Boolean;
var
Buffer: Pointer;
begin
if (WriteThread <> nil) and (dwSizeofDataToWrite <> 0) then
begin
Buffer := Pointer(LocalAlloc( LPTR, dwSizeofDataToWrite+1 ));
Move( pDataToWrite^, Buffer^, dwSizeofDataToWrite );
FSendDataEmpty := False;
if PostThreadMessage( WriteThread.ThreadID, PWM_COMMWRITE,
WPARAM(dwSizeofDataToWrite), LPARAM(Buffer) ) then
begin
Result := True;
Exit
end
end;

Result := False
end;
...全文
770 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzlovelyboy 2021-04-06
  • 打赏
  • 举报
回复
Outx_XonXoffFlow := False; Inx_XonXoffFlow := False; DtrControl := DtrDisable; RtsControl := RtsDisable; 试下这样写。。
xiaotianwangzi 2021-03-28
  • 打赏
  • 举报
回复
,看看这样配置行不行。
看那山瞧那水 2021-03-14
  • 打赏
  • 举报
回复
FComm.WriteCommData(@S[1], length(S)); 不用这样写,直接PChar(S).
看那山瞧那水 2021-03-14
  • 打赏
  • 举报
回复
不是在盒子发帖了吗? function TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Boolean; 这里参数是Pchar,你传的是AnsiSting,这个不对 S: AnsiString;=》S:String;
weixin_55457831 2021-03-14
  • 打赏
  • 举报
回复
还是不能发送数据: 试了下面这种方式: var s:string; 调用: FComm.WriteCommData(PChar(S)., length(S)); 不报错,但没有发送数据。 还试了: var P:pchar; P:='abc'; FComm.WriteCommData(P, length(P)); 同样不报错,但没有发送数据。
发帖
网络通信/分布式开发

1588

社区成员

Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
帖子事件
创建了帖子
2021-03-14 09:45
社区公告
暂无公告