• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266+STM32F4Discovery AT-команды

Mifodij

New member
Доброе время всем форумчанам. Прошу подсказать. Есть отладочная плата stm32f4 Discovery к ней подсоеденил ESP8266 по usart1 через пины PB6, PB7. И хочу посылать напрямую в устройство АТ-команды. и получать ответ. Среда разработки Keil.
Код основной функции такой.

Код:
uint8_t sendData[8]="AT";
uint8_t receivedData[10]={0};
uint8_t num = 2;
uint8_t numRx = 5;
/*******************************************************************/
int main(void)
{
int i =0;
MT_USART_Init1();
MT_USART_SendData(sendData, num);
while(!MT_USART_ReadyToExchange);

MT_USART_ReceiveData(receivedData, numRx);
while(1)
  {

MT_USART_SendData(sendData, num);
while(!MT_USART_ReadyToExchange);

MT_USART_ReceiveData(receivedData, numRx);

   }
}
код функции приема
Код:
void MT_USART_ReceiveData(uint8_t* pReceivedData, uint8_t nNumOfDataToReceive)
  {
MT_USART_ReceivedDataPtr = pReceivedData;
MT_USART_NumOfDataToReceive = nNumOfDataToReceive;
MT_USART_NumOfDataReceived = 0;
MT_USART_ReadyToExchange = FALSE;
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
} // end of MT_USART_ReceiveData()
код самого прерывания

Код:
void USART1_IRQHandler()
{
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
   {
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
*MT_USART_ReceivedDataPtr = USART_ReceiveData(USART1);
MT_USART_ReceivedDataPtr++;
MT_USART_NumOfDataReceived++;
   if (MT_USART_NumOfDataReceived == MT_USART_NumOfDataToReceive)
    {
    USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
    MT_USART_ReadyToExchange = TRUE;
     }
   }
 if (USART_GetITStatus(USART1, USART_IT_TC) != RESET)
  {
  USART_ClearITPendingBit(USART1, USART_IT_TC);
  USART_SendData(USART1, (uint8_t)*MT_USART_SendDataPtr);
  MT_USART_SendDataPtr++; 
  MT_USART_NumOfDataSended++;
  if (MT_USART_NumOfDataSended == MT_USART_NumOfDataToSend)
      {
     USART_ITConfig(USART1, USART_IT_TC, DISABLE);
     MT_USART_ReadyToExchange = TRUE;
      }
   }
} // End of USART1_IRQHandler()
что то плата принимает но не могу пjнять что ..на осцилографе видно что идет передача данных.. и плата даже что то отвечает но вот что она отвечает не понятно. Подскажите правильно ли идет передача АТ команды на устройство или надо как то по другому ее подавать и как если можно как правильно е принятьно ее прнять в режиме отладки? и возможно ли вообще так сделать проект?
 
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
Послать AT недостаточно, нужны символы перевода строки и возврата каретки.
 

Mifodij

New member
Добрый день. CodeNameHawk, извините хотел сказать что так и попробую но вотчтополучилось.. а потом стали проблемы с нетом.... и не мог зайти.
 
Сверху Снизу