-1

我有一个 Delphi 7 代码,可将传感器数据值发送到 DSP TMS32F28069。Delphi 发送的值是 Hex 文件数据。例如我发送数据:

F0;01;01;07;00;00;00;00;00;00;00;F7 来自德尔福。

我使用 Comport 411f,实际上当我使用 Windows 10 64 位英文版时,一切都很好。但是当我使用windows 7中文64位时,发送的数据从未被DSP接收到。我在几台使用windows 7 64位中文版的笔记本上试了试,同样的问题,没有收到数据。这是我在 Delphi 7 中编写的代码:

procedure TForm1.dxBarButton19Click(Sender: TObject);
var
j:array[1..12]of AnsiChar;
begin
   j[1]:=#$F0;j[2]:=#$01;j[3]:=#$01;j[4]:=#$07;j[5]:=#$00;j[6]:=#$00;j[7]:=#$00;j[8]:=#$00;j[9]:=#$00;j[10]:=#$00;j[11]:=#$00;j[12]:=#$F7;
   comport1.Open;
 for p:=1 to 12 do
   begin
     comport1.Write(j[p],1);
   end;
end;

请给我任何建议,为什么会在 Windows 7 64 位中文版上发生这种情况?因为当我使用 Windows 7 64 位英文版时,它也可以正常工作。谢谢你。

4

1 回答 1

0

来自AnsiChar 文档

AnsiChar 值是根据区域设置字符集排序的字节大小(8 位)字符,可能是多字节的。前 256 个 Unicode 字符对应于 ANSI 字符。

所以它受语言环境设置的影响。尝试将其更改为字节。

于 2016-11-24T06:09:27.877 回答