资源简介
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
评论
共有 条评论