打印

何判断串口3接收SIM900A反馈的数据已经完成

[复制链接]
3523|12
手机看帖
扫描二维码
随时随地手机跟帖
楼主
yszong| | 2014-3-16 11:24 | 显示全部楼层 回帖奖励 |倒序浏览
你现在用的啥

使用特权

评论回复
沙发
yszong| | 2014-3-16 11:30 | 显示全部楼层
你做的这个,在GPRS接收时,是叫串口消抖。如下:

Glast_r为GPRS收到的长度,
_pRecBuf0为串口中断的时_pRecBuf0++
每次收到GPRS数据时,先消抖,再进行转发操作。
if(_pRecBuf0>0)
{
   RecVary0();
   …………
   ……
   ……
}
void RecVary0()
{
while(1)
   {
    Glast_r = _pRecBuf0; Delay_ms(20);  
    if(Glast_r == _pRecBuf0) break;   
   }                                 
}
其中这个Delay_ms(20);  通过波特率是多少,来算,9600bit/s=9.6bit/ms 约等于1Byte/ms,你就可以大致算一下,20ms能收到几个字节,一般以10个以上的字节为准。
这个时间需要你自己测试来改,
以Delay_ms(10),
Delay_ms(20),
Delay_ms(30),

使用特权

评论回复
板凳
yszong| | 2014-3-16 11:31 | 显示全部楼层

三种情况来测试稳定性,找到最稳定的就定下来,我的是20ms

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则