北斗ATGM336H-5N模块开发资料完整包

版权申诉
5星 · 超过95%的资源 13 下载量 51 浏览量 更新于2024-10-16 2 收藏 6.31MB ZIP 举报
资源摘要信息:"北斗定位ATGM336H-5N模块软硬件开发资料" 在北斗卫星导航系统(BDS)成为全球卫星导航系统的重要一员后,北斗定位模块的应用逐渐广泛,其中ATGM336H-5N是市场上较为常见的一款模块。本次提供的开发资料包含了丰富的信息,为开发者提供了软硬件方面的学习和设计参考。 首先,硬件参考设计原理图是任何硬件项目开发的基石。原理图是一种详细说明电子线路连接方式的图表,它以标准化的图形符号来表示电子元件和它们之间的连接。在ATGM336H-5N模块的硬件参考设计原理图中,你可以找到如下关键信息: 1. 主要组件:包括定位模块、微控制器(如STM32)、电源管理电路、天线连接器、通信接口(例如UART、I2C或SPI)以及可能的外围设备接口。 2. 电路布局:良好的电路布局可以提升信号传输效率,并减少信号干扰。原理图将展示如何布局这些组件,以确保模块能够稳定工作。 3. 连接方式:显示各个组件如何通过导线、焊盘或连接器连接,确保电子信号能正确流动。 4. 电源设计:电源部分设计对于整个模块的稳定运行至关重要,原理图中将包含为ATGM336H-5N模块提供适当电压和电流的电路设计。 5. 外部接口:包括与外界通信的方式,例如USB、RS232、RS485等,这些接口的设计也反映在原理图上。 接下来是软件部分,软件开发方面提供了针对不同开发平台的源码,包括STM32、C51和Arduino的例程源码。 1. STM32源码:STM32是由STMicroelectronics生产的一系列32位ARM Cortex-M微控制器的产品线,拥有较高的性能和较低的功耗。这些源码通常用C语言编写,并利用STM32的HAL库或直接寄存器操作来进行编程,以实现对ATGM336H-5N模块的控制和数据交互。 2. C51源码:C51指的是基于8051架构的微控制器,广泛应用于嵌入式系统的开发。这里的源码通常会使用C语言或汇编语言编写,用于控制北斗模块进行定位数据的获取和解析。 3. Arduino源码:Arduino是一个开源的电子原型平台,它基于易于使用的硬件和软件。为ATGM336H-5N模块提供的Arduino例程源码,将有助于那些使用Arduino平台进行开发的用户,让定位模块的集成变得简单易行。 这份资料的集合,不仅为专业开发者提供了技术参考,对于初学者而言,也是一份珍贵的学习资源。对于想要了解北斗模块的硬件连接方式,或者是想要通过STM32、C51或Arduino平台进行北斗模块编程的开发者来说,都是不可多得的资料。 总结而言,提供的资源文件包括了硬件原理图和针对不同开发平台的软件例程,覆盖了北斗定位模块从硬件连接到软件编程的整个开发流程。这对于希望深入学习和掌握北斗定位技术的开发者而言,无疑是一份宝贵的资料。通过这些资料,开发者可以快速理解和应用ATGM336H-5N模块,将其应用于自己的项目中,实现精确的定位功能。
2022-01-17 上传
STM32单片机读写 ATGM336H(GPS)模块+液晶显示DEMO软件例程源码,可做为你的学习设计参考。 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; //北京时间 /* 复位所有外设,初始化Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化3.5寸TFT液晶模组,一般优先于调试串口初始化 */ lcdid=BSP_LCD_Init(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); MX_SPIFlash_Init(); MX_USARTx_Init(); /* 初始化LED */ LED_GPIO_Init(); /* 调用格式化输出函数打印输出数据 */ 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; /* 初始化GPS数据结构 */ nmea_zero_INFO(&info); nmea_parser_init(&parser); /* 使用DMA传输数据到电脑端 */ HAL_UART_Receive_DMA(&husartx,gps_rbuff,GPS_RBUFF_SIZE); while(1) { if(GPS_HalfTransferEnd) /* 接收到GPS_RBUFF_SIZE一半的数据 */ { /* 进行nmea格式解码 */ 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); //info.lat lon中的格式为[degree][min].[sec/60],使用以下函数转换成[deg