模块介绍

E108-GN03+Series_UserManual_CN_V1.4.pdf开发资料 主要参考着来!

连接模块

使用串口工具,野火多功能调试助手,查看消息,初始波特率:9600

改变波特率

使用$PCAS01,br*CS<CR><LF>设置波特率,我要设置38400,使用在线工具计算,算法XOR Checksum,在线计算工具,输入PCAS01,3,得出结果1F,所以发送控制命令:$PCAS01,3*1F,记得勾选发送新行,然后重新设置波特率再次连接。

设置输出配置

命令:$PCAS03,nGGA,nGLL,nGSA,nGSV,nRMC,nVTG,nZDA,nANT,nDHV,nLPS,res1,res2,nUTC,nGST,res3,res4,res5,nTIM*CS<CR><LF>

参数位置参数名说明智能拐杖推荐值
1nGGAGGA输出频率1(每次定位都输出)
2nGLLGLL输出频率0(不输出)
3nGSAGSA输出频率0(不输出)
4nGSVGSV输出频率0(不输出)
5nRMCRMC输出频率1(每次定位都输出)
6nVTGVTG输出频率0(不输出)
7nZDAZDA输出频率0(不输出)
8nANTANT输出频率0(不输出)
9nDHVDHV输出频率0(不输出)
10nLPSLPS输出频率0(不输出)
11res1保留0
12res2保留0
13nUTCUTC输出频率0(不输出)
14nGSTGST输出频率0(不输出)
15res3保留0
16res4保留0
17res5保留0
18nTIMTIM输出频率0(不输出)

得到命令语句:$PCAS03,1,0,0,0,1,0,0,0,0,0,,,0,0,,,,0*32,只输出GGA和RMC

输出

$GNGGA,150740.000,2858.99961,N,11713.00538,E,1,09,1.4,-5.6,M,-1.5,M,,*7C
$GNRMC,150740.000,A,2858.99961,N,11713.00538,E,0.00,103.62,260126,,,A,V*08

其他的我就不改了。

在ESP32中使用

我这里使用的是ESP32C3作为演示

首先需要初始化对应的串口,依据实际硬件设置,波特率设置为38400,其他配置默认

/**
 * @brief 初始化E108-GN03模块
 *
 * 该函数负责初始化E108-GN03模块的UART通信,包括配置UART参数、安装驱动和创建接收任务
 */
void e108_gn03_init(void)
{
    const uart_config_t uart_config = {
        .baud_rate = E108_UART_BAUD,    // 波特率配置,默认为38400,可以通过Kconfig修改
        .data_bits = UART_DATA_8_BITS,  // 数据位配置为8位,适用于大多数设备
        .parity    = UART_PARITY_DISABLE,   // 不使用奇偶校验
        .stop_bits = UART_STOP_BITS_1,  // 1个停止位,适用于大多数设备
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,   //  不使用硬件流控制
        .source_clk = UART_SCLK_DEFAULT,    //  使用默认的UART时钟源,通常为APB时钟
    };
    
    ESP_ERROR_CHECK(uart_param_config(E108_UART_NUM, &uart_config)); // 配置UART参数
    ESP_ERROR_CHECK(uart_set_pin(E108_UART_NUM, E108_UART_TXD, E108_UART_RXD, E108_UART_RTS, E108_UART_CTS));    // 配置UART引脚
    ESP_ERROR_CHECK(uart_driver_install(E108_UART_NUM, E108_UART_BUF_SIZE * 2, 0, 0, NULL, 0));  // 安装UART驱动,接收缓冲区大小为两倍,未使用事件队列

    xTaskCreate(e108_uart_rx_task, "e108_uart_rx_task", 2048, NULL, 5, NULL);  // 创建一个任务来处理UART接收,堆栈大小为2048字节,优先级为10
    ESP_LOGI(TAG, "E108-GN03 UART initialized");    // 输出日志,表示UART初始化完成
}

如果是使用UART0,需要使用USB下载,将menuconfig的console的输出配置,从UART0改成USB即可正常使用(可不配置)。