:11.216KB : :1 :2022-10-16 16:03:12
RingBuffer-1.C如果开发者对于本文件有需要的可以参考。
已通过编译,已进行过大量数据的串口收发压力测试,暂未发现显性BUG。
开始
复制库文件至工程中,在源代码中引用 RingBuffer 头文件;
新建一个 uint8_t 数组,数组的大小即是环形缓冲区的大小;
新建 RingBuffer 操作句柄;
初始化 RingBuffer 操作句柄,将其与刚才新建的数组绑定,转换成环形缓冲区;
这时候我们就可以使用库提供的各种函数对新建的缓冲区进行读写等操作;
函数详细内容请在编程的过程中参考 ring_buffer.c 内的注释;
示例
在这里我展示了如何新建并初始化 RingBuffer、读写环形缓冲、查询数据长度等基础操作;您可以了解到 RingBuffer 的函数命名与参数的风格和基本的使用方法
#include
{
//新建缓冲区数组与RingBuffer操作句柄
uint8_t buffer[Read_BUFFER_SIZE] ;
ring_buffer RB ;
//初始化RingBuffer操作句柄,绑定缓冲区数组;
Ring_Buffer_Init(&RB, buffer, Read_BUFFER_SIZE);
//向环形缓冲区写入一段字节和一个字节
Ring_Buffer_Write_String(&RB, "hello world", 11);
Ring_Buffer_Write_Byte(&RB, '!');
//获取已储存的数据长度,读出环形缓冲区中的数据并打印
uint32_t num = Ring_Buffer_Get_Lenght(&RB);
uint8_t get[16] ;
Ring_Buffer_Read_String(&RB, get, num);
printf("%s", get);
return 0 ;
}
分隔关键词、查询关键词、删除数据等功能,基于这些功能您可以在串口收发中实现多段数据的缓存与准确读取;降低了实时性响应的要求、提升了串口收发的性能
.
├── RingBuffer-main
│ ├── LICENSE
│ ├── Readme.md
│ ├── ring_buffer.c
│ └── ring_buffer.h
└── RingBuffer-1.zip
1 directory, 5 files
09-21ringbuffer测试