如果你测试的是同一台机子上的两个串口,就连接好2个串口,然后打开两次串口调试助手,分别选好串口编号,设定波特率等参数,点连接,然后在发送区随便填点信息点发送,打开的2个串口调试助手的窗口能互相发送接收,就说明这两个串口能正常通信
如果测试2台不同机子上的串口,就分辨在两台机子上打开串口调试助手, *** 作一样
如果只测试一个串口,RS422和RS485方式的是测不了的,RS232的可以短接2,3针脚,打开一个串口调试助手,选好串口编号和参数,发送信息能在接收区得到回复,证明该串口能工作
读取串口的上传数据,利用SOCKET转发到网络上
SOCKET读取/接受网络上发来的数据,下发到串口设备
数据中转啊,数据转发,中间是数据,两侧,一侧是与串口打交道,一侧是和网络打交道
用串口控制继电器开关,只要能识别出串口接收的数据是什么就行。如果只是一个继电器,那只有两个动作,开和关,所以,自己确实两个控制代码,如用0xA1表示开,0xAF表示关。串口收到数据后,判断是什么代码后,就执行相应动作即可。如果想简单的控制代码,就用这一个字节,想串口控制更可靠,就用多字节代码,并有校验码,保证串口通信控制的正确可靠。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Comm1: TComm;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
rbuf : array[18] of byte;
implementation
{$R dfm}
function HexStrToStr(const S:string):string;
//16进制字符串转换成字符串
var
t:Integer;
ts:string;
M,Code:Integer;
begin
t:=1;
Result:='';
while t<=Length(S) do
begin //xlh 20061021
while (t<=Length(S)) and (not (S[t] in ['0''9','A''F','a''f'])) do
inc(t);
if (t+1>Length(S))or(not (S[t+1] in ['0''9','A''F','a''f'])) then
ts:='$'+S[t]
else
ts:='$'+S[t]+S[t+1];
Val(ts,M,Code);
if Code=0 then
Result:=Result+Chr(M);
inc(t,2);
end;
end;
procedure TForm1Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
data,vdata : double ;
str :string;
begin
SetLength(Str,BufferLength);
move(buffer^,pchar(@rbuf[1])^,bufferlength);
memo1linesAdd( floattostr(rBuf[1]));
end;
procedure TForm1FormCreate(Sender: TObject);
begin
Comm1commname := 'com'+inttostr(6) ;
comm1baudrate := 9600 ;
comm1startcomm;
end;
procedure TForm1Button1Click(Sender: TObject);
var
str:string;
begin
str:= HexStrToStr(edit1Text);
form1comm1writecommdata(pchar(str),length(str));
end;
procedure TForm1Button2Click(Sender: TObject);
var
str:string;
begin
str:= HexStrToStr(edit2Text) ;
form1comm1writecommdata(pchar(str),length(str));
end;
end
看您做什么啦 如果是和下位机通讯 先用comm1连接 在发送 或者上面的代码接受
这里使用的是16进制发送
以上就是关于版的串口调试助手源代码.怎么实现串口发送文件的全部的内容,包括:版的串口调试助手源代码.怎么实现串口发送文件的、求串口转网口软件Serial2Net的vc的源代码,好的话可在加分、程序如何写串口控制继电器开关求思路和源码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)