把接收到的数据先填到环形buff里面。
#define bleRINGBUFF_LEN 128
typedef struct
{
uint8 Head;
uint8 Tail;
uint8 Lenght;
uint8 bleRing_Buff[bleRINGBUFF_LEN];
}bleRingBuff_t;//环形buff结构体
//=======================================
//写ble环形buff
uint8 bleWrite_RingBuff(uint8 data)
{
if(ble_ringBuff.Lenght >= bleRINGBUFF_LEN) //判断缓冲区是否已满
{
return 0;//FLASE;
}
ble_ringBuff.bleRing_Buff[ble_ringBuff.Tail]=data;
ble_ringBuff.Tail = (ble_ringBuff.Tail+1)%bleRINGBUFF_LEN;//防止越界非法访问
ble_ringBuff.Lenght++;
ble_ringBuff_data_len = ble_ringBuff.Lenght;
return 1;//TRUE;
}
//读ble环形buff
uint8 bleRead_RingBuff(uint8 *rData)
{
if(ble_ringBuff.Lenght == 0)//判断非空
{
return 0;//FLASE;
}
*rData = ble_ringBuff.bleRing_Buff[ble_ringBuff.Head];//先进先出FIFO,从缓冲区头出
ble_ringBuff.Head = (ble_ringBuff.Head+1)%bleRINGBUFF_LEN;//防止越界非法访问
ble_ringBuff.Lenght--;
return 1;//TRUE;
}