📄 gps.c
字号:
#include "public.h"
void UART_init()
{
USART_BRR1 = USART_BAUD1;
USART_BRR2 = USART_BAUD2;
// USART_CR5 |= 0x08;
USART_CR2 = USART_CR2_TIEN |USART_CR2_TCIEN|USART_CR2_RIEN|USART_CR2_REN|USART_CR2_TEN;
}
void GPS_init()
{
PD_GPOWER = 1;
PCR1_GPOWER = 1;
PCR2_GPOWER = 0;
PIN_GPOWER = 0;
PD_GRESET = 1;
PCR1_GRESET = 1;
PCR2_GRESET = 0;
PIN_GRESET = 0;
PD_GSLEEP = 1;
PCR1_GSLEEP = 1;
PCR2_GSLEEP = 0;
PIN_GSLEEP = 0;
ucGpsCommandStatus = GPS_COMMAND_IDLE;
GpsDelays = 0;
}
#if 1
void UARTTxInt()
{
USART_CR2 &= ~USART_CR2_TIEN;
USART_CR2 &= ~USART_CR2_TCIEN;
}
#endif
void UARTRxInt()
{
ucGpsUartCommand = USART_DR;
}
void UARTTransfer(unsigned char *data)
{
while(*data)
{
while((USART_SR & 0x80)== 0);//data don't send over,so wait for a moment .add it by jzq 2009-1-1
USART_DR = *data;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
data ++;
}
#ifdef DEBUG
while((USART_SR & 0x80) == 0);
USART_DR = 0x0d;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
while((USART_SR & 0x80) == 0);
USART_DR = 0x0a;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
#endif
}
#ifdef DEBUG
void debug(unsigned char *data)
{
while(*data)
{
while((USART_SR & 0x80)== 0);//data don't send over,so wait for a moment .add it by jzq 2009-1-1
USART_DR = *data;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
data ++;
}
#ifdef DEBUG
while((USART_SR & 0x80) == 0);
USART_DR = 0x0d;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
while((USART_SR & 0x80) == 0);
USART_DR = 0x0a;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
#endif
}
void debug_val(unsigned char *promter,unsigned int data)
{
unsigned char i;
unsigned char val[5];
unsigned char hi,low;
unsigned char s,h,t,b,d;
s = data/10000;
h = (data - s*10000)/1000;
t = (data %1000)/100;
b = (data %100)/10;
d = (data %10);
val[0] = '0'+s;
val[1] ='0' + h;
val[2] = '0' + t;
val[3] = '0'+ b;
val[4] = '0' + d;
while(*promter)
{
while((USART_SR & 0x80)== 0);//data don't send over,so wait for a moment .add it by jzq 2009-1-1
USART_DR = *promter;
USART_CR2 |= USART_CR2_TIEN|USART_CR2_TCIEN;
promter ++;
}
debug(val);
}
#endif
void USARTReceiver()
{
// UARTTransfer(&ucGpsUartCommand);
}
void GPSMain()
{
// if(System.FWorkMode.Current == WORKMODE_GPS)
}
void GPSTimer100ms()
{
if(GpsDelays > 0) GpsDelays --;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -