meenweeminn 发表于 2011-5-21 23:12:42

求教!51单片机无法读取GPS模块数据,不能产生串口中断。

51单片机无法读取GPS模块数据,不能产生串口中断?
PC和GPS模块测试可以用,PC和单片机也可以串口通信,但是单片机和GPS连接一直接收不到串口中断?

wl1203 发表于 2011-5-22 08:06:10

那肯定是单片机程序问题。要么中断设置不对,要么波特率设置不对。

meenweeminn 发表于 2011-5-22 20:28:54

现在可以接收到了,可是没法 配置GPS模块使能$GPRMC输出语句??

meenweeminn 发表于 2011-5-22 20:46:54

void main()
{
        /* 初始化串口 */
        rs232_init();

        lcm_init();//初始化液晶显示器
        lcm_clr();//清屏

        DisableAllOut();
        EnableGPRMC();                  
        delay(1000);   //延时1s
        REN = 1;                        // REN = 1,开始接收数据

        while(1);       
}

/* 配置GPS模块禁用所有输出语句 */
void DisableAllOut()
{
        /* 发送语句:$PGRMO,,2 */
        TI = 0;
        SBUF = 0x24;                                // 发送"$"
        while(!TI);
        TI = 0;
        SBUF = 'P';                                        // 发送"P"
        while(!TI);
        TI = 0;
        SBUF = 'G';                                        // 发送"G"
        while(!TI);
        TI = 0;
        SBUF = 'R';                                        // 发送"R"
        while(!TI);
        TI = 0;
        SBUF = 'M';                                        // 发送"M"
        while(!TI);
        TI = 0;
        SBUF = 'O';                                        // 发送"O"
        while(!TI);
        TI = 0;
        SBUF = ',';                                        // 发送","
        while(!TI);
        TI = 0;
        SBUF = ',';                                        // 发送","
        while(!TI);
        TI = 0;
        SBUF = '2';                                        // 发送"2"
        while(!TI);
        TI = 0;
        SBUF = 0x2a;                                // 发送"*"
        while(!TI);
        TI = 0;
}

/* 配置GPS模块使能$GPRMC输出语句 */
void EnableGPRMC()
{
        /* 发送语句:$PGRMO,GPRMC,1 */
        TI = 0;
        SBUF = 0x24;                                // 发送"$"
        while(!TI);
        TI = 0;
        SBUF = 'P';                                        // 发送"P"
        while(!TI);
        TI = 0;
        SBUF = 'G';                                        // 发送"G"
        while(!TI);
        TI = 0;
        SBUF = 'R';                                        // 发送"R"
        while(!TI);
        TI = 0;
        SBUF = 'M';                                        // 发送"M"
        while(!TI);
        TI = 0;
        SBUF = 'O';                                        // 发送"O"
        while(!TI);
        TI = 0;
        SBUF = ',';                                        // 发送","
        while(!TI);
        TI = 0;
        SBUF = 'G';                                        // 发送"G"
        while(!TI);
        TI = 0;
        SBUF = 'P';                                        // 发送"P"
        while(!TI);
        TI = 0;
        SBUF = 'R';                                        // 发送"R"
        while(!TI);
        TI = 0;
        SBUF = 'M';                                        // 发送"M"
        while(!TI);
        TI = 0;
        SBUF = 'C';                                        // 发送"C"
        while(!TI);
        TI = 0;
        SBUF = ',';                                        // 发送","
        while(!TI);
        TI = 0;
        SBUF = '1';                                        // 发送"1"
        while(!TI);
        TI = 0;
        SBUF = 0x2a;                                // 发送"*"
        while(!TI);
        TI = 0;
}

在串口中断里接收数据。

meenweeminn 发表于 2011-5-22 20:47:42

现在只有GPVTG和GPGSV???

meenweeminn 发表于 2011-6-18 18:12:11

http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_650050V002V3.jpg
(原文件名:LGIM0003.jpg)

meenweeminn 发表于 2011-6-18 18:13:13

http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_650051SIVFLE.jpg
(原文件名:LGIM0009.jpg)

wdc014 发表于 2011-9-22 11:33:11

楼主可否分享一下程序啊
页: [1]
查看完整版本: 求教!51单片机无法读取GPS模块数据,不能产生串口中断。