
如何将串口缓冲区的数据存到一个数组里面啊?(PC)
3个回答
展开全部
可以加一个整数索引,对加入的数据长度进行标识。更好的是对这个数据进行扩展,变成一个堆栈,对其进行操作。
#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;
}
#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;
}
展开全部
申明一个数据,然后拷贝数据就行了啊。
char szData[1024]; // 申请1024个字节的数组szData
char* pData;// 假如从串口接收到的数据的指针为pData,数据长度为80个字节
memecpy(szData,pData,80);// 把收到的80个字节缓存到szData中
char szData[1024]; // 申请1024个字节的数组szData
char* pData;// 假如从串口接收到的数据的指针为pData,数据长度为80个字节
memecpy(szData,pData,80);// 把收到的80个字节缓存到szData中
更多追问追答
追问
pData 的指向呢? 怎么指向串口接收数据的缓冲区啊?
追答
把pData换成缓存区指针
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
串口缓冲区不就是一个buffer么,也就是数组喽。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |