Как проверить, распознает ли Quectel M66 мою команду, отправленную через UART из STM32?

Я использую плату STM32F103C8 и CubeMX для создания кода. Я подключил M66 к STM32 к порту UART2. Я пытаюсь отправить некоторые команды на Quectel M66 через порт UART STM32. Он получает команду, но выбрасывает ненужные символы. Я установил скорость передачи 9600 для всех портов UART. Это мой код

void M66_Check()
{
  char *buffer = "ATI\r\n";
    char *rec_buffer = NULL;
    rec_buffer = (char*)malloc(200 * sizeof(char));
    if(HAL_UART_Transmit(&huart2,buffer,strlen(buffer),200) == HAL_OK)
    {
        printf("AT Command sent successfully\r\n");
        HAL_Delay(1000);
    }
    else
    {
        printf("Not Sent\r\n");
    }
    HAL_UART_Receive(&huart2,rec_buffer,50,200);

    printf("About to print Response from M66 \r\n");
    HAL_Delay(2000);

    printf(rec_buffer);

}

Это то, что я получаю ... Результат в Putty Любая помощь будет принята с благодарностью


person Vignesh    schedule 09.05.2019    source источник
comment
пробовали ли вы напрямую связать свой модуль с ПК с помощью какого-либо последовательного терминала и преобразователя USB в TTL?   -  person Vaibhav    schedule 10.05.2019
comment
Да, я пробовал это, и он работал правильно, и теперь я обнаружил свою ошибку при передаче и приеме ...   -  person Vignesh    schedule 10.05.2019


Ответы (2)


Есть единственный способ - прочитать ответ и проанализировать его. Тогда вы узнаете, правильно ли была выполнена команда.

Но ваш ответ показывает, что ваш UART работает на другой скорости (9600), чем модем. Если вы ничего не меняли, это должно быть 115200, так как это скорость UART модема по умолчанию.

person 0___________    schedule 09.05.2019
comment
Я также пробовал 115200 ... никаких изменений не происходило, только тот же мусор - person Vignesh; 09.05.2019

Я обнаружил проблему ... Мне нужно было передавать и принимать в этих форматах .... Я пропустил (uint8_t *). Для передачи - HAL_UART_Transmit (& huart2, (uint8_t *) buffer, strlen (buffer), 100);

Получить - HAL_UART_Receive (& huart2, (uint8_t *) rec_buffer, 50,2000);

Теперь проблем нет, и я получаю правильный ответ.

Спасибо за вашу помощь...

person Vignesh    schedule 10.05.2019