一、STM32CubeMX配置
芯片:STM32F767ZIT6
二、代码
2.1 定义接收缓冲区,接收数组
uint8_t RX_buff[512]={0}; //定义数据存放数组
uint8_t ch; //定义接收缓冲
int i=0;
2.2 在main函数中开启中断接收一个字节
/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(&huart3,&ch,1); //开启中断
/* USER CODE END 2 */
2.3 修改接收中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART3)
{
RX_buff[i++] = ch;
if(ch == '\n')
{
printf("recv:%s",RX_buff);
memset(RX_buff,0,512);
i=0;
}
HAL_UART_Receive_IT(huart,&ch,1);
}
}