如何将串口缓冲区的数据存到一个数组里面啊?(PC)

 我来答
悟叶野s
推荐于2016-06-04 · TA获得超过3593个赞
知道答主
回答量:1172
采纳率:100%
帮助的人:140万
展开全部
可以加一个整数索引,对加入的数据长度进行标识。更好的是对这个数据进行扩展,变成一个堆栈,对其进行操作。
#include<stdio.h>
#include<string.h>
#define byte unsigned char
byte queue_buf[20], idx = 0;

void push(byte n) //当串口每接收一个数据,就用push添加一个数据
{
if (idx < 20)
queue_buf[idx++] = n;
}

byte pop()
{
byte ret = 0;
if (idx-- > 0)
{
ret = queue_buf[0];
memcpy(queue_buf, &queue_buf[1], idx);
}
return ret;
}

byte size()
{
return idx;
}

byte clear()
{
memset(queue_buf, 0, 20);
idx = 0;
}
ysdoc
推荐于2016-05-23 · TA获得超过746个赞
知道小有建树答主
回答量:586
采纳率:60%
帮助的人:415万
展开全部
申明一个数据,然后拷贝数据就行了啊。
char szData[1024]; // 申请1024个字节的数组szData
char* pData;// 假如从串口接收到的数据的指针为pData,数据长度为80个字节
memecpy(szData,pData,80);// 把收到的80个字节缓存到szData中
更多追问追答
追问
pData 的指向呢? 怎么指向串口接收数据的缓冲区啊?
追答
把pData换成缓存区指针
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二弼萌8
2012-12-08 · TA获得超过666个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:348万
展开全部
串口缓冲区不就是一个buffer么,也就是数组喽。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式