
STM32单片机与ATGM336H(GPS)模块读写及液晶显示DEMO源码.zip
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
这是一个包含STM32单片机与ATGM336H GPS模块通信以及液晶显示屏操作示例代码的资源包,适用于开发者学习和实践GPS数据读取及显示。
STM32单片机读取ATGM336H(GPS)模块数据,并通过液晶显示屏显示的示例代码可以作为学习参考。
```c
int main(void)
{
uint32_t lcdid;
char cStr[100];
double deg_lat; // 将纬度转换为 [degree].[degree] 格式
double deg_lon; // 将经度转换为 [degree].[degree] 格式
nmeaINFO info; // GPS 解码后得到的信息
nmeaPARSER parser; // 解码时使用的数据结构
uint8_t new_parse = 0; // 新解码数据标志位
nmeaTIME beiJingTime; // 北京时间
HAL_Init(); // 复位所有外设,初始化Flash接口和系统滴答定时器
SystemClock_Config(); // 配置系统时钟
lcdid = BSP_LCD_Init(); // 初始化3.5寸TFT液晶模组,一般优先于调试串口初始化
MX_DEBUG_USART_Init(); // 初始化串口并配置串口中断优先级
MX_SPIFlash_Init();
MX_USARTx_Init();
LED_GPIO_Init(); // 初始化LED
printf(LCD ID=0x%08X\n,lcdid);
LCD_Clear(0,0,LCD_DEFAULT_WIDTH,LCD_DEFAULT_HEIGTH,BLACK); // 清屏
LCD_BK_ON(); // 开启背光
nmea_property()->trace_func = &trace; // 设置用于输出调试信息的函数
nmea_property()->error_func = &error;
nmea_property()->info_func = &gps_info;
nmea_zero_INFO(&info); // 初始化GPS数据结构
nmea_parser_init(&parser);
HAL_UART_Receive_DMA(&husartx,gps_rbuff,GPS_RBUFF_SIZE); // 使用DMA传输数据到电脑端
while(1)
{
if(GPS_HalfTransferEnd)
{
nmea_parse(&parser, (const char*)&gps_rbuff[0], HALF_GPS_RBUFF_SIZE, &info);
GPS_HalfTransferEnd = 0; // 清除标志位
new_parse = 1;
}
else if(GPS_TransferEnd)
{
nmea_parse(&parser, (const char*)&gps_rbuff[HALF_GPS_RBUFF_SIZE], HALF_GPS_RBUFF_SIZE, &info);
GPS_TransferEnd = 0;
new_parse = 1;
}
if(new_parse) // 新的解码消息
{
GMTconvert(&info.utc,&beiJingTime,8,1); // 对解码后的时间进行转换,转为北京时间
printf(\r\n时间%d-%02d-%02d,%d:%d:%d\r\n, beiJingTime.year+1900, beiJingTime.mon,beiJingTime.day,beiJingTime.hour,beiJingTime.min,beiJingTime.sec);
}
}
}
```
此代码段展示了如何通过STM32单片机读取ATGM336H模块的GPS数据,并将解析后的信息以北京时间格式输出。同时,它还包含初始化液晶显示屏和串口通信的部分。
全部评论 (0)


