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

 
 
> Посылка и прием данных по UART.
Jenya7
сообщение Jan 14 2015, 10:08
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Я посылаю команду WIFI модулю. Он отвечает ОК. Я хочу убедиться что модуль ответил ОК и затем продолжить.
Параллельно у меня подключен терминал и я вижу что команда уходит и возвращается ОК. А в буфере ответа нет хотя флаг о принятии он поднял.
Вот мой код.
Обработчик прерывания для получения ответа.
Код
void LEUART0_IRQHandler(void)
{
    if(LEUART0->STATUS & LEUART_STATUS_RXDATAV)
    {
        uint8_t chr;
        chr = LEUART0->RXDATA;
        switch(rx_state)
        {
            case MODEM_RX :
                  if (chr=='\r')  
                  {
                    usartRxBuf[rxBufTail] = '\0';
                    rxBufTail = 0;
                    modem_messsage_recieved = 1;
                  }
                  else
                  {
                    if(rxBufTail < BUF_SIZE)           //no overflow
                        usartRxBuf[rxBufTail++] = chr;
                  }
               break;
        }
}

А это посылка и ожидание.
Код
void MODEM_SendTxPacket
{
    rxBufTail = 0;
    rx_state = MODEM_RX;
    //send command
    LEUART_SendString("AT\r");
    //wait for response
     while (!modem_messsage_recieved)
     {
         //some delay
       count++;
       if (count > 100)
        return 0;
      }
       modem_messsage_recieved = 0;  //here I set a breakpoint
       MODEM_CheckMessage(usartRxBuf);  //buffer is empty    
}

uint8_t MODEM_CheckMessage(unsigned char *buff)
{
    while(*buff)
   {
      if(*buff == 'O' && *(buff+1) == 'K')
       {
         return 1;
        }
        buff++;
   }
}

я попадаю в точку останова на строчке modem_messsage_recieved = 0;
значит буфер по идее принял ответ. но дебагер показывает мне пустой буффер .
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:33
Рейтинг@Mail.ru


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