一、前期准备
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屏幕上:
三、演示视频
时间、卫星数、东经、北纬通过N32G401接收gps数据处理好依次显示在OLED屏幕上: