获取GPS数据,显示在OLED屏上【N32G401测评】

科技   2024-09-13 08:01   广东  
文章来自面包板社区《N32G401开发板》免费测评活动,作者:种子种子。更多书籍试读及开发板免费申请见面包板测评专区 https://mbb.eet-china.com/evaluating亦可点击文末阅读原文直达

一、前期准备

1、收到试用的开发板:
使用usb线连接电脑,keil5中选择DAP调试
2、安装pack包、以及下载官方N32G401资料,使用官方提供的ftp://download.nationstech.com/,在文件资源管理器中打开
找到N32G401相关的库文件,数据手册,pack包,新建一个N32G401工程文件
HARDWARE存放外设文件,FWLB存放标准外设库文件
二、开始进行项目开发

1、因为使用的模块是0.96 OLED屏和大夏龙雀的GPS模块,OLED屏幕需要使用I2C驱动,GPS的数据格式是NMEA格式的串口数据。所以如果想要将从GPS获取的时间、卫星数、经纬度显示在0.96寸OLED屏幕上,需要使用串口接收中断接收存储GPS数据并进行处理,然后将处理的数据显示在OLED屏幕上。

2、使用I2C驱动0.96寸 OLED屏幕

硬件I2C:(在N32G401资料的example有各个标准外设的使用方法包括初始化)
重点是定义I2C写数据函数
之后将写数据函数替换掉移植的OLED屏幕的函数中的相同写数据函数
在while循环中调用,这样每次更新数据就是反馈在OLED屏幕上:
3、使用串口接收中断接收处理GPS数据

串口初始化(可以直接使用实例程序初始化函数,开启中断)
开启中断后,在main函数中调用串口初始化,在串口2中断后加入数据处理函数。重点是针对gps NMEA格式的数据处理
gps NMEA格式的数据
由于需要获取显示在OLED屏幕上的数据可以在$GNGGA数据帧获取到($GNGGA,063705.00,2237.8099331,N,11404.8822219,E,5,09,1.4,151.837,M,0.000,M,2.0,0074*6C - CSDN文库)

考虑到使用状态机,当获取到$GNGGA数据帧头时,开始存储数据
其中时间的小时需要加上8
剩下的卫星数、经纬度可接收到并显示到OLED屏幕上:
作者:种子种子,来源:面包板社区

END

电路图集

常用模拟电路 | 运放电路 | 保护电路 | EMC标准电路 | 电源电路大全 | 实用控制电路 | 单片机应用电路 | 波形发生电路 |  汽车电路图大全 | 555电路 | 小家电电路  9大基本模块电路 | 原理图英文缩写  | 电路图符号 

入门基础

电路基础 | 数字电路 | 示波器基础 | 万用表使用 | 信号完整性 | 地线知识 | 嵌入式基础  STM32基础知识总结  | C语言知识点

元器件

电阻 | 电容 | 电感 | 二极管 | 三极管 | TVS | 晶闸管 | MOS管 |IGBT | 传感器 | 继电器 元器件等效电路| 元器件选型完全指南 | 元器件故障

加入社群

如果您想加入电子行业微信群,可以扫码添加我们社群运营。备注入群方向(简单描述目标群,如:嵌入式、市场行情等)



 



面包板社区
分享电子技术干货,工程师福利!EET电子工程专辑、ESM国际电子商情、EDN电子技术设计官方社区。
 最新文章