void USART1_IRQHandler(void)
{
char pchar,*pstr;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
/* Clear the USART1 Receive interrupt */
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
/* Read one byte from the receive data register */
pchar = USART_ReceiveData(USART1)&0xFF;
RxBuffer1[RxCounter1++] = pchar;
if(pchar == '\r') {
pstr = strstr( (char*)RxBuffer1, "$GPRMC");
if( pstr != NULL) {
sscanf( pstr,"$GPRMC,%[^,],%c,%f,%c,%f,%c,%f,%f,%[^,]",
gps.gprmc.utc_time,
&(gps.gprmc.status),
&(gps.gprmc.latitude_value),
&(gps.gprmc.latitude),
&(gps.gprmc.longtitude_value),
&(gps.gprmc.longtitude),
&(gps.gprmc.speed),
&(gps.gprmc.azimuth_angle),
gps.gprmc.utc_data
);
}
RxCounter1 = 0;
}
}
}