DELPHI XE 10.4串口通信,不能发送数据
请问各位大神,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;
我用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;
...全文
相关推荐
Delphi XE10调用微信接口
Delphi XE10调用微信接口详细教程,感谢DelphiTeacher开源
Delphi 2007-XE10串口通信控件实战开发包
为了实现协议解析解耦,应在事件处理器中仅做最小化处理——即提取原始数据并交由专用解析器处理。begin// 最小帧长检查elseend;end;
SPComm串口控件在Delphi XE10.1中的应用与实战
特性描述无界面阻塞主线程不参与I/O操作,UI始终保持响应高并发能力可同时管理多个串口连接而不相互干扰低CPU占用使用WaitForMultipleObjects等待事件,避免忙轮询灵活扩展性支持自定义缓冲区大小与超时策略此外,SPComm还利用Windows的重叠I/O(Overlapped I/O)机制进一步优化性能。通过指定标志打开串口句柄,允许异步读写操作在后台执行,真正实现非阻塞行为。begin。
Delphi 控件 TMS Component Pack v8.3.4.0 XE10.2
著名的 Delphi 控件组。含全部源码,支持 Delphi XE10.2 Tokyo
delphi xe10 蓝牙串口通讯DEMO
通过delphi xe10 的标准串口协议进行通讯的例子,很好用的demo


网络通信/分布式开发
