单片机处理用串口接收频次较高的数据方式

**
说出来都是泪,折腾了一个星期的串口接收并处理的程序,结果还经常出现数据丢失现象,结果是被老大骂了一顿,然后人家半天时就给搞定。除了恨自己无能以外,只有好好向高手学习。现在把人家的数据处理思路写出来,一块学习,一块成长。
闲话不多说,说说学到的东西吧。
这里主要介绍思路,适合所有的单片机,就以STC的15单片机的平台进行解说
步骤一:串口的数据接收
关于串口的配置,和基础性的就不多说,自行看数据手册。直接看串口中断
“`
void Uart1() interrupt 4 using 1
{
if (RI)
{
RI = 0; //Çå³ýRIλ
Usart_RX1_buff[RX1_len++] = SBUF;
if(RX1_len >= buff_len)
{
RX1_len = 0;
}
}

if (TI)
{
TI = 0; //Çå³ýTIλ
busy = 0; //Çåæ±êÖ¾
}
}

在串口的中断里,只做接收,任何判断都不做,防止因为判断的方式不对,把一帧数据都给扔掉。就造成数据丢失。先不管三七二十一,先全盘接收。

步骤二:判断数据是否接收完成

if(RX1_len >
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值