返回> 网站首页
环形缓冲区
yoours2023-02-07 18:39:49
简介一边听听音乐,一边写写文章。
#define CACHE_LEN 2048
typedef struct {
u8 Buf[CACHE_LEN];
u16 ReadIndex;
u16 ParseIndex;
u16 WriteIndex;
}RecvCache;
RecvCache recvCache;
void CacheInit(void)
{
recvCache.ReadIndex = 0;
recvCache.ParseIndex = 0;
recvCache.WriteIndex = 0;
}
void SetCache(u8 data)
{
if(((recvCache.WriteIndex+1)%CACHE_LEN)!=recvCache.ReadIndex)
{
recvCache.Buf[recvCache.WriteIndex++] = data;
recvCache.WriteIndex=(recvCache.WriteIndex+1)%CACHE_LEN;
}
}
u8 GetCache(u8* btData)
{
if(recvCache.ReadIndex!=recvCache.WriteIndex)
{
btData[0] = recvCache.Buf[recvCache.ReadIndex++];
recvCache.ReadIndex=(recvCache.ReadIndex+1)%CACHE_LEN;
return 1;
}
return 0;
}
文章评论
1191人参与,0条评论