J'ai un code Delphi 7 qui reçoit les valeurs de capteur d'un DSP TMS32F28069. La valeur reçue par Delphi est donnée par le fichier Hex. Par exemple, j'envoie des données:Données manquées reçues à l'aide du port série 411f delphi 7
F1; 01; 01; 07; 00; 00; 0A; 00; 00; 00; 00; F7
de DSP.
J'utilise Comport 411f et en fait quand j'utilise Windows 10 64 bits version anglaise tout va bien. Mais quand j'utilise Windows chinois 64 bits, les données qui sont parfois bien reçues changent parfois. J'ai essayé plusieurs portables en utilisant Windows 7 64 bits version chinoise, et il a le même problème. Les fichiers reçus sur Windows 7 64 bits version chinoise de répresentation:
F1; 01; 01; 01; 00; 00; 00; F7; 00; 00; F7; 00.or F1; 01; 07; 01 ; 00; 0A; 00; 00; F7 F7; 00; 00
et toujours change.This est le code que j'ai écrit en Delphi 7:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
p:integer;
r:array[1..12]of integer;
h:array[1..12]of String;
begin
comport1.Open;
for p:=1 to 12 do
begin
comport1.Read(r[p],1);
h[p]:= IntToHex((r[p]),2);
sMemo3.Text:= h[1]+';'+h[2]+';'+h[3]+';'+h[4]+';'+h[5]+';'+h[6]+';'+h[7]+';'+h[8]+';'+h[9]+';'+h[10]+';'+h[11]+';'+h[12];//Show data Receive on Memo4//
end;
end;
S'il vous plaît me donner toute suggestion pourquoi cette arrivé sur Windows 7 64 bits version chinoise? parce que quand j'utilise la version anglaise de Windows 7 64 bits, c'était aussi très bien.
Merci
Le 'ComPort1RxChar' a une entrée' count'. C'est le nombre d'octets reçus. Vous devez l'utiliser pour remplir un tampon de portée globale et, une fois tous les octets reçus, vous devez interpréter le message complet. –
Avez-vous un exemple de code? je voudrais l'essayer. Je vous remercie. –
Vous mettez également à jour le mémo dans la boucle, ce qui est un peu inutile. Mettez à jour une fois, lorsque le message est terminé. –