STM32L4R UART5 функция приема не работает - PullRequest
0 голосов
/ 18 января 2019

У меня была проблема, которая, кажется, случилась с другими людьми на другой доске.Я инициализировал UART5 на моем STM32L4R для передачи и получения.Функция передачи работает по желанию, но функция приема не работает вообще, когда я использую 'HAL_UART_Receive ().'Функция работает без проблем на UART1-3, но не на UART5.Кто-нибудь может сказать мне, если есть какие-то детали, которые мне не хватает при настройке UART5?CubeMx настроил UART5 как:

static void MX_UART5_Init(void)
{
  huart5.Instance = UART5;
  huart5.Init.BaudRate = 38400;
  huart5.Init.WordLength = UART_WORDLENGTH_8B;
  huart5.Init.StopBits = UART_STOPBITS_1;
  huart5.Init.Parity = UART_PARITY_NONE;
  huart5.Init.Mode = UART_MODE_TX_RX;
  huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart5.Init.OverSampling = UART_OVERSAMPLING_16;
  huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  if (HAL_UART_Init(&huart5) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

}

Мой код, который я пытаюсь получить от, выглядит как:

if(HAL_UART_Receive(&UART5, ch_receive, 2, 10000) == 3){ //if a HAL_TIMEOUT is received
          HAL_UART_Transmit(&huart1, Communication_Fail, sizeof(Communication_Fail), 0xFFFF);
      }
...