Van de voorbeeldcode
#include <SoftwareSerial.h>SoftwareSerial mySerial (10, 11); // RX, TXvoid setup () {// Open seriële communicatie en wacht tot de poort wordt geopend: Serial.begin (57600); while (! Serial) {; // wacht tot de seriële poort verbinding maakt. Alleen nodig voor Leonardo} Serial.println ("Goodnight moon!"); // stel de gegevenssnelheid in voor de SoftwareSerial-poort mySerial.begin (4800); mySerial.println ("Hallo wereld?");} void loop () // keer op keer {if (mySerial.available ()) Serial.write (mySerial.read ()); if (Serial.available ()) mySerial.write (Serial.read ());}
Wat is het verschil tussen, waarom twee soorten aanroepen gebruiken om AT-opdrachtoproepen te maken.
SoftwareSerial mySerial (10,11) mySerial.begin (10,11)
en
Serial.begin ( 9600)
Bewerken, dit beantwoordt mijn vraag in mijn eigen woorden op basis van @jfpoilpret antwoord.
- Het is belangrijk om initialiseer zowel Serial als SoftwareSerial , aangezien SoftwareSerial wordt gebruikt om de daadwerkelijke commando's naar de GSM te sturen, en Serial wordt gebruikt om alle commando's en hun antwoorden op de debug-poort van
te bekijken
de GSM - De pinnen op de GSM en Arduino worden gebruikt om de 2 te verbinden en daadwerkelijke commando's door te geven. Terwijl de RS232 alleen wordt gebruikt voor foutopsporing. We kunnen echter een RS232-naar-USB-connector aansluiten om de GSM met de desktop (of laptop) te verbinden
- De code in de lus is essentieel om alle daadwerkelijke commando's om te zetten naar de debugging RS232-poort, en andersom, zodat we een tool als
cutecom
(op ubuntu) kunnen gebruiken om commando's door te geven aan de seriële GSM-invoerpinnen. ol >
Belangrijke opmerking: zorg er bij het gebruik van cutecom voor dat u CR line end selecteert om opdrachten te verzenden.