my_ringbuff.h 749 字节
#ifndef	__MY_RINGBUFF_H_
#define __MY_RINGBUFF_H_


#include "stm32f4xx.h"

typedef struct
{
	char *buffer;	/*缓冲区的数据*/
	int  size;		/*缓冲区大小*/
	int  pRead;		/*读指针,名义上的指针,只是为了记录位置而已*/
	int  pWrite;	/*写指针,名义上的指针,只是为了记录位置而已*/
}ringBuf_t;



/*先不考虑互斥锁*/
/*先不考虑写覆盖和读重复问题,后续设计有效数据记录变量来解决*/

ringBuf_t *ringBufInit(ringBuf_t* ringBuffer,int size);
int ringBufRead(ringBuf_t *ringBuffer,char *readBuf,int readLength);
int ringBufWrite(ringBuf_t *ringBuffer,char *writeBuf,int writeLength);
int ringBufDataLen(ringBuf_t *ringBuffer);
void ringBufFree(ringBuf_t *ringBuffer);
void ringBufReset(ringBuf_t *ringBuffer,uint16_t size);
































#endif