51单片机编程如何将串口缓冲区中的数据保存为数组格式

我在C#中,通过SerialPort发送了一个四字节的数组到缓冲区{0x11,0x22,0x33,0x44},单片机使用串口终端,如何将串口缓冲区的数据保存为数组格式?

可以用软件编程实现,可以参考
char a[4]
if(RI)
RI=0;
a[4]=SBUF;
i++
将一个数组存入数据库和使用的语言有关系。

通常的做法是将数组的内容转换后传递到和语言相关的数据处理方法中进行处理。
涉及到的数据转换的方法:
1:可以转换为json格式
[{key:1},{key:2}]
2:可以转换为xml
<values>
<key>1</key><key>2</key>
</values>
数据处理方法解析转换后的字符串,执行数据库保存操作。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-21
我是用C写的,我想方法应该大同小异吧。要存到数组里面,你首先要定义一个数组,然后可以利用一个循环,每循环一个,写到一个元素里面,直到写完,明白不?我写段程序给你吧
char a[4]
if(RI)
RI=0;
a[4]=SBUF;
i++
程序就这样,你可能要稍微改下,平时有时间多看下书,其实单片机很简单本回答被提问者采纳
第2个回答  2011-02-19
单片机程序好像有问题

void serial () interrupt 4 using 3

{

RI=0;

iab =SBUF;
while(!RI){
RI=0;
n =SBUF;

flg=1;

}

///////////////////////////////

void serial () interrupt 4 using 3

{ uchar a;

a=0; //每次都会初始化为零
RI=0;

str[a++] =SBUF; //所以每次都是str[0]=SBUF;str[1]永远都没有得到更新

iab=str[0];
// iab=1;
n=str[1];

flg=1;

}
第3个回答  2011-02-18
BYTE g_bSciIndex;
BYTE g_bSciBuf[32];

在中断函数里面
g_bSciBuf[g_bSciIndex++] = RX_REG;
相似回答