求教!51单片机无法读取GPS模块数据,不能产生串口中断。
51单片机无法读取GPS模块数据,不能产生串口中断?PC和GPS模块测试可以用,PC和单片机也可以串口通信,但是单片机和GPS连接一直接收不到串口中断? 那肯定是单片机程序问题。要么中断设置不对,要么波特率设置不对。 现在可以接收到了,可是没法 配置GPS模块使能$GPRMC输出语句?? 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;
}
在串口中断里接收数据。 现在只有GPVTG和GPGSV??? http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_650050V002V3.jpg
(原文件名:LGIM0003.jpg) http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_650051SIVFLE.jpg
(原文件名:LGIM0009.jpg) 楼主可否分享一下程序啊
页:
[1]