Приём ответов от gsm модема
Добавлено: Вс мар 19, 2017 15:04:39
Всем привет! Столкнулся с такой проблемой. Есть модем siemens c35i, плата с stm32f100ret6b.
Суть в том, что я посылаю команду на модем
команда ушла, получаю ответ
То есть я просто набиваю массив, что бы на первом этапе пока посмотреть что приходит. В отладчике смотрю переменную Buffer_Receive приходит ответ как положено, примерно вот такой
А теперь прикол. Я не посылаю на модем команду, а жду звонок. Звоню на модем, а вместо \r\nRING\r\n в переменной оказывается вот что "Я0Еы". То есть просто четыре непонятных символа приходит при каждом ring. Одни и те же. Что это может быть?
Суть в том, что я посылаю команду на модем
Код: Выделить всё
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;
}
}
Код: Выделить всё
\r\nAT+CSCA?\r\nAT+CSCA: 141, "+7911xxxxxxx", 20\r\nOK\r\n