NUCLEO-F746ZG UART3

时间:2019-05-12 12:40:38

标签: stm32 stm32f7 stm32cubemx

我正在尝试在带有TrueStudio的NUCLEO-F746ZG中使用UART3。 USART3连接到ST-LINK以支持虚拟COM端口,但现在无法使用。我没有示波器,我真的很想像超级用户一样通过超级终端查看打印消息。

我搜索了这个问题,发现许多用户都很难过。

最后,我在以下网站的STM32CubMX中找到了UART示例的解决方案。如果我复制syscall.c,则在UART示例中可以正常工作。

https://community.st.com/s/question/0D50X00009XkXDcSAN/problem-with-uart-example-on-nucleof746zg

以下是STM32CubeMX的UART示例代码。 目录:STM32Cube_FW_F7_V1.15.0 \ Projects \ STM32F746ZG-Nucleo \ Examples \ UART \ UART_Printf。

int main(void)
{

 .....................

   UartHandle.Instance = USARTx;

   UartHandle.Init.BaudRate = 9600;

   UartHandle.Init.WordLength = UART_WORDLENGTH_8B;

   UartHandle.Init.StopBits = UART_STOPBITS_1;

   UartHandle.Init.Parity = UART_PARITY_NONE;

   UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;

   UartHandle.Init.Mode = UART_MODE_TX_RX;

   UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;

   if (HAL_UART_Init(&UartHandle) != HAL_OK)

   {
    Error_Handler();
   }

}

但是,我使用STM32CubeMX生成了代码。我只使用了USART3,并确认其中包含syscall.c。但是尽管如此,我还是看不到打印消息。如果有人解决了这个问题,如果他们共享它,我将不胜感激。

以下是我使用STM32CubeMX生成的代码。

int main(void)
{

  HAL_Init();

  SystemClock_Config();

  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_USART3_UART_Init();

  /* USER CODE BEGIN 2 */

  ...

}

static void MX_USART3_UART_Init(void)
{

  huart3.Instance = USART3;

  huart3.Init.BaudRate = 9600;

  huart3.Init.WordLength = UART_WORDLENGTH_8B;

  huart3.Init.StopBits = UART_STOPBITS_1;

  huart3.Init.Parity = UART_PARITY_NONE;

  huart3.Init.Mode = UART_MODE_TX_RX;

  huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;

  huart3.Init.OverSampling = UART_OVERSAMPLING_16;

  huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;

  huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;

  if (HAL_UART_Init(&huart3) != HAL_OK)

  {
    Error_Handler();
  }

}

0 个答案:

没有答案