2017-04-21 4 views
0

Bitte, ich bin gespannt, wie wirken sich die Baudraten von Software Serial und Serial auf die anschließende Ausführung meines Arduino-Codes? Ich habe ein merkwürdiges Verhalten in meinem Code bemerkt. Es druckt weiter Test1, es geht nie weiter. Wenn ich die Baud-Raten auf die gleiche (9600) gemacht habe, bekomme ich kontinuierlich àààààà kontinuierlich. Also brauche ich eine Erklärung, was wirklich passiert.Konstante Iteration in Arduino Code

test.ino

#include "gsm.h" 
#include <SoftwareSerial.h> 
#include <string.h> 
#include <stdio.h> 

SoftwareSerial mySerial(10, 11); // RX, TX 
gsm gm; 
char temp[10]; 

void setup() { 
    Serial.begin(57600); 
    mySerial.begin(9600); 
    gm.getMsg(mySerial, 1); 
    Serial.print("Test1"); 
    if(mySerial.available()){ 
    mySerial.readBytes(temp, 10); 
    Serial.print("Test2"); 
    } 
    Serial.print("Test3"); 
    gm.getText(temp); 
} 

void loop() { 

} 

gsm.cpp

#include "gsm.h" 
#include <string.h> 
#include <arduino.h> 
#include <SoftwareSerial.h> 

void gsm::getText(char str[]) { 
    char *temp1 = strrchr(str, '\"')+3; 
    int l1 = strlen(temp1); 
    char *temp2 = strchr(temp1,'\n'); 
    int l2 = strlen(temp2); 
    int len = l1-l2; 
    char msg[10]; 
    strncpy(msg, temp1, len); 
    msg[len] = '\0'; 
    strncpy(message, msg,len); 
} 

void gsm::getMsg(SoftwareSerial serial, int index) { 
    serial.print("AT+CMGR = "); 
    serial.print(index); 
    serial.print("\r\n"); 
    delay(300); 
} 

gsm.h

#ifndef GSM_H_ 
#define GSM_H_ 
#include <SoftwareSerial.h> 

struct gsm{ 
    char message[20]; 
    void getText(char str[]); 
    void getMsg(SoftwareSerial serial, int index); 
}; 

#endif 
+0

Sie lesen ein einziges Byte in einen char-Array der Länge 1 ein erwarten, dass es eine Zeichenfolge sein? –

+0

ist es ein Tippfehler @ gre_gor –

Antwort

0

Sie müssen die Baudrate auf der seriellen Monitor die Baudrate anzupassen Sie setzen mit Serial.begin.

(Photo credit zu Adafruit)

serial monitor baud rate

+0

Ich tat das, aber immer noch nicht funktioniert. @ Keshzv Saharia –