delphi用mscomm做串口通讯 接收到数据是乱码 怎么办啊?
来源:百度知道 编辑:UC知道 时间:2024/06/05 23:51:21
memo1.Text:=memo1.Text+mscomm1.input;
怎么改? 谢谢
3楼 你的程序只能接收到数据的一部分 为什么啊?
3楼 程序的接受端部分 谁能改下啊 谢谢
我想要 能把接收到的字符串数据改为16进制数据的程序 改得好的话追加50分
出现乱码可能
1 上位机下位机参数设置不一致 波特率 校验==
2 mscomm控件属性 设置 具体看下
设置一下控件属性
7)InputMode属性
void SetInputMode(long nNewValue); long GetInputMode();
访属性用于设置或者返回传输数据的类型。其取值和基本含义如下表所示。
设定值 值 描述
ComInputModeText(缺省) 0 通过Input属性以文本方式取回数据
ComInputModeBinary 1 通过Input属性以二进制方式取回数据
当发送类型是二进制时,应将以字节型数据放入Variant型变量中。
发送端:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,size: integer;
send_Command87:variant;
//fStream: TFileStream;
begin
size:=100;
send_Command87:= VarArrayCreate([1,size], varByte);
for i := 0 to size-1 do
begin
send_Command87[i]:=$ED//这里输入所要传输的数据
end;
mscomm.Output:=send_Command87;
end;
接收端:
var
buffer: Olevariant;//MSComm1.InputMode = comInputModeBinary
i: integer;
begin
case MSComm1.CommEvent of
comEvReceive: //串行接收事件处理
begin
buffer :=