定义接收数组 Buffer[j] C8051F120
/************************ COM1 中断函数 ****************************
* 名称: COM1_Serve
* 说明: 接收 COM1 'A' 'B' 'C' 命令
* 功能: 接收时钟校对数组, 命令数组
* 调用: 无
* 输入: 无
* 返回值: Index1[] 校对时钟数组
*********************************************************************/
void COM1_Serve(void) interrupt 4
{
unsigned char j,Temp_s;
SFRPAGE = UART0_PAGE; // 翻页到 COM1 (Byte)字结地址
Temp_s = SBUF0;
for(;Temp_s == '$';) // '$' = 其中之一 $GPGGA
{
while(RI0){Buffer[j] = SBUF0 ; RI0 = 0 ; j++;};
if (SBUF0 == '\r'){Temp_s = ' '; j --;} // 检测到转义字符 '\r' 退出接收
for(;Temp_s == ' ';)
{
Buffer[j] = 'x'; // 对数组添满无意义字符
j++;
if(j > = 76){Temp_s = 'Q' ; j = 0 ; Show_RET = 0 ; break;}
}
}
RI0 = 0;
//$GPGGA,154308.995,4002.6606,N,11624.5528,E,0,00,50.0,-11.6,M,-6.1,M,0.0,0000*43
//$GPGSV,3,1,12,04,89,000,42,02,47,000,00,28,43,000,36,17,34,000,*73
//$GPGSV,3,2,12,27,28,000,00,08,28,000,00,10,25,000,00,26,17,000,00*72
//$GPGSV,3,3,12,09,15,000,,15,05,000,00,20,05,000,00,05,04,000,00*70
//$GPRMC,162209.194,V,0000.0000,N,00000.0000,E,,,230511,,*12
//$GPGGA,162210.194,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*7C
return ;
}