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

dropLin 0fd424793a 修改readme 3 tygodni temu
STM32F10x_FWLib bc1c0f3997 first commit 11 miesięcy temu
app bc1c0f3997 first commit 11 miesięcy temu
core bc1c0f3997 first commit 11 miesięcy temu
keil_v5 0fd424793a 修改readme 3 tygodni temu
peripheral bc1c0f3997 first commit 11 miesięcy temu
project 0fd424793a 修改readme 3 tygodni temu
radio 0fd424793a 修改readme 3 tygodni temu
test bc1c0f3997 first commit 11 miesięcy temu
.gitignore bc1c0f3997 first commit 11 miesięcy temu
README.md 0fd424793a 修改readme 3 tygodni temu
gitFocePushRemote.bat bc1c0f3997 first commit 11 miesięcy temu
keilkilll.bat bc1c0f3997 first commit 11 miesięcy temu

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、本工程所有文件可以用于商业性项目移植,无需向本司申请。