Есть вот такой код, как только подключил Шилд к ардуино все работало (но с проблемами, но сейчас не о них) а дело вот в чем, что случилось и с чем, что в терминале в место букв квадратики HTML: <spoler> #include <SoftwareSerial.h> #include <String.h> SoftwareSerial mySerial(7, 8); //char txt[]; void setup() { mySerial.begin(19200); // the GPRS baud rate Serial.begin(19200); // the GPRS baud rate delay(500); } void loop() { //after start up the program, you can using terminal to connect the serial of gprs shield, //if you input 't' in the terminal, the program will execute SendTextMessage(), it will show how to send a sms message, //if input 'd' in the terminal, it will execute DialVoiceCall(), etc. if (Serial.available()){ if (Serial.read()=='h') SubmitHttpRequest(); } if (mySerial.available()) Serial.write(mySerial.read()); } ///SendTextMessage() ///this function is to send a sms message void SubmitHttpRequest() { mySerial.println("AT+CSQ"); delay(100); ShowSerialData();// this code is to show the data from gprs shield, in order to easily see the process of how the gprs shield submit a http request, and the following is for this purpose too. mySerial.println("AT+CGATT?"); delay(100); ShowSerialData(); mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");//setting the SAPBR, the connection type is using gprs delay(4000); ShowSerialData(); mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet.beeline.ru\"");//setting the APN, the second need you fill in your local apn server delay(4000); ShowSerialData(); ShowSerialData(); mySerial.println("AT+SAPBR=1,1");//setting the SAPBR, for detail you can refer to the AT command mamual delay(4000); mySerial.println("AT+HTTPINIT"); //init the HTTP request delay(4000); ShowSerialData(); mySerial.println("AT+SAPBR=2,1"); //get IP addres delay(4000); ShowSerialData(); mySerial.println("AT+SAPBR=4,1"); Serial.println('\r'); delay (4000); mySerial.println("AT+SAPBR=5,1"); Serial.println(); ShowSerialData(); delay(4000); ShowSerialData(); mySerial.println("AT+HTTPPARA=\"URL\",\"176.52.40.157:80/123&qwe&tr\""); delay(1000); ShowSerialData(); mySerial.println("AT+HTTPPARA?"); Serial.println("_"); delay(1000); ShowSerialData(); mySerial.println("AT+HTTPACTION=0");//submit the request delay(10000); ShowSerialData(); mySerial.println("AT+HTTPREAD");// read the data from the website you access delay(300); ShowSerialData(); mySerial.println(""); delay(100); } void ShowSerialData() { while(mySerial.available()!=0) Serial.write(mySerial.read()); } </spoler>
Попробуйте написать вместо Serial.write(mySerial.read()); это Serial.write(mySerial.read(), DEC); чтобы посмотреть коды символов
sketch_jun17c.ino: In function 'void ShowSerialData()': sketch_jun17c:85: error: invalid conversion from 'int' to 'const uint8_t*' sketch_jun17c:85: error: initializing argument 1 of 'virtual size_t Print::write(const uint8_t*, size_t)' Serial.write(int(mySerial.read())); и Serial.write(byte(mySerial.read())); тоже выводят квадратики кроется сомнение в шрифте, однако простой вывод на консоль же отображается нормально, именно проблемы с ответными данными из порта
Проблема решена. Дело было в скорости обмена, видимо в процессе поиска разных скетчей Шилд настроило на работу на 900 бот это просто ппц. В общем как в статусе у меня написано так я и есть НУБ Тему можно закрывать.
Бывает. Это самая распространенная проблема. А меня сбило с толку, что скорости хардкодом вписаны в скетче