2016-11-20 5 views
0

J'ai donc joint avec succès un Esp8266 à un Arduino Due. Je peux communiquer avec lui via Serial Monitor si je choisis le Baudrate à 74880. Ensuite, toutes les commandes arrivent correctement et peuvent être relues correctement. Cependant, quand j'envoie la commande AT+RST qui redémarre l'Esp8266 je ne peux plus communiquer avec elle et ai besoin de rouvrir la connexion série avec un Baudrate de 115200. Je dois répéter ceci chaque fois que je charge le code nouveau à l'Arduino ou quand je éteindre l'Esp8266.Pourquoi ai-je besoin de modifier la vitesse de transmission après avoir envoyé une réinitialisation à l'ESP8266?

Des idées d'où vient ce comportement?

Répondre

2

Vous êtes une explication sur l'endroit où sont les origines d'un tel comportement: par le système lui-même

Baudrate de 74880 Bd est la vitesse de transmission « natif » ESP pour envoyer des messages de débogage générés automatiquement pendant le démarrage dans le cas où il y a 26 MHz au lieu de 40 MHz cristal utilisé à bord - et comme nous pouvons le voir, principalement que est le cas. Avec un cristal de 40 MHz, le débit en bauds sera comme prévu (115200) mais avec un cristal de 26 MHz à la place, le débit en bauds est de 115200 * 26/40 = 74880. Plus tard, après le démarrage du bootloader, la vitesse de transmission est contrôlée. C'est pourquoi vous avez deux vitesses de transmission différentes: la première est la valeur par défaut (74880) et la seconde est celle qui est active ultérieurement (celle que vous pouvez définir).

J'ai l'habitude de définir le débit en 74880 afin que je puisse voir à la fois les messages générés automatiquement et les messages que j'envoie du code.

+0

Cela n'explique pas pourquoi le firmware AT (Qui court après le bootloader) semble également communiquer à 74880 bauds. – cranphin

+0

Oui, mais alors je n'aurais pas besoin de changer quelque chose d'autre et juste pourrait-il fonctionner sur 74880 tout le temps, n'est-ce pas? Cependant, j'ai besoin d'ouvrir la connexion initiale avec 74880, réinitialiser l'ESP et puis je dois me connecter avec 115200 Baudrate – Kev1n91

+1

@cranphin - C'est parce que tous les messages de débogage sont contrôlés par le code contenu dans la ROM afin firmware flashé ne peut pas changer les timings codés . –

0

Afin de définir le débit UART en continu après une réinitialisation, vous devez utiliser AT+UART_DEF.

De l'AT instruction:

  1. AT + UART_DEF - Configuration UART par défaut Cette commande définit la configuration UART et enregistrez-le à clignoter. Il est stocké comme paramètre par défaut et sera désormais utilisé comme débit par défaut.
+0

Cela pourrait résoudre un problème, mais il ne répond pas à la question réelle :) Quel est ** pourquoi ** l'ESP se comporte comme décrit? Lequel, si je le lis correctement, est de lancer le firmware AT à 74880 bauds après la mise sous tension, puis à 115200 bauds après une réinitialisation. – cranphin

+0

@cranphin: Le message indique qu'il a choisi le débit bauds 74880, et que la communication était correcte, réinitialisée, puis la communication en utilisant le débit bauds 74880 ne fonctionne pas, mais fonctionne avec le débit binaire 115200. Cette réponse suggère de configurer le débit bauds sur 74880 de manière persistante. réinitialiser. pourquoi cela ne répond pas à la question? – mpromonet

+0

Il n'a pas demandé de solution (bien qu'il puisse être heureux avec lui), mais pourquoi ce comportement se produit :) – cranphin