2016-11-24 2 views
-1

センサーデータ値をDSP TMS32F28069に送信するDelphi 7コードがあります。 Delphiが送信する値は16進数のファイルデータです。たとえば、データを送信する:データを送信するSerial comport 411f delphi 7を使用して失敗しました

F0; 01; 01; 07; 00; 00; 00; 00; 00; 00; F7 デルファイから。

私はComport 411fを使用していますが、実際にはWindows 10 64ビット英語版を使用しているときはすべて問題ありません。しかし、私はWindows 7中国語64ビット、データを受信したことがないDSPを受信したとき。私はWindows 7 64ビット中国語版を使用していくつかのノートブックを試してみて、それは同じ問題がある、データが受信されていません。これは7 64ビットの中国語版Windows上でなぜ起こったか

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; 

は私にどんな提案を教えてください: これは、私は、Delphi 7で書いたコードはありますか?なぜなら私がWindows 7の64ビット英語バージョンを使用すると、それはうまく動作していたからです。 ありがとうございます。

+0

バイトデータ 'j:array [1..12] of Byteを試したことがありますか? ... j [1]:= $ F0; ' - 問題は残っていますか? – MBo

+0

私は試しましたが、Mboのままにしておきます。他の提案はありますか? –

+0

http://www.sudt.com/en/ap/download.htmをインストールし、実際に送信されたデータを確認してください。 – MBo

答えて

0

AnsiChar documentationからAnsiCharの値は、おそらくマルチバイトロケール文字セットに従って順序付けバイトサイズ(8ビット)文字です。最初の256個のUnicode文字は、ANSI文字に対応しています。

したがって、ロケール設定の影響を受けます。バイトに変更してみてください。

+0

私は試したことがありますが残っています。他の提案はありますか? –

関連する問題