Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega164+M23G
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
KIG
Здравствуйте!
Отправляю в модем команду (AT+CMGF=0), получаю ответ от модема "ok", и тут же отправляю следующую команду (AT+CMGS), получаю ответ ">", ввожу текст сообщения и <ctrl+z>. Возвращается ответ "ERROR". Если ставлю задержку между "AT+CMGF" и "AT+CMGS"в 4сек тогда все работает. Текст программы следующий:

command_number=0;
putchar_m("AT+CMGF=0\r");//ustanovil PDU format
while (command_number==0);
Delay(4000);//ms
//----------------------
command_number=0;
putchar_m("AT+CMGS=19\r");
while (command_number==0);
Delay(2000);//ms

Так и должно быть или я что-то делаю не так?
war4one
Цитата(KIG @ Dec 30 2008, 18:44) *
Так и должно быть или я что-то делаю не так?


Посмотрел у себя - тоже стоит задержка.

Код
    SetActiveUart(GSM_UART);
    printf("AT+CMGS=\"%s\"\n\r", AbNumber);
    delay_ms(2000);
    printf("%s%c", MessageStr, CtrlZ);
    delay_ms(2000);


Хотя, может быть, вопрос решается и более красивым способом.
M_Z
Цитата(KIG @ Dec 30 2008, 19:44) *
Здравствуйте!
Отправляю в модем команду (AT+CMGF=0), получаю ответ от модема "ok", и тут же отправляю следующую команду (AT+CMGS), получаю ответ ">", ввожу текст сообщения и <ctrl+z>. Возвращается ответ "ERROR". Если ставлю задержку между "AT+CMGF" и "AT+CMGS"в 4сек тогда все работает. Текст программы следующий:

command_number=0;
putchar_m("AT+CMGF=0\r");//ustanovil PDU format
while (command_number==0);
Delay(4000);//ms
//----------------------
command_number=0;
putchar_m("AT+CMGS=19\r");
while (command_number==0);
Delay(2000);//ms

Так и должно быть или я что-то делаю не так?

Я шлю команду at+cmgf только при инициализации модема после включения. И соответственно команды остальные идут позже и таких проблем нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.