level 4
Delphi世界
楼主
各位大侠,好:
碰到一个问题,当接收从下位机串口发送来的大量含中文字符的数据时,显示在memo的数据就变成了乱码,但是在调试F8的时候,接收变量显示却没有问题,这个真是蛋疼啊,求赐教。
环境:xp+delphi7+cnvcl控件
串口初始化并打开:
串口初始化:
RS1.CommName := 'COM'+Form1.ComPortTxt.text;
RS1.CommConfig.BaudRate :=StrToInt(Form1.BaudRateTxt.Text);
RS1.CommConfig.Parity :=TParity(paNone);
RS1.CommConfig.ByteSize :=TByteSize(_8);
RS1.CommConfig.StopBits :=TStopBits(_1);
RS1.StopComm;
RS1.StartComm;
串口接收
var Str :string;
begin
SetLength(Str,BufferLength);
Move(buffer^,PChar(@Str[1])^,bufferlength);
CMsg:=CMsg+Str;//这里很奇怪,CMsg正常,Str部分乱码
ReturnTxt.Lines.Add(Str);
这是断点调试应该是正常的图片

但是显示在memo控件框里的就是乱码了
下面是相应的乱码内容,每次还都不一样,例如
=============================================================
杭?
莺?低邮旨际
豕煞萦邢薰?
欢迎使
妹姘宀馐云教?
试说明如下:
1:上电后POWE
R灯常亮绿色,PS_
ON#灯常亮红色,R
eady灯亮绿色为正
=============================================================
2014年05月16日 07点05分
1
碰到一个问题,当接收从下位机串口发送来的大量含中文字符的数据时,显示在memo的数据就变成了乱码,但是在调试F8的时候,接收变量显示却没有问题,这个真是蛋疼啊,求赐教。
环境:xp+delphi7+cnvcl控件
串口初始化并打开:
串口初始化:
RS1.CommName := 'COM'+Form1.ComPortTxt.text;
RS1.CommConfig.BaudRate :=StrToInt(Form1.BaudRateTxt.Text);
RS1.CommConfig.Parity :=TParity(paNone);
RS1.CommConfig.ByteSize :=TByteSize(_8);
RS1.CommConfig.StopBits :=TStopBits(_1);
RS1.StopComm;
RS1.StartComm;
串口接收
var Str :string;
begin
SetLength(Str,BufferLength);
Move(buffer^,PChar(@Str[1])^,bufferlength);
CMsg:=CMsg+Str;//这里很奇怪,CMsg正常,Str部分乱码
ReturnTxt.Lines.Add(Str);
这是断点调试应该是正常的图片

但是显示在memo控件框里的就是乱码了下面是相应的乱码内容,每次还都不一样,例如
=============================================================
杭?
莺?低邮旨际
豕煞萦邢薰?
欢迎使
妹姘宀馐云教?
试说明如下:
1:上电后POWE
R灯常亮绿色,PS_
ON#灯常亮红色,R
eady灯亮绿色为正
=============================================================
