完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
创建实例
//创建环形缓存区 /// #define RBUFF_SET_LEN 8 //缓存最大长度设置 typedef struct { unsigned char headpos;//头 unsigned char tailpos;//尾 unsigned char len; //长度 unsigned char rbuf[RBUFF_SET_LEN];//接收缓存数据区 }ringBuf_st; ringBuf_st ringBuf;//创建一个ringBuf的缓冲区 // void RingBuff_Init(ringBuf_st *ringBuf_me)//初始化相关信息 { ringBuf_me->headpos = 0; ringBuf_me->tailpos = 0; ringBuf_me->len = 0; memset(&ringBuf_me->rbuf[0],0,RBUFF_SET_LEN); } /// unsigned char RingBuff_Write(ringBuf_st *ringBuf_me,unsigned char writeData)//往环中写入一个数据 { if(RBUFF_SET_LEN<=ringBuf_me->len) //判断缓冲区是否已满 { return 0;//写入失败 } ringBuf_me->rbuf[ringBuf_me->tailpos++]=writeData; ringBuf_me->tailpos %= RBUFF_SET_LEN;//防止越界非法访问//限制在一个RBUFF_SET_LEN长度内 ringBuf_me->len++; return 1;//写入成功 } /// unsigned char RingBuff_Read(ringBuf_st *ringBuf_me,unsigned char *readData)//从环中读取一个数据 { if(0==ringBuf_me->len)//判断空 { return 0;//读取失败 } *readData = ringBuf_me->rbuf[ringBuf_me->headpos++];//先进先出FIFO,从缓冲区头出 ringBuf_me->headpos %= RBUFF_SET_LEN;//防止越界非法访问 ringBuf_me->len--; return 1;//读取成功 } |
|
|
|
只有小组成员才能发言,加入小组>>
3208 浏览 9 评论
2894 浏览 16 评论
3401 浏览 1 评论
8840 浏览 16 评论
3994 浏览 18 评论
9625浏览 3评论
998浏览 3评论
518浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
521浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2244浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 00:47 , Processed in 0.978289 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号