J'ai essayé de voir un caractère ASCII "A" avec un oscilloscope, mais la valeur binaire réelle et les valeurs de l'oscilloscope sont différentes, pourquoi? ASCII "A" Valeur binaire - 01000001
L'oscilloscope affiche ce graphique:
J'utilise un Arduino Uno pour envoyer la valeur ASCII en utilisant le code:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("A");
delay(1000);
}
la source
println
commande, ce qui signifie imprimer la chaîne, ainsi qu'un "\ r \ n". Donc trois personnagesSi vous regardez la documentation Arduino println () , vous verrez qu'elle ajoute un retour chariot et un saut de ligne à la fin. Ainsi, en décimal, vous vous retrouverez avec 65 (A), 13 (CR) et 10 (LF), ce qui en binaire se traduit par:
Les données série asynchrones sont envoyées en premier au LSB, ce qui devient:
Votre signal est au ralenti haut donc le bit de départ sera 0 et le bit d'arrêt sera 1 donc en ajoutant cela à chaque octet et vous vous retrouvez avec:
Il est un peu difficile de déterminer le moment exact de votre diagramme, mais cela semble correspondre au moins à peu près et devrait vous donner une idée d'où viennent certains bits supplémentaires et pourquoi ils sont réorganisés. Le lien Wikipedia fourni par Kvegaoro donne beaucoup de bonnes informations de base sur les données série asynchrones.
la source
Si ce flux que vous montrez est en série asynchrone , l'oscilloscope affichera le bit de démarrage, le ou les bits d'arrêt et les bits de parité correspondants. Tenez également compte du fait que votre signal est inversé ou non et que la météo est le bit le plus significatif en premier ou le bit le moins significatif en premier. Si vous ajoutez plus de détails sur le flux série que vous avez représenté dans l'image, nous pouvons vous donner une meilleure réponse plus détaillée sinon ce n'est qu'une supposition éclairée
la source