Serial.write для чего?
- Войдите на сайт для отправки комментариев
Пнд, 09/04/2012 - 20:51
Друзья, не пойму как работает Serial.write.....
У меня gsm модем по рс232 подключен к ардуине (на 0 и 1 пин), как организовать обмен в терминале между компом и ардуино+модем? Т.е. в терминале я отсылаю команду АТ и должно вернуться ОК. На верном ли я пути? начинаю скетч так:
int val = 0;
void setup()
{
Serial.begin (115200); //скорость модема
}
void loop()
{
if (Serial.avaolable > 0)
{
//что тут должно быть не пойму :)
}
}
Подскажите как дальше? Serial.wtite или нет?
Serial.write() Может отправлять в порт массив типа Byte или 1 Byte
Serial.write() Может отправлять в порт массив типа Byte или 1 Byte
это я знаю, но не понимаю)
как реализовать, чтоб на команду AT модем вернул ответ в терминал?
Serial.write() Может отправлять в порт массив типа Byte или 1 Byte
это я знаю, но не понимаю)
как реализовать, чтоб на команду AT модем вернул ответ в терминал?
как вариант вот так
char incomingByte=""; char AT_command_string="AT"+char(13); Serial.flush() serial.write(AT_command_string) ; while (Serial.available()=0){}; while (Serial.available()>0){ incomingByte = incomingByte+Serial.read() };Если все правильно то в incomingByte окажется "OK"
Благодарю за ответ, но не компилируется...
Подправил вот так
void setup () { Serial.begin (115200); } void loop () { char incomingByte = ""; char AT_command_string = "AT" + char(13); Serial.flush (); Serial.write (AT_command_string); while (Serial.available () = 0) {} while (Serial.available () > 0) { incomingByte = incomingByte + Serial.read (); } }Ошибки такие:
void setup() { Serial.begin(115200); Serial.flush(); modem_init1(); // Variant 1 modem_init2(); // Variant 2 modem_init3(); // Variant 3 } void loop() { if (Serial.available()) { int inByte = Serial.read(); } } void modem_init1() { // тут смотреть коды символов http://arduino.ru/Reference/ASCIIchart Serial.write(65); // send "A" Serial.write(84); // send "T" Serial.write(13); // send CR } void modem_init2() { Serial.write("AT\13"); } void modem_init3() { char* AT_command_string = "AT\13"; Serial.write(AT_command_string); }to Probelzaelo спасибо, дружище!
У тебя получилось отправить команды модему?
Это получается для чтения данных, которые модем выдает, необходимо использовать Serial.read() ?