Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: adl_atCmdSend().
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
kav
Добрый день, всем.
Может кто сталкивался с такой проблемой.
Вызывается adl_atCmdSend(). С любой другой AT командой работает, а вот с ATD отказывается. Как быть?
На экране гипертерминала выдается +CME ERROR: 515(Идет инициализация) и дальше никакой реакции.
Когда в гипертерминале вручную набираю ATD89012345678, то все нормально дозваниваюсь.
Ниже привожу текст проги.

#include "adl_global.h"

s16 ATI_Response_Handler(adl_atResponse_t *paras)
{
adl_atSendResponse ( ADL_AT_UNS, paras->StrData );
return FALSE;
}

void adl_main ( adl_InitType_e InitType )
{
if (adl_atCmdSend("ATD89012345678",(adl_atRspHandler_t)ATI_Response_Handler, "*", NULL)== OK)
{adl_atSendResponse ( ADL_AT_UNS, "\r\nadl_atCmdSend - OK.\r\n" );}
else
{adl_atSendResponse ( ADL_AT_UNS, "\r\nadl_atCmdSend - ERROR.\r\n" );}
}
@Ark
Команда ATD (без ";" на конце строки) отличается от других тем, что нормальный ответ на нее будет не ОК, а CONNECT или какой-либо другой при ошибке. И допустимый таймаут (до получения ответа) может быть исчисляться десятками секунд... Возможно, причина в этом...
kav
Разобрались с этой проблемой.Из программы команда выполнялась раньше , чем инициализировалась SIM карта, вот поэтому и была ошибка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.