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库的串口太难了。可能最后要自己来写串口通信的库了。