📄 driver_buffer.c
字号:
#include "driver_buffer.h"
//创建一个环形队列,将控制结构与存储区联系起来
bool DBuffer_Create(DBuffer *DBuf, DATA_TYPE *Buf, unsigned int BufSize)
{
if(DBuf!=NULL && Buf!=NULL)
{
DBuf->front=Buf;
DBuf->rear=Buf;
DBuf->head=Buf;
DBuf->end=Buf+BufSize-1;
DBuf->size=BufSize;
DBuf->length=0;
return true;
}
return false;
}
//入队,返回值为成功与否
bool DBuffer_Write(DBuffer *DBuf, DATA_TYPE Data)
{
if(DBuf!=NULL)
{
if(DBuf->length<DBuf->size)
{
*(DBuf->rear)=Data;
DBuf->rear++;
if(DBuf->rear>DBuf->end) //环形队列处理
DBuf->rear=DBuf->head;
DBuf->length++;
return true;
}
}
return false;
}
//出队,返回值为成功与否
bool DBuffer_Read(DBuffer *DBuf, DATA_TYPE *Data)
{
if(DBuf!=NULL)
{
if(DBuf->length!=0)
{
*Data=*(DBuf->front);
DBuf->front++;
if(DBuf->front>DBuf->end) //环形队列处理
DBuf->front=DBuf->head;
DBuf->length--;
return true;
}
}
return false;
}
void DBuffer_Flush(DBuffer *DBuf)
{
if(DBuf!=NULL)
{
DBuf->front=DBuf->head;
DBuf->rear=DBuf->head;
DBuf->length=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -