circle_buffer.h 754 B

12345678910111213141516171819202122232425
  1. #ifndef _CIRCLE_BUF_H
  2. #define _CIRCLE_BUF_H
  3. #include <stdint.h>
  4. #include <stddef.h> // for NULL
  5. #include <string.h> //memset
  6. typedef struct {
  7. volatile uint32_t r; // 读指针
  8. volatile uint32_t w; // 写指针
  9. uint32_t len; // 缓冲区大小
  10. uint8_t *buf; // 缓冲区指针
  11. } circle_buf_t, *p_circle_buf;
  12. void circle_buf_init(p_circle_buf pCircleBuf, uint32_t len, uint8_t *buf);
  13. int circle_buf_read(p_circle_buf pCircleBuf, uint8_t *pVal);
  14. //int circle_buf_read_2(p_circle_buf_2 pCircleBuf, uint8_t *pVal) ;
  15. int circle_buf_write(p_circle_buf pCircleBuf, uint8_t val);
  16. void circle_buf_clear(p_circle_buf pCircleBuf) ;
  17. //void copy_circle_buf(circle_buf_t *src, circle_buf_t_2 *dst);
  18. #endif /* _CIRCLE_BUF_H */