
Envoyé par
MeWaa
J'ai realisé une fonction de reception au lieu d'utiliser Gtkterm (hyperterm).
Les trames recues sont bonnes donc le probleme venait du terminal ce qui est assez surprenant.
Heu, non, en fait, ça ne l'est pas du tout : un terminal, par contre, est conçu pour afficher du texte et non pas du binaire... Donc, un double caractère nul, pour lui, c'est une chaîne C "normale" plus une chaîne C "vide".
Si tu veux tester de l'envoi binaire avec un terminal "texte", il vaut mieux jouer avec les caractères accentués et les commandes de terminal, par exemple la chaîne suivante :
"Test d'e\bémission de bZZZZ\b\b\b\binaire avec des cà\baractères affichables\r\n"
Si tout va bien, ton terminal devrait afficher la chaîne suivante, et faire passer le curseur à la ligne suivante :
Test d'émission de binaire avec des caractères affichables

Envoyé par
MeWaa
J'envoie deux trames de 128bits et j'en reçoie une seule de 256.
Y a t il un moyen de recevoire deux trame de 128 ou dois je separer manuellement les trames ?
C'est de la liaison série, et non pas des paquets UDP : c'est émis "tel quel" sur le médium, sans marqueurs spécifiques.
C'est à toi de séparer (temporellement) tes trames et/ou d'avoir une manière de les séparer depuis un flux binaire (longueur, marqueur de fin de trame, taille connue à l'avance, signaux modem, break, etc.).
N'oublie pas que le médium est très lent par rapport à ton PC, donc le poil de délai que tu mets entre les deux trames dans ton code est très certainement invisible à 100% côté médium : il est probable que lorsque tu reviens du second envoi, le premier ne soit toujours pas fini et soit encore dans les buffers du driver/UART...
Partager