stm32F1串口收发不定长数据

 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

 

stm32F1串口收发不定长数据

上一篇:Cannot use v-for on stateful component root element because it renders multiple elements.


下一篇:RSS 语法