怎么对单片机接受的数据进行处理

如题所述

楼主意思估计是单片机双机232通信吧。
单片机串口缓冲寄存器sbuf是读写复用的,当接收中断的时候在中断程序里处理一次sbuf,就是读取一次sbuf的内容,缓冲寄存器sbuf就变空了,除非接收到下一个数据。
你程序里面接收中断处理有点语意上的问题吧,led[i]
=
sbuf;
这句已经把sbuf的内容读走了,又没有接收到下一个数据,所以你再判断sbuf则一直是空,就是sbuf内容是0,这样你的if语句就不会执行
i++
操作,所以程序的表现是不是只有p0口的灯有变化?
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-20
如果你接收到的是4位“数”而不是字符串那么程序如下:
#include
#define
uchar
unsigned
char
uchar
dat[6],get[4],num=0,i;
void
uart()
interrupt
4
{
if(RI)
{
RI=0;
get[num]=SBUF;
num++;
}
}
main()
{
TMOD=0x20;
TH0=0xfd;
TL0=0xfd;
SCON=0x50;
TR1=1;
ES=1;
EA=1;
num=0;
while(1)
{
if(num==3)
{
num=0;
dat[0]='A';
dat[1]=get[0];
dat[2]=get[1];
dat[3]=get[2];
dat[4]=get[3];
dat[5]='B';
for(i=0;i<6;i++)
{
SBUF=dat[i];
while(!TI);
TI=0;
}
}
}
}
第2个回答  2019-07-31
首先:你用的啥单片机?
其次,1234你是以16进制,还是ASCII码发送?

怎么对单片机接受的数据进行处理
单片机串口缓冲寄存器sbuf是读写复用的,当接收中断的时候在中断程序里处理一次sbuf,就是读取一次sbuf的内容,缓冲寄存器sbuf就变空了,除非接收到下一个数据。你程序里面接收中断处理有点语意上的问题吧,led[i]= sbuf;这句已经把sbuf的内容读走了,又没有接收到下一个数据,所以你再判断sbuf则一直是...

51单片机接收PC机发来的多字节数据怎么处理
相互独立的数据,那就接收一个处理一个。如果是一个数据的,则要接收所有数据后再处理。为了保存接收的数据,可声明一个数组,这样,接收的数据就存放在这个数组中,等接收完一帧数据后,再处理执行。其实,这种处理,与接收一个字节的处理方式很相似,只是需要先保存一帧数据,再处理执行。

单片机怎么用C语言处理接收的数据
根据你的要求这两个程序很简单,甲机作为发送端,用一个按键作为启动(低电平有效),按一下发送4个字节数据。乙机作为接收端,P0到P3低电平点亮灯。两机的晶振选择11.0952MHz。 甲机程序:#include<reg52.h> define uchar unsigned char define uint unsigned int sbit key=P1^0; \/\/定义IO口作...

stm32单片机接收来自串口的数字要经过怎样的处理
串口过来的数据是字节数据,这些数据是预先定义好格式的,收到后,解码即可。一般用串口助手类软件测试,这类型的软件有格西烽火、SSCOM、串口调试助手等。

单片机如何接收和处理超过一个字节的数据
用一个数组来作为接收缓冲区,在开始接收的时候要进行计数,接收一个字节,指针向后移一位。接收数量达到预设数目后停止接收。当然,这个接收要跟发送方定好协议,才能对接收的数据进行解析。解析完成后,将计数值清零,开始准备下一次接收。

单片机串口通信 怎么把接收到的数据写入数组 求大神啊
你定义个变量q=0; 你接收一次的数据a 放数组位sj[i] 然后再把q值加1. 重复 接数据 放数字 再加1

STM32单片机如何处理QT上位机串口中发过来的数据?
单片机接收处理串口的数据的过程就是配置好波特率、位宽、校验位等,收到数据 后可以引起中断,也可以查询标志位,然后进行相应的处理。1) 串口时钟使能,GPIO 时钟使能。2) 设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。3) GPIO 初始化设置:要设置模式为复用功能。4) 串口参数初始化:设置波特率,...

单片机接收到的数据如何连接数据库
ii = 2 To X + 1 Step 2 '从第4行开始存数据 V2 = indata(ii) * nb V4 = Format(V2, "0.000")xlsSheet.Cells(ii \/ 2 + 3, range) = V4 Next ii xlsBook.Save xlsBook.Application.Quit strHex = "" '处理完成后清空字符串,等待下一次接收 'TextReceive = ""End Select ...

单片机采集的数据如何即时显示在电脑显示器上并存储
1、首先做一块电路板(或者买一块带USB通讯的开发板),将PIC32的USB通讯管脚D+、D-通过USB座子引出来连接到电脑上。2、配置单片机USB模块代码程序,可以通过Harmony配置生成代码。3、把程序下载到单片机,电脑的端口上识别出来,说明硬件连接成功。4、电脑会自动安装USB驱动,也可以手动安装,写程序把...

在单片机电路中怎么实现数据智能处理
位同步逻辑主要由数字锁相环构成,用于从串行数据输入信号SDI中恢复出位时钟信号。帧同步逻辑从位同步逻辑的输出信号提取帧同步脉冲。两者为DSP利用其同步串行口接收串行数据作好准备。这样,利用一对差分信号线就可以接收同步串行数据,简化了印制电路板的外部接口。授时时钟在DSP和GSP接收机的协助下生成精度...

相似回答
大家正在搜