Кто любит RISC в жизни, заходим, не стесняемся.
Вс мар 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. Одни и те же. Что это может быть?
Вс мар 19, 2017 15:25:37
Скорости приёма/передачи (и другие параметры) по RS-232 совпадают?
Насколько я помню, по умолчанию у c35i: 9600-8-N-1-[No Flow Control] (проверьте, могу ошибаться).
Вс мар 19, 2017 19:25:48
Всё совпадает. Ответы на запросы же нормально приходят. А если без запроса, то ответ вот в таком плохом виде(
Вс мар 19, 2017 19:44:18
Проверять нужно в начали на терминалке а в ней как настроишь так и поедешь.
Вс мар 19, 2017 21:45:02
Я же говорю, на терминале все ОК). Вас что не смущает, что ответ именно на запрос приходит норм, а ответ без запросов - нет???)))
Вс мар 19, 2017 22:14:40
supercelt писал(а):Я же говорю, на терминале все ОК).
Получаем не "Я0Еы", а именно RING?
Пн мар 20, 2017 12:30:59
supercelt, Если в терминале тоже "Я0Еы" вместо "RING" - выложите коды символов (то, что вместо RING)?
Возможно, прошивка модема не English.
Пн мар 20, 2017 20:03:07
Ребята, ещё раз пишу - в терминале всё ОК. И ответ на запрос и просто ответ ring. А вот при подключении к плате, ответ на запрос норм, а ответ ring - непонятные символы
Пн мар 20, 2017 20:17:44
Ну правильно когда терменалка работает сама на себя всё ОК. А когда подкл. девайс возврат идёт с ошибкой смотри скорость обмена или смени терминалку. Вы не первый с такой проблемкой.
Пн мар 20, 2017 21:33:14
Итак, что имеем:
1. При подключении модема к комповому терминалу всё работает.
2. При подключении модема к самодельной плате не всё работает.
Мой вывод: что-то не так с самодельной платой. Скорее всего проблема в коде.
Вт мар 21, 2017 13:17:46
На казусе товарищ сознался в отсутствии инициализации модема:
вопрос решён. При инициализации надо на модем что-нибудь отправлять, к примеру команду АТ. Это настраивает autobaud.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.