当前位置:   article > 正文

C语言数据结构之管道浅析_单片机c语言实现管道

单片机c语言实现管道

管道是什么?

管道是先进先出的数据结构,相当于一个缓冲区;
数据长度一般是1Byte,这里设置管道缓冲区为512Byte;

管道的作用是?

有时候需要一定长度的数据,不仅仅是1Byte;

实现思路:申请缓冲区

》使用两个指针分别指向缓冲区的首地址和尾地址,例如begin,end
—》要实现随时找到管道中任意一个成员,使用两个指针分别指向第一个成员(head)和最后一个成员(tail)
—》使用环形缓冲区存储数据

如何使用管道?

以下程序的管道 = 管道结构体+缓冲区;

//定义一个管道结构体
typedef struct _Pipe_t {
	uint8_t * beginPtr;	//管道内存块首地址
	uint8_t * headPtr;		//管道元素首部,指向下一个要存储的地址
	uint8_t * tailPtr;		//管道元素尾部,指向下一个要读取的地址
	uint8_t * endPtr;	//管道内存块尾部 ,最后一个内存地址+1
}  Pipe_t;

//初始化管道,申请缓冲区
//参数1:结构体指针
//参数2:缓冲区(数组)首地址
//参数3:缓冲区大小
//示例:pipe_init(&TLSR8266_pipe, (uint8_t *)Usart3_buff,USART3_BUFF_SIZE);
void pipe_init(Pipe_t *pipe, uint8_t * buffer, uint16_t size)
{	
	(*pipe).be
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/837665
推荐阅读
相关标签
  

闽ICP备14008679号