1 /* USER CODE BEGIN Includes */ 2 #include "stdio.h" 3 #include "string.h" 4 /* USER CODE END Includes */ 5 /* USER CODE BEGIN PV */ 6 7 uint8_t RxBuffer[1]; //进入中断接收数据的数组 8 uint8_t DataBuffer[5000]; //保存接收到数据的数组 9 int RxLine = 0;//接收到的数据长度 10 int Rx_flag = 0;//接受到数据标志 11 12 /* USER CODE END PV */ 13 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 14 { 15 RxLine++; //每次接收到一个数据,数据长度加1 16 HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin); 17 DataBuffer[RxLine-1] = RxBuffer[0]; 18 if(RxBuffer[0] == 0xff) 19 { 20 printf_usart(); //将发送的数据直接打印出来 21 } 22 RxBuffer[0] = 0; 23 HAL_UART_Receive_IT(&huart1,(uint8_t *)RxBuffer,1); 24 } 25 void printf_usart(void) 26 { 27 printf("接受到的数据长度为:%d\r\n",RxLine); 28 for(int i=0;i<RxLine;i++) 29 { 30 printf("DataBuffer[%d],%X\r\n",i,DataBuffer[i]); 31 } 32 memset(DataBuffer,0,sizeof(DataBuffer)); //清空数组缓存 33 RxLine = 0; 34 } 35 int fputc(int ch,FILE *f) 36 { 37 return HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,100); 38 } 39 ———————————————— 40 版权声明:本文为CSDN博主「匠心筑梦-行者无疆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 41 原文链接:https://blog.csdn.net/kangxubo/article/details/114550265