typedef struct
{
uint16_t Head;//头指针
uint16_t Tail;//尾指针
uint16_t Lenght;//长度
uint8_t Ring_Buff[200];//缓冲大小
}RingBuff_t;
extern RingBuff_t ringBuff;
void RingBuff_Init();缓冲区初始化
uint8_t Write_RingBuff(uint8_t data);//入队
uint8_t Read_RingBuff(uint8_t *rData);//出队
void RingBuff_Init(void)
{
ringBuff.Head=0;
ringBuff.Tail=0;
ringBuff.Lenght=0;
}
uint8_t Write_RingBuff(uint8_t data)
{
if(ringBuff.Lenght>=200)
{
return 1;
}
ringBuff.Ring_Buff[ringBuff.Tail]=data;
ringBuff.Tail=(ringBuff.Tail+1)%200;
ringBuff.Lenght++;
return 0;
}
uint8_t Read_RingBuff(uint8_t *rData)
{
if(ringBuff.Lenght==0)
{
return 1;
}
*rData=ringBuff.Ring_Buff[ringBuff.Head];
ringBuff.Head=(ringBuff.Head+1)%200;
ringBuff.Lenght--;
return 0;
}
typedef struct
{
uint16_t Head;//头指针
uint16_t Tail;//尾指针
uint16_t Lenght;//长度
uint8_t Ring_Buff[200];//缓冲大小
}RingBuff_t;
extern RingBuff_t ringBuff;
void RingBuff_Init();缓冲区初始化
uint8_t Write_RingBuff(uint8_t data);//入队
uint8_t Read_RingBuff(uint8_t *rData);//出队
void RingBuff_Init(void)
{
ringBuff.Head=0;
ringBuff.Tail=0;
ringBuff.Lenght=0;
}
uint8_t Write_RingBuff(uint8_t data)
{
if(ringBuff.Lenght>=200)
{
return 1;
}
ringBuff.Ring_Buff[ringBuff.Tail]=data;
ringBuff.Tail=(ringBuff.Tail+1)%200;
ringBuff.Lenght++;
return 0;
}
uint8_t Read_RingBuff(uint8_t *rData)
{
if(ringBuff.Lenght==0)
{
return 1;
}
*rData=ringBuff.Ring_Buff[ringBuff.Head];
ringBuff.Head=(ringBuff.Head+1)%200;
ringBuff.Lenght--;
return 0;
}
举报