# Ringbuffer **Repository Path**: binary-0927/ringbuffer ## Basic Information - **Project Name**: Ringbuffer - **Description**: 环形队列代码保存 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-14 - **Last Updated**: 2023-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README RingBuffer ​ 1、通过调整QUEUE_NODE_NUM && QUEUE_NODE_DATA_LEN调整缓冲区个数和每一个缓冲区的大小。 ​ 2、通过QUEUE_DEBUG_ON && QUEUE_DEBUG_ARRAY_ON两个宏控制log的打印-log的打印通过USART的重定向来区分。 ​ 3、log打印的带参宏"函数"如下 ```c #include #include /*打印信息*/ #define QUEUE_INFO(fmt,arg...) printf("<<-QUEUE-INFO->> "fmt"\n",##arg) /*打印错误信息*/ #define QUEUE_ERROR(fmt,arg...) printf("<<-QUEUE-ERROR->> "fmt"\n",##arg) /*打印调试log*/ #define QUEUE_DEBUG(fmt,arg...) do{\ if(QUEUE_DEBUG_ON)\ printf("<<-QUEUE-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\ }while(0) /*打印传入的数组*/ #define QUEUE_DEBUG_ARRAY(array, num) do{\ int32_t i;\ uint8_t* a = array;\ if(QUEUE_DEBUG_ARRAY_ON)\ {\ printf("\n<<-QUEUE- DEBUG-ARRAY->>\n");\ for (i = 0; i < (num); i++)\ {\ printf("%02x ", (a)[i]);\ if ((i + 1 ) %10 == 0)\ {\ printf("\n");\ }\ }\ printf("\n");\ }\ }while(0) /*从函数降级为宏"函数"打印信息阅读DATA_QUEUE_LOG函数*/ #define cbPrint(cb) DATA_QUEUE_LOG("size=0x%x, read=%d, write=%d\n", cb.size, cb.read, cb.write);\ DATA_QUEUE_LOG("size=0x%x, read_using=%d, write_using=%d\n", cb.size, cb.read_using, cb.write_using); ``` 4、.c文件详细介绍,详情见 ringbuffer.c