首页 > 其他 > 详细

stm32F1串口收发不定长数据

时间:2021-06-20 15:03:26      阅读:21      评论:0      收藏:0      [点我收藏+]
 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串口收发不定长数据

原文:https://www.cnblogs.com/723687715-Q/p/14906381.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!