单片机学习小组
直播中

李晶

7年用户 931经验值
私信 关注

是什么原因造成单片机串口只能接受第一个字节呢

是什么原因造成单片机串口只能接受第一个字节呢?如何去解决呢?

回帖(1)

张忠雨

2022-2-24 15:52:47
设备:
单片机:STM32G070 MDK:V5.25
问题描述:
发现串口接受不到数据,只能接受到第一个字节。


  MX_USART4_UART_Init();
  HAL_Delay(200);
  HAL_UART_Receive_DMA(&huart4, UART_DMA_RXBuf, UART_RX_BUF_SIZE);


原因分析:
在单片机执行完串口初始化之后,并没有立马开启DMA接收,在这个时间差之内如果有数据发过来就会导致这个问题


解决方案:
在完成串口初始化之后,立马开启DMA接收,中间不能有较大的空挡时间差即可。


  MX_USART4_UART_Init();
//  HAL_Delay(200);
  HAL_UART_Receive_DMA(&huart4, UART_DMA_RXBuf, UART_RX_BUF_SIZE);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分