我有一个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位英文版时,它也工作正常。 谢谢。
答案 0 :(得分:0)
AnsiChar值是根据区域设置字符集排序的字节大小(8位)字符,可能是多字节的。前256个Unicode字符对应于ANSI字符。
因此它受区域设置的影响。尝试将其更改为字节。