嵌入式常用代码之环形缓冲区

简介

由于在写嵌入式代码时,经常需要用到一些代码,所以,在此进行总结。

头文件

#define USE_RING_BUFFER                         1

/******************************************************************************/
/* Ring Buffer                                                                */
/******************************************************************************/
#if USE_RING_BUFFER
typedef struct{
    uint16_t     head;
    uint16_t     tail;
    uint16_t     capacity;
    uint8_t*     buffer;
    uint8_t      is_writing;
}ring_buffer_t;

void     rb_init(ring_buffer_t* rb, uint8_t* buffer, uint16_t buf_len);
uint16_t rb_can_read(ring_buffer_t* rb);
uint16_t rb_can_write(ring_buffer_t* rb);
uint16_t rb_read(ring_buffer_t* rb, uint8_t* data, uint16_t count);
uint16_t rb_write(ring_buffer_t* rb, const uint8_t* data, uint16_t count);
void     rb_clear(ring_b

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值