串口通信(急)(100分)

  • 主题发起人 主题发起人 自由自在
  • 开始时间 开始时间

自由自在

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位高手:
我现在想把一个16进制数0xAA用一个位从串口发出去,怎么办?
 
var
C: Char;
begin
C := #$0XAA;
if ComPort1.Connected then ComPort1.Write(C, 1);
end;
 
先安装串行口控件,再按控件要求去写串行口
 
有mscomm控件
begin
mscomm1.portopen:=true;
mscomm.output:=$aa;
end;
 
使用Spcomm控件
发送:
SendText:=#$AA;
SPComm1.WriteCommData(pchar(SendText), length(SendText));

下载我的串口测试程序试试:
http://211.91.191.8/public/xzy/Mcom.rar
用Winrar 3.0解压
 
用MSCOMM;
procedure TfrmMScomClient.CtlYun(const A:Byte);
var
TurnInfo: OleVariant;
begin
TurnInfo := VarArrayCreate([0,0], varByte);
TurnInfo[0] := A; //信息码
//前三个字节和的补码
MSComm1.CommPort := 1; //COM1
MSComm1.Settings :='9600,N,8,1'; //设置通信参数,第九位为1
MSComm1.Portopen := True; //打开端口
MSComm1.Output := TurnInfo; //发送控制信息
MSComm1.PortOpen := False; //关闭端口
end;
 
直接嵌入汇编
begin
asm
开端口
输出0xAA,
关闭端口
end;
end
 
谢谢大家,在我看大家的答案前我已找到了答案。
一:
var
SendText:Byte;
begin
SendText:=170;//Send 0xAA
SPComm.WriteCommData(@SendText,1);
end;
二:
和Block_K_E的一样
我现在用的是第一种方法。
再次谢谢大家了。
 
后退
顶部