Advertisement

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)

还没有任何评论哟~
客服
客服
  • STM32ATGM336H(GPS)DEMO.zip
    优质
    这是一个包含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数据,并将解析后的信息以北京时间格式输出。同时,它还包含初始化液晶显示屏和串口通信的部分。
  • STM32SW-420震动传感器DEMO.zip
    优质
    本资源提供STM32单片机与SW-420振动模块传感器交互的示例代码,包括数据读取和配置功能,适用于嵌入式开发学习和项目实践。 STM32单片机读写SW-420震动模块传感器DEMO例程源码 ```c int main(void) { uint32_t lcdid; // 初始化所有外设,Flash接口以及系统滴答定时器 HAL_Init(); // 配置系统时钟 SystemClock_Config(); // 初始化串口并配置串口中断优先级 MX_DEBUG_USART_Init(); // 模块初始化 SW420_GPIO_Init(); // 初始化3.5寸TFT液晶模组,一般优先于调试串口初始化 lcdid = BSP_LCD_Init(); // 调用格式化输出函数打印LCD ID printf(LCD ID=0x%08X\n,lcdid); // 清屏并设置背景颜色为黑色 LCD_Clear(0, 0, LCD_DEFAULT_WIDTH, LCD_DEFAULT_HEIGHT, BLACK); HAL_Delay(1000); // 开启背光 LCD_BK_ON(); } ```
  • 的接口设计分析
    优质
    本文章主要探讨了如何将单片机与液晶显示模块进行有效连接和配置的方法,并深入分析了其中的关键技术问题。 吕志信与魏晋宏的文章《基于单片机液晶显示模块的接口设计》介绍了GJ12864点阵式液晶显示模块及单片机MSP430F149的功能特点,并详细阐述了这两者之间的接口设计方案。通过合理的电路设计,解决了相关问题。
  • STM32F103OV7725摄像头(拍照)的软件实验.zip
    优质
    本资源提供基于STM32F103单片机和OV7725摄像头模块的软件实验代码,涵盖拍照功能及LCD显示。适合进行嵌入式系统开发学习与实践。 STM32F103单片机摄像头OV7725模块的软件实验例程源码用于拍照并显示在液晶屏上,仅供学习及设计参考。
  • STM32F407SW-420振动传感器DEMO.zip
    优质
    本资源包包含STM32F407单片机与SW-420振动模块之间的通信示例代码,适用于传感器数据的读取和处理。 STM32F407单片机读取SW-420震动模块传感器的DEMO软件例程源码可以作为学习设计参考。 ```c int main(void) { uint32_t lcdid; // 初始化所有外设,配置Flash接口和系统滴答定时器 HAL_Init(); // 配置系统时钟 SystemClock_Config(); // 初始化串口并设置串口中断优先级 MX_DEBUG_USART_Init(); // 模块初始化 SW420_GPIO_Init(); // 初始化3.5寸TFT液晶模组,一般在调试串口之前进行初始化 lcdid = BSP_LCD_Init(); // 打印输出数据到控制台 printf(LCD ID=0x%08X\n,lcdid); LCD_Clear(0, 0, LCD_DEFAULT_WIDTH, LCD_DEFAULT_HEIGHT, BLACK); HAL_Delay(1000); // 延迟一秒 // 开启背光 LCD_BK_ON(); // 显示字符串在液晶屏上 LCD_DispString_EN_CH(70, 50,(uint8_t *)YS-F4Pro开发板,BLACK,BLUE,USB_FONT_24); LCD_DispString_EN_CH(20,100,(uint8_t *)SW-420 震动模块实验,BLACK,YELLOW,USB_FONT_24); // 显示震动状态 LCD_DispString_EN_CH(105, 200,震动,BLACK,WHITE,USB_FONT_24); while (1) { if(SW420_StateRead() == SW420_HIGH) { LED1_ON; // 显示有振动 LCD_DispString_EN_CH(80, 200,有,BLACK,RED,USB_FONT_24); } else { LED1_OFF; // 显示无振动 LCD_DispString_EN_CH(80, 200,无,BLACK,RED,USB_FONT_24); } HAL_Delay(1000); // 延迟一秒 } } ```
  • 跟我学习51(七)——LCD1602
    优质
    本教程为初学者详细介绍如何使用51单片机控制LCD1602液晶显示模块,涵盖硬件连接与编程技巧,帮助快速掌握其应用方法。 上一期介绍了单片机捕获红外遥控器解码的方法,并提供了电路原理图及程序设计实例。本期将讲解如何使用单片机驱动LCD1602液晶显示模块。通过本讲的学习,读者能够了解LCD1602的工作原理以及如何利用单片机对其进行控制。 一、工作原理简介 液晶显示模块因其体积小、功耗低和信息量大的特点,在嵌入式系统中应用越来越广泛。本期介绍的LCD1602(内部控制器为HD44780芯片)可以同时显示两行,每行最多可容纳16个字符,相当于32个LED数码管的信息量,并且还能展示更多细节信息。该模块仅需单+5V电源供电,外围电路简单配置即可使用,价格经济实惠。
  • 51-1602-滚动.zip
    优质
    本资源提供了一个使用51单片机控制1602液晶屏实现文本滚动显示的完整代码。包含详细注释,适合初学者学习与实践。 1602液晶滚动显示.zip
  • 其特性
    优质
    液晶显示模块是一种利用液晶技术实现信息显示的电子组件,具有低功耗、体积小、重量轻及易于驱动等特性,在便携式设备和嵌入式系统中广泛应用。 液晶显示模块(LCM)是一种集成多种组件的显示器部件,包括液晶面板、连接件、集成电路、PCB线路板、背光源及结构件等,其主要功能在于实现与外部设备之间的连接。 随着液晶技术的进步和成本降低,LCD逐渐取代了传统的CRT显示器。未来,“全民液晶时代”将更加普及,因为LCD的成本不断下降且性能不断提升。 根据显示方式的不同,LCM可以分为以下几类: 1. 数显模块:由段型液晶面板与专用集成电路组成,可显示数字及标识符号,在小型设备中应用广泛。 2. 液晶点阵字符模块:通过行、列驱动器和控制器等组件来实现西文字符的显示,并支持用户自定义字符功能。 3. 点阵图形液晶模块:由于像素连续排列而能同时展示图像与文字,具有多种类型。 LCM常用的连接方式有斑马条连接、金属插脚(PIN)、热压集成电路芯片(COG)等。使用时需要注意以下事项: 1. 保护显示屏不受机械冲击; 2. 若发生液晶泄漏,请立即清洗并避免接触皮肤或衣物; 3. 正确接地以确保安全; 4. 在干燥环境中装配和使用设备,应采取措施减少静电产生; 5. 如有表面保护膜请勿随意撕除。 随着技术的发展,LCM的功能集成度越来越高,在提供显示功能的同时还能实现信息处理、存储等功能。未来液晶显示模块将更加普及,并且其成本会进一步降低而性能更佳。