C文件:
/*************************************************************
* @brief : 环形缓冲区设计,可移植任意C平台。
* @author : 萌哒兽
* @date : 2020-07-21(更新)
* @note : 使用前调用 RingBuffInit(); 来初始化缓冲区。
*************************************************************/
#include "RingBuff.h"
static RingBuff_TypeDef ring_buff;
/*******************************************
* @brief: 初始化环形缓冲区
* @param: none
* @return: none
*******************************************/
void RingBuffInit(void)
{
ring_buff.in = 0;
ring_buff.out = 0;
ring_buff.length = 0;
}
/******************************************
* @brief: 获取缓冲区数据长度
* @return: 数据长度
******************************************/
uint16_t RingBuffGetLength(void)
{
return ring_buff.length;
}
/******************************************
* @brief: 向环形缓冲区写入一个字节
* @param: 待写入的数据(byte)
* @return: 1:写入成功 0:写入失败
******************************************/
uint8_t RingBuffWriteByte(uint8_t data)
{
if(ring_buff.length<RING_BUFF_SIZE)
{
ring_buff.buffer[ring_buff.in] = data;
ring_buff.length++;
ring_buff.in ++;
if(ring_buff.in == RING_BUFF_SIZE)
ring_buff.