STM32的HAL库串口编程

STM32的串口轮询

  • 1. 一天的努力
  • 2. 问题
  • 3. 中断接收
  • 4. 还没有结束

1. 一天的努力

今天努力了一天,用STM32CubeIDE为STM32F103C8T6进行编程。遇到了串口麻烦。发送数据非常正常。接收数据碰到了问题,在这里写下来供初学者共勉。

2. 问题

轮询读取。在主程序中添加下面的代码:

  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  uint8_t recv_data[4];           //接收数据
	  uint8_t send_data[4];

	  if(!HAL_UART_Receive(&huart1,&recv_data,4,500))
	  {
		  HAL_UART_Transmit(&huart1,&recv_data,4,500);
	  }
	  /* USER CODE END WHILE */

用串口助手在输入端输入4个字节的数据,在串口助手的输入端可以回显。当输入了3个字节的数据时,在输入端不能显示。但输入5个字节的数据时,只能显示4个字节的数据。

3. 中断接收

中断接收可以,接收单个字节似乎是可以的,但连续在串口助手上发送,接收会丢数据。

4. 还没有结束

感觉STM32的HAL库的串口太难了。可能最后要自己来写串口通信的库了。

你可能感兴趣的:(STM32,stm32,嵌入式硬件,单片机)