在单片机开发中,我们会存在接收到一个字符串,但是这个字符串中,有写干扰的数据,这时我们就需要截取里面有用的数据。
比如串口接收数据,我们是用一个buffer[255]数组进行缓存,数组里面就会有多个数据指令。这时我们就需要一个一个的提取指令,提取了对应的指令数据后,那该数据地址前面的数据就需要清除(去除该指令数据,以及该缓存数组中前面没用的数据)。
通过下面的示例代码,在一个buffer[255]大小的数组中,查找一个 “ 以0xff开头,0xfe结尾,数据长度为5 ” 的数据,提取该数据,保存到buff[5]数组中,然后把buffer[255]的首地址左移,移动到0xfe的下一位。
从而达到提取数据,并把buffer[255]里面提取的数据清除,以及前面地址没用的数据给清除。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define uint8_t unsigned char
#define BUFFER_SIZE 255
#define BUFF_SIZE 5
/****************************************************************************