在STM32L4R5中使用USART

问题描述 投票:0回答:1

我在USART上使用异步STM32L4R5与PC通信。我能够在PC端接收数据,但我无法接收PC发送的核板上的任何数据。以下是我用于传输的代码

while (1)
{
  HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin); //Toggle LED
  HAL_Delay(1000);
  for(i = 0; i < 5; i++)
  {
      USART1->TDR = p[i];
      while((USART1->ISR  & 0x40) == 0);
  }
  while ((USART1->ISR & 0x20) == 0);
  uint32_t receivedByte = (uint32_t)(USART1->RDR);
}

在上面的发送部分工作正常,但接收不起作用。我检查过,接线是否合适。

stm32
1个回答
-1
投票

为什么不使用USART接收中断它将帮助您捕获接收的数据。而不是轮询USART接待。有两个原因没有回应

  1. 在USART上发送数据时,您可能无法发送EOD和回车。许多基于USART的操作基于这些特性。模块将收听USART,直到收到这些字符。
  2. 您的硬件连接不正确。确保将TX连接到主机到Rx of Slave,反之亦然。

我建议使用USART中断,因为在编写代码时轮询不是一个好方法。

© www.soinside.com 2019 - 2024. All rights reserved.