初级会员

- 积分
- 50
- 金钱
- 50
- 注册时间
- 2019-4-23
- 在线时间
- 26 小时
|

楼主 |
发表于 2019-7-16 15:21:32
|
显示全部楼层
- #include "fifo.h"
- #include "uart.h"
- RingBuff_t ringBuff;
- void RingBuff_Init(void)
- {
- //初始化相关信息
- ringBuff.Head = 0;
- ringBuff.Tail = 0;
- ringBuff.Lenght = 0;
- }
- u8 Write_Byte(u8 *wData)
- {
- if(ringBuff.Lenght >= RINGBUFF_LEN) //判断缓冲区是否已满
- {
- return false;
- }
- ringBuff.Ring_Buff[ringBuff.Tail] = *wData;
- // ringBuff.Tail++;
- ringBuff.Tail = (ringBuff.Tail+1)%RINGBUFF_LEN;//防止越界非法访问
- ringBuff.Lenght++;
- return true;
- }
- u8 Read_Byte(u8 *rData)
- {
- if(ringBuff.Lenght == 0)//判断非空
- {
- return false;
- }
- *rData = ringBuff.Ring_Buff[ringBuff.Head];//先进先出FIFO,从缓冲区头出
- // ringBuff.Head++;
- ringBuff.Head = (ringBuff.Head+1)%RINGBUFF_LEN;//防止越界非法访问
- ringBuff.Lenght--;
- return true;
- }
- int Read_Bytes(u8 *rData,int size)
- {
- int r_len = 0;
- while(Read_Byte(rData))
- {
- rData++;
- if(++r_len >= size)
- {
- return r_len;
- }
- }
- return r_len;
- }
- int Write_Bytes(u8 *wData,int size)
- {
- int w_len = 0;
- while(Write_Byte(wData))
- {
- wData++;
- if(++w_len >= size)
- {
- return w_len;
- }
- }
- return w_len;
- }
复制代码
这是环形队列部分 |
|