資源簡介
STM32+陀螺儀+GPS代碼,是我們做項目的代碼,有需要的可以參考一下
代碼片段和文件信息
/**
??******************************************************************************
??*?@file????GPS.c?
??*?@author??武國慶
??*?@date????2017-9-28
??*?@brif????串口中斷服務函數移至UART.c中
??******************************************************************************
**/
#include?“GPS.h“
_SaveData?Save_Data;
uint32_t?PPSvalue?=?0;
/**
??*?@brief??PPS引腳初始化PTB5,上升沿處罰中斷,EXTI5中斷
??*?@retval?無
??*/
?void?PPS_INPUTInit(void)
{
GPIO_InitTypeDef???GPIO_InitStructure;
GPIOB_CLK_ENABLE();
GPIO_InitStructure.Mode?=?GPIO_MODE_IT_RISING;
GPIO_InitStructure.Pull?=?GPIO_NOPULL;
GPIO_InitStructure.Pin?=?GPIO_PIN_4;
HAL_GPIO_Init(GPIOB?&GPIO_InitStructure);
HAL_NVIC_SetPriority(EXTI4_IRQn?2?2);
HAL_NVIC_EnableIRQ(EXTI4_IRQn);
}
/**
??*?@brief??EXTI0中斷服務函數
??*?@retval?無
??*/
void?EXTI4_IRQHandler(void)
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_4);
PPSvalue++;
}
/**
??*?@brief??清除結構體變量
??*?@retval?無
??*/
void?clrStruct(void)
{
Save_Data.isGetData?=?false;
Save_Data.isParseData?=?false;
Save_Data.isUsefull?=?false;
memset(Save_Data.GPS_Buffer?0?GPS_Buffer_Length);??????//清空
memset(Save_Data.UTCTime?0?UTCTime_Length);
memset(Save_Data.latitude?0?latitude_Length);
memset(Save_Data.N_S?0?N_S_Length);
memset(Save_Data.longitude?0?longitude_Length);
memset(Save_Data.E_W?0?E_W_Length);
CLR_Buf();
}
/**
??*?@brief??錯誤標志輸出
??*?@retval?無
??*/
void?errorLog(int?num)
{
while?(1)
{
?? printf(“ERROR%d\r\n“num);
}
}
/**
??*?@brief??接收GPS數據函數
??*?@retval?無
??*/
void?Recive_GPS_Data(void)
{
//if(UartHandle.RxXferCount==0)
while(HAL_UART_Receive_IT(&UartHandle?&Res?1)!=HAL_OK);??//使能接收中斷
??
}
?
/**
??*?@brief??
??*?@retval?無
??*/
void?parseGpsBuffer(void)
{
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]?==?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-09-13?09:34??srtp2_F7_code\
?????目錄???????????0??2017-09-12?10:43??srtp2_F7_code\CORE\
?????文件???????24423??2016-12-30?18:44??srtp2_F7_code\CORE\cmsis_armcc.h
?????文件??????139660??2016-12-30?18:44??srtp2_F7_code\CORE\core_cm7.h
?????文件????????3620??2016-12-30?18:44??srtp2_F7_code\CORE\core_cmFunc.h
?????文件????????3636??2016-12-30?18:44??srtp2_F7_code\CORE\core_cmInstr.h
?????文件????????3662??2016-12-30?18:44??srtp2_F7_code\CORE\core_cmSimd.h
?????文件???????34653??2016-12-30?18:45??srtp2_F7_code\CORE\startup_stm32f767xx.s
?????目錄???????????0??2017-09-29?22:34??srtp2_F7_code\DEVICE\
?????文件????????4019??2017-09-28?23:12??srtp2_F7_code\DEVICE\GPS.c
?????文件????????1184??2017-09-28?23:58??srtp2_F7_code\DEVICE\GPS.h
?????文件????????4589??2017-09-29?22:34??srtp2_F7_code\DEVICE\I2C.c
?????文件????????1190??2017-09-29?22:34??srtp2_F7_code\DEVICE\I2C.h
?????文件????????1575??2017-09-28?23:12??srtp2_F7_code\DEVICE\init.c
?????文件?????????488??2017-08-01?10:21??srtp2_F7_code\DEVICE\init.h
?????文件????????3936??2017-09-28?23:12??srtp2_F7_code\DEVICE\mpu_9250.c
?????文件????????1915??2017-07-27?10:43??srtp2_F7_code\DEVICE\mpu_9250.h
?????文件????????3466??2017-09-29?00:00??srtp2_F7_code\DEVICE\UART.c
?????文件?????????629??2017-09-28?23:55??srtp2_F7_code\DEVICE\UART.h
?????目錄???????????0??2017-09-12?10:41??srtp2_F7_code\HALLIB\
?????目錄???????????0??2017-09-12?10:41??srtp2_F7_code\HALLIB\Inc\
?????目錄???????????0??2017-09-12?10:41??srtp2_F7_code\HALLIB\Inc\Legacy\
?????文件??????178183??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\Legacy\stm32_hal_legacy.h
?????文件???????12327??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal.h
?????文件???????49390??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_adc.h
?????文件???????23864??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_adc_ex.h
?????文件???????36026??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_can.h
?????文件???????34971??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_cec.h
?????文件???????17803??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_conf_template.h
?????文件???????18998??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_cortex.h
?????文件???????16449??2016-12-30?18:46??srtp2_F7_code\HALLIB\Inc\stm32f7xx_hal_crc.h
............此處省略292個文件信息
- 上一篇:兼職網站項目SSH
- 下一篇:數據庫大量數據導出Excel
評論
共有 條評論