Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Приём ответов от gsm модема

Вс мар 19, 2017 15:04:39

Всем привет! Столкнулся с такой проблемой. Есть модем siemens c35i, плата с stm32f100ret6b.
Суть в том, что я посылаю команду на модем

Код:
char Buffer_CSCA[] = "AT+CSCA?\r";
GSM_COMM_SEND_SMS_SERVICE();

void GSM_COMM_SEND_SMS_SERVICE(){
      DMA1_Channel4->CMAR = (uint32_t)Buffer_CSCA;
      DMA1_Channel4->CNDTR = sizeof(Buffer_CSCA);
      DMA1_Channel4->CCR |= DMA_CCR4_EN;
}


команда ушла, получаю ответ

Код:
void USART1_IRQHandler(void){ //Прерывание USART1
      if(USART1->SR & USART_SR_RXNE){ //Если прерывание вызвано по приёму USART1
            USART1->SR &= ~USART_SR_RXNE; //Сбрасываем флаг приёма USART1
            Buffer_Receive[i++] = USART1->DR;
      }
}


То есть я просто набиваю массив, что бы на первом этапе пока посмотреть что приходит. В отладчике смотрю переменную Buffer_Receive приходит ответ как положено, примерно вот такой

Код:
\r\nAT+CSCA?\r\nAT+CSCA: 141, "+7911xxxxxxx", 20\r\nOK\r\n


А теперь прикол. Я не посылаю на модем команду, а жду звонок. Звоню на модем, а вместо \r\nRING\r\n в переменной оказывается вот что "Я0Еы". То есть просто четыре непонятных символа приходит при каждом ring. Одни и те же. Что это может быть?

Re: Приём ответов от gsm модема

Вс мар 19, 2017 15:25:37

Скорости приёма/передачи (и другие параметры) по RS-232 совпадают?
Насколько я помню, по умолчанию у c35i: 9600-8-N-1-[No Flow Control] (проверьте, могу ошибаться).

Re: Приём ответов от gsm модема

Вс мар 19, 2017 19:25:48

Всё совпадает. Ответы на запросы же нормально приходят. А если без запроса, то ответ вот в таком плохом виде(

Re: Приём ответов от gsm модема

Вс мар 19, 2017 19:44:18

Проверять нужно в начали на терминалке а в ней как настроишь так и поедешь.

Re: Приём ответов от gsm модема

Вс мар 19, 2017 21:45:02

Я же говорю, на терминале все ОК). Вас что не смущает, что ответ именно на запрос приходит норм, а ответ без запросов - нет???)))

Re: Приём ответов от gsm модема

Вс мар 19, 2017 22:14:40

supercelt писал(а):Я же говорю, на терминале все ОК).

Получаем не "Я0Еы", а именно RING?

Re: Приём ответов от gsm модема

Пн мар 20, 2017 12:30:59

supercelt, Если в терминале тоже "Я0Еы" вместо "RING" - выложите коды символов (то, что вместо RING)?
Возможно, прошивка модема не English.

Re: Приём ответов от gsm модема

Пн мар 20, 2017 20:03:07

Ребята, ещё раз пишу - в терминале всё ОК. И ответ на запрос и просто ответ ring. А вот при подключении к плате, ответ на запрос норм, а ответ ring - непонятные символы

Re: Приём ответов от gsm модема

Пн мар 20, 2017 20:17:44

Ну правильно когда терменалка работает сама на себя всё ОК. А когда подкл. девайс возврат идёт с ошибкой смотри скорость обмена или смени терминалку. Вы не первый с такой проблемкой.

Re: Приём ответов от gsm модема

Пн мар 20, 2017 21:33:14

Итак, что имеем:
1. При подключении модема к комповому терминалу всё работает.
2. При подключении модема к самодельной плате не всё работает.

Мой вывод: что-то не так с самодельной платой. Скорее всего проблема в коде.

Re: Приём ответов от gsm модема

Вт мар 21, 2017 13:17:46

На казусе товарищ сознался в отсутствии инициализации модема:
вопрос решён. При инициализации надо на модем что-нибудь отправлять, к примеру команду АТ. Это настраивает autobaud.
Ответить