GPS北斗ATGM336H-5N模塊電路原理圖如下:
0.png (58.98 KB, 下載次數: 176)
下載附件
2018-12-17 04:06 上傳
單片機源程序如下:
- /**********************************************************
- 作者:神秘藏寶室
- 接線說明:
- STM32 GPS
- VCC ------> VCC
- GND ------> GND
- RX1 <------ TXD
- STM32 USB-TTL模塊
- GND ------> GND
- TX1 ------> RXD
- ***********************************************************/
- #include "stm32f10x.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- //聲明
- void errorLog(int num);
- void parseGpsBuffer(void);
- void printGpsBuffer(void);
- int main(void)
- {
- delay_init();
-
- NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
- uart_init(9600); //串口初始化為9600
- Init_LEDpin();
- LED1 = 1;
-
- clrStruct();
-
- printf("Welcome to use!\r\n");
- printf("ILoveMcu.taobao.com!\r\n");
- while(1)
- {
- parseGpsBuffer();
- printGpsBuffer();
-
-
- }
- }
- void errorLog(int num)
- {
-
- while (1)
- {
- printf("ERROR%d\r\n",num);
- }
- }
- void parseGpsBuffer()
- {
- char *subString;
- char *subStringNext;
- char i = 0;
- if (Save_Data.isGetData)
- {
- Save_Data.isGetData = false;
- printf("**************\r\n");
- printf(Save_Data.GPS_Buffer);
-
- for (i = 0 ; i <= 6 ; i++)
- {
- if (i == 0)
- {
- if ((subString = strstr(Save_Data.GPS_Buffer, ",")) == NULL)
- errorLog(1); //解析錯誤
- }
- else
- {
- subString++;
- if ((subStringNext = strstr(subString, ",")) != NULL)
- {
- char usefullBuffer[2];
- switch(i)
- {
- case 1:memcpy(Save_Data.UTCTime, subString, subStringNext - subString);break; //獲取UTC時間
- case 2:memcpy(usefullBuffer, subString, subStringNext - subString);break; //獲取UTC時間
- case 3:memcpy(Save_Data.latitude, subString, subStringNext - subString);break; //獲取緯度信息
- case 4:memcpy(Save_Data.N_S, subString, subStringNext - subString);break; //獲取N/S
- case 5:memcpy(Save_Data.longitude, subString, subStringNext - subString);break; //獲取經度信息
- case 6:memcpy(Save_Data.E_W, subString, subStringNext - subString);break; //獲取E/W
- default:break;
- }
- subString = subStringNext;
- Save_Data.isParseData = true;
- if(usefullBuffer[0] == 'A')
- Save_Data.isUsefull = true;
- else if(usefullBuffer[0] == 'V')
- Save_Data.isUsefull = false;
- }
- else
- {
- errorLog(2); //解析錯誤
- }
- }
- }
- }
- }
- void printGpsBuffer()
- {
- if (Save_Data.isParseData)
- {
- Save_Data.isParseData = false;
-
- printf("Save_Data.UTCTime = ");
- printf(Save_Data.UTCTime);
- printf("\r\n");
- if(Save_Data.isUsefull)
- {
- Save_Data.isUsefull = false;
- printf("Save_Data.latitude = ");
- printf(Save_Data.latitude);
- printf("\r\n");
- printf("Save_Data.N_S = ");
- printf(Save_Data.N_S);
- printf("\r\n");
- printf("Save_Data.longitude = ");
- printf(Save_Data.longitude);
- printf("\r\n");
- printf("Save_Data.E_W = ");
- printf(Save_Data.E_W);
- printf("\r\n");
- }
- else
- {
- printf("GPS DATA is not usefull!\r\n");
- }
-
- }
- }
復制代碼
所有資料51hei提供下載:
7.STM32F103例程.rar
(331.52 KB, 下載次數: 314)
2018-12-17 04:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
ATGM336H-5N原理圖.pdf
(120.99 KB, 下載次數: 123)
2018-12-16 17:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|