Mon cerveau est frit, alors j'ai pensé que je transmettrais celui-ci à la communauté.La vitesse UART peut-être mal
Lors de l'envoi d'un caractère à mon système embarqué, il pense systématiquement qu'il reçoit 2 caractères. Le premier caractère reçu semble correspondre au caractère transmis (d'une manière inconnue) et le second caractère reçu est toujours 0xff.
Voici ce que j'ai observé:
Tx char (in hex) Rx character (in hex), I left out the second byte (always ff)
31 9D
32 9B
33 99
61 3D
62 3B
63 39
64 37
65 35
41 7D
42 7B
43 79
Je vérifie mes horloges et les semblent être OK. La seule différence entre cette version non fonctionnelle et la version précédente est que j'utilise maintenant une puce RS485.
j'ai tracé le signal sur toute la hauteur de l'unité MCU et il semble bien (confirmé la valeur du bit sur la broche RX)
Vous pouvez également obtenir une bonne réponse de ChipHacker. – Earlz
Ceci est mon message (j'étais trop paresseux pour me connecter). J'étais raisonnablement confiant avant de tester que j'avais tout correct. J'utilise un sn75 quelque chose ou un autre traducteur rs485. Le plan de masse est bon et les signaux +/- sont propres (correctement terminés). Le débit en bauds est réglé correctement sur 9600 sans parité, 1 bit d'arrêt. – michael
Si possible, écoutez vos propres transmissions comme moyen de détection de collision.J'avais personnellement une situation où un octet avait réussi à sortir du registre à décalage pour TX et je relâchais prématurément la broche de contrôle à l'émetteur-récepteur rs485, résultant en le dernier char transmis (la somme de contrôle) pour être incorrect. – Nate