web-dev-qa-db-fra.com

Qu'est-ce que PuTTY envoie lorsque j'appuie sur la touche Entrée?

J'essaie désespérément de faire fonctionner une clé électronique Bluetooth avec mon Arduino mais je ne peux pas lui envoyer la commande dont elle a besoin. Je peux l'utiliser lorsque je le connecte à mon ordinateur via une clé USB à la puce UART, envoie la commande (C) à partir de PuTTY, puis appuie sur Enter.

La feuille de commande du dongle Bluetooth indique que la commande que je tente de lui envoyer C<cr> mais je ne sais pas comment envoyer le caractère de retour chariot approprié à partir du code Arduino. J'ai essayé d'utiliser la fonction Serial.println() ainsi que d'ajouter le caractère \r à ma Serial.write("C\r") actuelle, mais aucun de ceux-ci ne fonctionne.

Comment puis-je atteindre cet objectif? -- Je vous remercie.

8
Sponge Bob

Fait intéressant, je peux signaler le contraire sur Win 7: PuTTY pour moi et mon projet intégré n’envoie que "\ r" par le port COM. Curieux, lisez: inexplicable, mais je cherche simplement l’un ou l’autre des personnages à l’autre bout de la connexion série.

Ensuite, si vous activez 'Implicit LF dans chaque CR "sous Options du terminal, il enverra les deux"\r\n ". Le comportement par défaut semble s'apparenter à une machine Commodore: D ( http://en.wikipedia.org/wiki/Newline ) ... qui savait ...

5
Sowka

PuTTY émule xterm qui émule vt100. Pour que PuTTY envoie les lettres CR/LF en appuyant sur Entrée, tapez ESC [20h dans PuTTY après la connexion au périphérique série. Ceci définit VT100 LNM sur true.

http://vt100.net/docs/vt100-ug/chapter3.html

Alimentation ligne/nouvelle ligne Nouvelle ligne ESC [20h Alimentation ligne ESC [20l

3
bubbasnmp

Sur le programme arduino, utilisez simplement Serial.write et les codes des deux caractères:

Serial.write(13);    // CR
Serial.write(10);    // LF

Et évitez Serial.print car il est conçu pour être lisible par l’homme, donc formaté.

références: écrireimprimer

2
Luis Siquot

Si vous regardez la table ascii ou une référence similaire, cela peut vous intéresser:\r ou\x0D

Pour une meilleure compréhension, voir: http://www.grok2.com/sedfaq6.html

2
user1701341

L'envoi de CR + LF est possible dans PuTTY modifié. Le code source est disponible sur https://github.com/gniemirowski/PuTTY-crlf et le binaire Windows sur https://www.grzegorz.net/pliki/PuTTY-crlf.Zip Lorsque vous exécutez cette version suffit d'aller à Terminal -> Clavier et sélectionnez "CR LF" pour l'option "La touche Entrée".

 enter image description here

1
grzegorz

Hier, j’essayais avec cela par un autre problème. En configuration standard (sous Windows et Linux) si vous tapez "aide" puis appuyez sur entrée sur le port série apparaîtra suivi chaîne de bits (vérifiée avec terminal connecté RS232 et analyseur logique):

0x68 (h) 0x65 (e) 0x6c (l) 0x70 (p) 0x0d (CR: retour chariot U + 000A)

on dirait que PuTTY met CR sur ENTER (peu importe si vous êtes sous Linux ou Windows)

0
Mazeryt

J'ai essayé ce code très simple (cr = retour chariot)

Serial.write(13);

Et comme les prochains caractères "imprimés" vont alimenter le texte résiduel, ça va.

0
yannick85

Je suis presque sûr que vous recherchez le caractère \n nouvelle ligne.

0
uDalillu