51单片机串口中断

[复制链接]
673|2
 楼主| guyahui1234 发表于 2016-1-14 16:17 | 显示全部楼层 |阅读模式
void RECEIVE_DATA(void) interrupt 4 using 3                         
{
        unsigned char temp = 0;
        ES=0;
        temp = SBUF;
        RI = 0;
       
        if(temp == '$')
        {
                RX_Count = 0;
                Flag_GPS_OK = 0;               
        }

        RX_Buffer[RX_Count++] = temp;

        if(RX_Count >= 59)
        {
                RX_Count = 59;
                Flag_GPS_OK = 1;               
        }

        ES=1;
}
哪位大神帮忙看下这段程序,接受GPS数据串口中断,有错误吗,为什么收不到
ningling_21 发表于 2016-1-14 16:19 | 显示全部楼层
错误很明显

你不判断RI ,你怎么知道有收到数据?
yuanfang100100 发表于 2016-1-14 16:42 | 显示全部楼层
     if(RX_Count >= 59)
        {
                RX_Count = 59;
                Flag_GPS_OK = 1;               
        }
这里是不是应该     if(RX_Count >= 59)
        {
                RX_Count = 0;
                Flag_GPS_OK = 1;               
        }

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部