使用Serial comport 411f delphi 7发送数据失败

时间:2016-11-24 02:19:56

标签: delphi delphi-7 tcomport

我有一个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位英文版时,它也工作正常。 谢谢。

1 个答案:

答案 0 :(得分:0)

来自AnsiChar documentation

  

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

因此它受区域设置的影响。尝试将其更改为字节。

相关问题