Allow to specify rate manually

This commit is contained in:
Volodymyr Shymanskyy
2016-12-29 14:14:26 +02:00
parent d76a2a645c
commit 5a860fa00e

View File

@@ -8,6 +8,13 @@
*
**************************************************************/
// Select your modem:
#define TINY_GSM_MODEM_SIM800
//#define TINY_GSM_MODEM_SIM900
//#define TINY_GSM_MODEM_M590
#include <TinyGsmClient.h>
// Set serial for debug console (to the Serial Monitor, speed 115200)
#define SerialMon Serial
@@ -19,9 +26,11 @@
//#include <SoftwareSerial.h>
//SoftwareSerial SerialAT(2, 3); // RX, TX
#include <TinyGsmClient.h>
TinyGsm modem(SerialAT);
// Module baud rate
uint32_t rate = 0; // Set to 0 for Auto-Detect
void setup() {
// Set console baud rate
SerialMon.begin(115200);
@@ -29,16 +38,16 @@ void setup() {
}
void loop() {
// Detect module baud rate
uint32_t rate = 0;
uint32_t rates[] = { 115200, 9600, 57600, 19200, 74400, 74880 };
if (!rate) {
static uint32_t rates[] = { 115200, 9600, 57600, 19200, 38400, 74400, 74880, 230400, 460800, 2400, 4800, 14400, 28800 };
SerialMon.println("Autodetecting baud rate");
for (unsigned i = 0; i < sizeof(rates)/sizeof(rates[0]); i++) {
SerialMon.print(String("Trying baud rate ") + rates[i] + "... ");
SerialAT.begin(rates[i]);
delay(10);
if (modem.autoBaud(2000)) {
if (modem.autoBaud(1000)) {
rate = rates[i];
SerialMon.println(F("OK"));
break;
@@ -46,6 +55,7 @@ void loop() {
SerialMon.println(F("fail"));
}
}
}
if (!rate) {
SerialMon.println(F("***********************************************************"));