GPS,GNSS,定位,NAME协议解析、AT32F413RCT7 或 STM32F103RCT6

dropLin 0fd424793a 修改readme 3 tuần trước cách đây
STM32F10x_FWLib bc1c0f3997 first commit 11 tháng trước cách đây
app bc1c0f3997 first commit 11 tháng trước cách đây
core bc1c0f3997 first commit 11 tháng trước cách đây
keil_v5 0fd424793a 修改readme 3 tuần trước cách đây
peripheral bc1c0f3997 first commit 11 tháng trước cách đây
project 0fd424793a 修改readme 3 tuần trước cách đây
radio 0fd424793a 修改readme 3 tuần trước cách đây
test bc1c0f3997 first commit 11 tháng trước cách đây
.gitignore bc1c0f3997 first commit 11 tháng trước cách đây
README.md 0fd424793a 修改readme 3 tuần trước cách đây
gitFocePushRemote.bat bc1c0f3997 first commit 11 tháng trước cách đây
keilkilll.bat bc1c0f3997 first commit 11 tháng trước cách đây

README.md

一、项目名称

adapterBoardDriver

二、产品类型

演示板

三、应用场景

四、传感器及驱动接口

五、按键

6个

六、LED指示灯

2个

七、显示器类型及驱动接口

深圳市晶联讯电子的液晶模块JLX19296G-382-PN 该液晶模块支持4线SPI串行接口和IIC接口,本项目使用IIC接口驱动,显示大小192*96 点阵

八、功耗要求

九、供电方式

支持三种供电

  1. USB的MICRO-B插头供电
  2. 3*5号电池供电
  3. 2pin的PH座子供电,注意电压不能超过5V

十一、尺寸

87mm*131.5mm

十二、射频频段

十三、射频芯片方案

十四、主控芯片方案

AT32F413RCT7该MCU与STM32F103RCT6软硬件兼容

十五、认证要求

十六、外部连接接口

十七、编译器

MDK-ARM Standard Version: 5.14.0.0

十八、编程语言

C99标准

十九、SDK版本

STM32F10x_StdPeriph_Lib_V3.5.0

二十、功能描述

上电自动接收解析GNSS数据

二十一、备注说明

二十二、软件开发

软件说明

  • 头文件调用

    #include "nmeaparser.h"
    
  • 解析库初始化

    struct nmea_parser parser[1];
    nmea_parser_init(parser);
    parser->report_nav_status = display_navdata; 
    
  • 解析完成回调

    /*
    * Print navigation data and wait for user's keystroke
    * @navdata:    the navigation data
    */
    void display_navdata(struct nav_data *navdata) {
    printf("NAVDATA:\n");
    printf("NAVDATA.FIX_VALID = %d\n", navdata->is_fixed);
    printf("NAVDATA.DATE = %d-%02d-%02d\n", navdata->date.year, navdata->date.month, navdata->date.day);
    printf("NAVDATA.TIME= %02d:%02d:%02d.%03d\n", navdata->time.hour, navdata->time.minute, navdata->time.second, navdata->time.ms);
    printf("NAVDATA.LAT = %.6f\n", navdata->lat);
    printf("NAVDATA.LON = %.6f\n", navdata->lon);
    printf("NAVDATA.ALT = %.2f\n", navdata->alt);
    printf("NAVDATA.HEADING = %.2f\n", navdata->heading);
    printf("NAVDATA.SPEED = %.2f\n", navdata->speed);
    printf("NAVDATA.HDOP = %.1f\n", navdata->hdop);
    printf("NAVDATA.VDOP = %.1f\n", navdata->vdop);
    printf("NAVDATA.PDOP = %.1f\n", navdata->pdop);
    printf("NAVDATA.NUM_SV_FIX = %d\n", navdata->sv_inuse);
    printf("NAVDATA.NUM_SV_VIEW = %d\n", navdata->sv_inview);
    }
    
  • 解析串口数据 解析完后需把串口接收缓存清空,以免影响下次数据的解析

                for (int i = 0; i < uart3Packet.len; i++)                     // parse nmea data
                        nmea_parser_putchar(parser, uart3Packet.packet[i]);
                uart3Packet.isValid = false;
                uart3Packet.len = 0;
                memset(uart3Packet.packet, 0, sizeof(uart3Packet.packet));
    
  • 解析结果说明

    struct nav_data {
        struct gnss_date date;          // 日期
        struct gnss_time time;          // 时间
        bool    is_fixed;               // 定位状态
        double  lat;                    // 纬度
        double  lon;                    // 经度 
        float   alt;                   // 海拔
        float   speed;                  // 速度
        float   heading;                // 航向角度
        float   hdop;                   // 水平精度
        float   vdop;                   // 垂直精度因子。反映高程(海拔)的精度。
        float   pdop;                   // 位置精度因子。反映三维位置的综合精度。
        int     sv_inuse;               // 参与定位的卫星数量。即在计算当前位置时,实际使用了多少颗卫星的数据。
        int     sv_inview;              // 当前可视的卫星数量。即接收机天空中视野范围内一共搜到了多少颗卫星。
        int     sv_count;               // 卫星总数(具体含义取决于上下文,有时等同于 sv_inview,或者是用于遍历卫星数组的计数器)。
        struct sate sates[MAX_SVID];    // 用来存储每一颗具体卫星的详细数据(如卫星ID、信噪比、仰角、方位角等)。
    };
    

    注意事项

版本更新

V03

二十三、免责说明

1、本工程驱动软件只提供做演示项目使用,未经过大批量项目验证,客户需谨慎使用,如果使用在正式项目中引发的所有问题,本司概不负责。使用过程若发现任何问题,可及时与本司相关人员联系。 2、本工程所有文件可以用于商业性项目移植,无需向本司申请。