CUBEMX+HAL库实现STM32串口接收并发送
首先新建一个CUBEMX工程

选择你自己开发板的芯片型号

设置时钟和串口

设置时钟为72MHZ

设置串口中断


点击小齿轮生成KEIL5的工程

设置工程名称及存放位置


点击Open Project直接打开生成的32工程

在main.c下添加以下变量

uint8_t RxByte;
uint8_t RxBuff[256];
uint16_t Rx_Count;
添加以下函数打开串口一接收中断

HAL_UART_Receive_IT(&huart1,&RxByte,1);
添加以下串口接收中断回调函数

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
UNUSED(huart);
RxBuff[Rx_Count++]=RxByte;
if(RxByte==0x0A)
{
while(HAL_UART_Transmit_IT(&huart1,RxBuff,Rx_Count)==HAL_OK);
Rx_Count=0;
}
if(Rx_Count>=254)
{
Rx_Count=0;
}
while(HAL_UART_Receive_IT(&huart1,&RxByte,1)==HAL_OK);
}
整个工程开发完毕,直接编译并烧录到单片机
打开串口助手给单片机发送数据,可以看到单片机返回来的数据
