返回> 网站首页 

环形缓冲区

yoours2023-02-07 18:39:49 阅读 921

简介一边听听音乐,一边写写文章。

#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;

}


微信小程序扫码登陆

文章评论

921人参与,0条评论