单片机串口接收数据包时,SBUF是怎么处理的??求大神指点。我是新手,望详细~~~

如题所述

串口接收到的数据,会放在SBUF里
等收满了,会产生中断,然后你在中断里直接去SBUF里数据就好了
比如Res_data = SBUF;这样就把收到的数据取出来了追问

从上位机接收的数据包为15*16字节,而且我想要实现每次接收够16字节就马上处理一次数据。请问该怎么实现?

追答

不行,必须一个字节一个字节的取出来
if(i<16)
{
Res_data[i] = SBUF;
i++;
}
这样就填满了

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-28
什么是数据包?
单片机串口,SBUF,每次接收,仅仅是一个字节。

SBUF是怎么处理的?
SBUF 收到一个字节后,标志位 RI,就会自动置一。

其余的事情,都要靠编程人员来解决。追问

从上位机接收的数据包为15*16字节,而且我想要实现每次接收够16字节就马上处理一次数据。请问该怎么实现?

追答

共有240字节!
这么些,放在哪里好啊!
单片机芯片,本身的存储空间,不能都放这些吧?
应该还有别的变量。
要扩充外围芯片。
电路确定之后,再编写程序。

16字节,处理一次,先要确定,这16字节的“头”,以后的15字节,才是信息。
这就涉及到协议。
协议确定之后,再编写程序。

本回答被提问者采纳
第2个回答  2012-03-29
收到16个字节之后返回一个校验码
这样就可以了

...是怎么处理的??求大神指点。我是新手,望详细~~~
串口接收到的数据,会放在SBUF里 等收满了,会产生中断,然后你在中断里直接去SBUF里数据就好了 比如Res_data = SBUF;这样就把收到的数据取出来了

单片机中的SBUF究竟是什么?
SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。SBUF,全称:serial data buffer,中文名为串行数据缓冲器。这个重叠的地址靠读\/写指令区分:串行发送数据时,CPU向SBUF写入数据,此时99H...

51单片机SBUF什么意思?
51单片机中的SBUF是指串行口数据缓冲寄存器,它是一个双缓冲寄存器,包含发送缓冲器和接收缓冲器。在51单片机的串行通信中,SBUF用于暂存要发送的数据或接收的数据。当单片机发送数据时,数据从累加器A传输到SBUF的发送缓冲器,并随后通过串行口发送出去;而在接收数据时,接收到的数据暂时存储在SBUF的接收缓...

关于51单片机SBUF问题
SBUF是单片机硬件的串口接收、发送缓存器,软件往SBUF写入数据后,会自动触发单片机硬件的数据发送,发送完毕后硬件将TI 置1,软件等到TI为1后将其清0,并进行下次发送,即再次写入SBUF。接收数据时,硬件将接收到的数据放入SBUF,并置为SI标志位,软件可使用中断触发或轮询机制发现SI的变化,将数据从SBUF...

51单片机SBUF什么意思?
通过读写缓冲器SBUF实现数据收发功能。SBUF简介:SBUF全称serial data buffer,中文名称“串行数据缓冲器”。这个重叠的地址靠读\/写指令区分:串行发送时,CPU向SBUF写入数据。99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,99H表示接收SBUF。串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收...

51单片机SBUF什么意思?
通过读写SBUF,可以实现51单片机串行口的的数据发送和接收功能。关于SBUF的简介:SBUF的全称是Serial Data Buffer,中文即“串行数据缓冲器”。在地址上,SBUF有一个重叠的部分,这个重叠是通过读写指令来区分的:在串行发送模式下,CPU向SBUF写入数据,此时99H代表的是发送SBUF;而在串行接收模式下,CPU从...

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

...对应的硬件应该是什么样子的?还有单片机sbuf怎么用的啊
2. 关于单片机中的sbuf,它是串口通信的缓冲区。在通过串口发送数据时,你只需要将数据写入sbuf,发送操作会自动完成,这个过程可能会触发串口中断。3. 当通过串口接收数据时,你需要在串口中断标志位置位时(这可以通过中断方式或查询方式实现),然后读取sbuf中的数据即可。4. 尽管发送和接收数据都涉及...

关于51单片机SBUF的理解
串口通信接收时当接收到一个完整字节时会产生一个接收中断标志,即RI自动硬件置1,此时可以读出该字节,读出之后存放的位置是有程序设计人员自己决定的,如果不管新的数据将覆盖旧的数据,即数据丢失了。发送是,当向SBUF写入一个字节之后,硬件开始自动发送,当8位发送完成,将产生一个发射中断标志,即TI...

单片机串口为什么接收数据开中断
串口接收寄存器SBUF收到数据后会把接收标志位RI置位的,电脑发送数据是一个字节接着一个字节,两个字节之间会有延时,所以收到数据你需要尽快处理,不然可能会被新的数据覆盖,配置中断就是为了及时响应把数据读出存储起来。所以SBUF内收到数据后RI就会置1,在中断里把数据存储 然后及时把RI清零接收下一...

相似回答