2016-11-24 7 views
-1

У меня есть код Delphi 7, который передает значения данных датчика в DSP TMS32F28069. Значение, отправляемое Delphi, - это данные файла Hex. Например, я отправляю данные:Отправка данных Сбой при использовании Serial comport 411f delphi 7

F0; 01; 01; 07; 00; 00; 00; 00; 00; F7 из Delphi.

Я использую Comport 411f, и на самом деле, когда я использую Windows 10 64-битную английскую версию, все в порядке. Но когда я использую Windows 7 китайский 64-разрядный, данные, которые отправляются, никогда не получаемые DSP. Я попробовал несколько ноутбуков с использованием 64-битной версии 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; 

Пожалуйста, дайте мне какие-либо предложения, почему это произошло на окна 7 64 бит китайский вариант? потому что, когда я использую Windows 7 64-битную английскую версию, она также отлично работает. Спасибо.

+0

Вы пробовали данные байта 'j: array [1..12] of Byte; ... j [1]: = $ F0; '- проблема остается? – MBo

+0

Я пробовал, но он все еще остается Mbo, есть ли у вас другое предложение? –

+0

Установите http://www.sudt.com/ru/ap/download.htm и проверьте реальные переданные данные – MBo

ответ

0

От AnsiChar documentation

значения AnsiChar являются байт размера (8-бит) символы упорядоченные в соответствии с набором символов локали, который, возможно, многобайтовая. Первые 256 символов Unicode соответствуют символам ANSI.

Таким образом, это зависит от настроек локали. Попробуйте изменить его на байт.

+0

Я пробовал, и он держится, у вас есть другое предложение? –