关于51单片机如何接收串口的大量数据

关于51单片机如何接收串口的大量数据,第1张

这要看你这个大量有多大了,连续接收数据一般都是开辟一个缓冲区,而缓冲区是受内部寄存器空间限制的,最大256个(52单片机),还不能全用做缓冲区,得留下工作寄存器去,位地址也得留下一些,堆栈也得留下一些,所以这些因数都需要考虑到。

如果不开辟缓冲区得话,接收后就处理,可能有丢失一些数据的可能。

是你串口中断接收数据溢出了。应该改为

if(RI)

{

receive[i]=SBUF

i++ //此处的i需要定义为全局变量,不然你每次都会被清零,也就是数据永 远都是recive[0]=SBUF

if(i>?) //此处填写你的数据最大长度,主程序中数据分析完自后要对i清零。

{

i=0

}

}

if(TI)

{

TI=0;

........//发送程序

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6765479.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存