реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Atmega164+M23G
KIG
сообщение Dec 30 2008, 15:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 25-12-06
Пользователь №: 23 884



Здравствуйте!
Отправляю в модем команду (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

Так и должно быть или я что-то делаю не так?
Go to the top of the page
 
+Quote Post
war4one
сообщение Jan 1 2009, 09:39
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 16-07-05
Из: г. Уфа
Пользователь №: 6 851



Цитата(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);


Хотя, может быть, вопрос решается и более красивым способом.


--------------------
Электронные устройства Open Hardware
Go to the top of the page
 
+Quote Post
M_Z
сообщение Jan 1 2009, 10:53
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011



Цитата(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 только при инициализации модема после включения. И соответственно команды остальные идут позже и таких проблем нет.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016