打印

求助,帮忙看看这段GPS接收代码为什么不能正常运行

[复制链接]
2135|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shellry861|  楼主 | 2010-4-27 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮忙看看下面的GPS接收代码有什么问题

void GPS_Recv( unsigned char r_char)
{
    if (r_char==0x24){GPS_CMD_BUF=0;GPS_CMD_FLAG=1;GPS_CMD_INDEX=0;GPS_CMD_COUNT=0;}
    if (GPS_CMD_FLAG==1)
    {
        GPS_CMD_BUF+=r_char;
        GPS_CMD_COUNT++;
        if(GPS_CMD_COUNT==7)
        {
            if (GPS_CMD_BUF==0xC9)            //接收$GPRMC头指令
            {
                GPS_CMD_MODE=1;
                GPS_CMD_EN=1;
                GPS_CMD_INDEX=0;
                GPS_CMD_ID=0;
                GPS_CMD_COUNT=0;
            }
            else
            {
                GPS_CMD_FLAG=0;
                GPS_CMD_EN=0;
                GPS_CMD_COUNT=0;
            }
        }
    }
    if (GPS_CMD_EN==1&&GPS_CMD_MODE==1)
    {
        switch (r_char)
        {
            case 0x2c:          // 此时接收逗号;
                GPS_CMD_ID=0;
                GPS_CMD_COUNT++;
                break;
            case 0x0a:
                GPS_CMD_ID=0;
                GPS_CMD_COUNT=0;
                GPS_CMD_FLAG=0;
                GPS_CMD_EN=0;
               
                LED_COM1_RXD=~LED_COM1_RXD;
                OUTPUT_GPS();
                break;
            case 0x0D:
                break;
            default:
                switch (GPS_CMD_INDEX)
                {
                    case 0:    //时间
                        if (GPS_CMD_ID<=5){GPS_TIME[GPS_CMD_ID]=r_char;break;}
                    case 1:    //有效标志
                        
                    case 2:    //纬度
                        if (GPS_CMD_ID<=8){GPS_WD[GPS_CMD_ID]=r_char;break;}
                    case 4:    //经度
                        if (GPS_CMD_ID<=9){GPS_JD[GPS_CMD_ID]=r_char;break;}
                    case 6:    //速度
                        if (GPS_CMD_ID<=4){GPS_SPEED[GPS_CMD_ID]=r_char;break;}
                    case 7:    //方向
                        if (GPS_CMD_ID<=4){GPS_DEG[GPS_CMD_ID]=r_char;break;}
                    case 8 :    //日期
                        if (GPS_CMD_ID<=5){GPS_DATE[GPS_CMD_ID]=r_char;break;}
                }
                GPS_CMD_ID++;
                break;
        }   
    }
}

void UART_two_Interrupt_Receive(void) interrupt 8
{
unsigned char   k   =   0;
k = S2CON ;
k = k & 0x01;
    if(k==1)
    {
  LED_COM2_RXD=0;
  S2CON = S2CON & 0xFE; //1111,1110
        k   =   S2BUF;
  send_UART_one(k);
  GPS_Recv(k);                 //如果我吧这个函数屏蔽程序接收就正常了
  LED_COM2_RXD=1;  
    }
    else
    {
  S2CON = S2CON & 0xFD; //1111,1101
    }
}
编译通过,烧程序也没问题,但是运行就没反应,GPS_Recv()这个函数我在TC2.0里面单步运行也是没有问题的,高手能回答我么

相关帖子

沙发
shellry861|  楼主 | 2010-4-28 10:43 | 只看该作者
怎么没人理我啊

使用特权

评论回复
板凳
hondephy| | 2010-4-29 17:08 | 只看该作者
...不好意思,哥,我想理你,可是我没做过GPS。。。。没什么建议啊

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝