99问答网
所有问题
51单片机编程如何将串口缓冲区中的数据保存为数组格式
我在C#中,通过SerialPort发送了一个四字节的数组到缓冲区{0x11,0x22,0x33,0x44},单片机使用串口终端,如何将串口缓冲区的数据保存为数组格式?
举报该问题
推荐答案 推荐于2018-05-04
可以用软件编程实现,可以参考
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>
数据处理方法解析转换后的
字符串
,执行数据库保存操作。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/vv7jtt7Xt.html
其他回答
第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;
相似回答
单片机
问题:请问这样子不行吗,要
怎样将串口的
发来的很多
数据存
到
数组
中...
答:
这样是不行的,中断里面这样放循环,程序无法达到期望效果。如果是查询方式到时可以这样做。比如:for(i=0;i<2;i++)for(j=0;j<5;j++){ while(RI==0);RI=0;temp[i][j]=SBUF;} 或者采用中断方式,但循环放在外边。for(i=0;i<2;i++)for(j=0;j<5;j++){ while(flag==0);flag...
c语言
单片机编程中
,
怎样将
一个
串口的
到得字符串赋值给一个
数组
答:
1、
串口
字节为:SBUF暂存数组:A[]依次将接收到的字节存入A[0],A[1],A[2],...A[n],接收完毕,存入字符串结束标识:A[N+1]=0A就代表一个字符串。如果是一串数字,要转为整数。2、例程:include<reg
51
.h>#define uchar unsigned charuchar A[16],num;void uart() interrupt 4{if(RI) ...
51单片机数据
处理问题。
串口
接收到浮点数(如6.228)存在
数组
hs[5]中
答:
回答:您好,您用一个数组变量(也就是开辟一个接收
缓冲区
)就OK了如: #include<reg
51
.h> #define uchar unsigned char uchar buf[16],num; void ser_isr() interrupt 4 { if(RI) { RI=0; buf[num]=SBUF; num++; num&=0x0f; } } main() { TMOD=0x20; SCON=0x50; TH1=TL1=...
C语言
单片机编程
,
如何将串口
接收到的十六进制字符转存到
数组
中?
答:
接收数组也可以定义成不定长度的,没有想要寻找你要的字符串可以用strstr 函数,如果想清零可以用memset函数全部赋值为0
51
/52
单片机
keil C语言 字符转数字
答:
你的字符串是存在char* a中吧。a就是第一个字符,*(++a)就是第二字符。再来一次*(++a)就是第三个字符,但是记得不要记a加的出了字符串的界就行了。要不就
把串口
发来
的数据存
到一个char a[10]的数组中。然后用的时候用下标去一个一个取,比如:a[0]就是第一个字符,a[1]就是第二个...
如何
用电脑通过
串行口把单片机的数据保存
起来,以便下一步处理?代码如何...
答:
发送
单片机数据
到PC,首先要编写单片机程序,再编写PC端程序接收
数据保存
就可以了。下面只列出单片机发送数据到
串口的
程序,PC端可以用串口调试软件测试,数据格式是ASCII码格式。已经ISIS 7.7sp2 Professional和虚拟串口软件仿真测试通过了。重新优化了代码:/*单片机发送P1端口值到串口*/ /*
数据格式为
:Now ...
如何
用
51单片机将
一个
串口
收到
的数组
显示在12864液晶上,主要是各个元素...
答:
就把显示的
缓冲区
定义
成串口
接收
的数组
,再显示就可以了
...
串口
发送一个
数组
?用电脑上的串口助手发送,
单片机
接收后再发送给电脑...
答:
1.首先用中断方式循环接收
数据保存
到数组/***
串口数据
接收中断服务*功能:接收串口数据***/void get(void) interrupt 4 using 0{ unsigned char i; if(RI) { for(i=0;i<16;i++) //循环接收16字节字节数据 { while(!RI); table[i]=SBUF; RI=0; //清标志位 } } }再将用查询法
数组中的数据
...
懂单片机者进:PC机向
单片机串口
通信问题,
如何
通过串口助手发送一连串...
答:
以
51单片机为
例
51单片机串口
接收
缓冲区
只有一个字节,那么我们可以定义一个数组做为接收缓冲区,每接收到一个字节就把它保存到数组,通过时间间隔来检测一帧数据是否发完,用定时器即可,在串口中断里 复位定时初值,当超过定时时间没有接收到数据,则会触发定时中断,这时单片机就可以处理接收到
的数据
了 ...
大家正在搜
串口缓冲区数据会被覆盖吗
自定义串口数据缓冲区地址和大小
串口缓冲区没读完如何继续读
单片机串口如何通讯
串口循环缓冲区的实现
串口缓冲区程序乱码
51单片机多个串口
51单片机有几个串口
单片机串口程序
相关问题
51单片机串口接收数组数据并存储
我需要一个程序,51单片机串口接受到一帧数据并把这一帧数据赋...
51单片机串口用数组接收字符串程序怎么写?
51单片机怎样将接收到的串口数据写入一维数组,然后用1602...
c语言单片机编程中,怎样将一个串口的到得字符串赋值给一个数组
串口发送给单片机的数据的存储格式是怎样的
c51,单片机从串口接收字符串,放到一个数组里面,然后在通过...
51单片机,89c52,将串口发送的数据赋值数组T[i],然...