Bonjour,
J'essaie de communiquer avec un pic16f877 par la rs232 . Mon code d'envoie de caractere delphi est le suivant :
Mon pic attend un string avec la commande gets(buffer) avec buffer composé d'un tableau de 4 caracteres puis la touche entrée (#13).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 procedure TForm1.Button_OpenClick(Sender: TObject); begin if ComPort.Connected then ComPort.Close else ComPort.Open; end; procedure TForm1.Button_SettingsClick(Sender: TObject); begin ComPort.ShowSetupDialog; end; procedure TForm1.Button_SendClick(Sender: TObject); var Str: String; begin Str := Edit_Data.Text; if NewLine_CB.Checked then Str := Str + #13; ComPort.WriteStr('Str); end; procedure TForm1.ComPortOpen(Sender: TObject); begin Button_Open.Caption := 'Close'; end; procedure TForm1.ComPortClose(Sender: TObject); begin if Button_Open <> nil then Button_Open.Caption := 'Open'; end; procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var Str: String; begin ComPort.ReadStr(Str, Count); Memo.Text := Memo.Text + Str; end;
La reception des chaines sur le pc se passe sans aucun souci, cependant lors de l'envoie, si j'envoie un caractere cela se passe bien . Par exemple j'envoie 1 à mon pic,et je demande à mon pic de me renvoyer cette chaine donc je recois bien 1 208 208 208 (208 est l'equivalent en asci de l'espace 10 - 48 )et je peux relancer autant de fois que je veux cette manip. Cependant quand j'envoie plus d'un caractere soit 12 ou 123 ou 1234, je ne recois plus rien et je ne vois vraiment pas pourquoi... Mon pic marche trés bien en emission avec un autre logiciel (serial de y morgan) mais je souhaite utiliser (Comport Example trouvé sur le net) . Je vous remercie par avance de votre réponse
Partager