基于ArduinoIDE的任意型号单片机 + GPS北斗BDS卫星定位

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

北斗卫星导航系统(BDS)作为我国自主研发的全球卫星导航系统,其定位精度在亚太地区已达2.5米级别

。结合GPS系统形成双模定位,可显著提升可用卫星数量及定位可靠性。本文将以Arduino uno和ESP32-S3-DevKitC-1为例,详解基于ArduinoIDE的北斗/GPS开发全流程,并提供OLED实时定位显示方案。# 一、硬件准备

1.1 器件选择

  • ESP32-S3-DevKitC-1或者Arduino uno
  • ATGM336H版本模块(任意GPS模块都行)
  • 陶瓷有源天线

注:实验要在空旷的场地,室内GPS会没信号。阳台不一定。

1.2 接线方案

方案一:

Arduino 北斗模块
3.3V VCC
GND GND
0(rx,不是A0) TX

方案二:

ESP32 北斗模块
3.3V VCC
GND GND
3 TX

注:实验要在空旷的场地,室内GPS会没信号。阳台不一定。

第一次测试,北斗模块需要一分钟时间激活后,串口才能接收到

二、驱动实现

2.1 核心代码解析(arduino/ESP32-S3)

测试代码如下(示例):

cpp 复制代码
/*
ESP32-S3 的默认 UART 配置如下:
UART0:
TX (发送): GPIO11
RX (接收): GPIO31
UART1:
TX (发送): GPIO171
RX (接收): GPIO16
*/
#define GPSSerial  Serial
#define DEBUGSerial Serial
void setup()	//初始化内容
{
  GPSSerial.begin(9600);			
  DEBUGSerial.begin(9600);  
  DEBUGSerial.println("Wating...");
}

void loop()		//主循环
{
  while (GPSSerial.available()) {   
     DEBUGSerial.write(GPSSerial.read());//收到GPS数据则通过Serial输出
  }
}

三、坐标解析代码

cpp 复制代码
在这里插入代码片

四、典型问题排查

现象 解决方案
无数据输出 ①检查TX-RX是否反接 ②测量模块供电电压 ③更换USB数据线
坐标值异常(0,0) ①确认天线方向 ②等待被动模块激活完成(约1分钟)
数据帧不完整 ①核对波特率设置 ②检查地线连接 ③避开强电磁干扰源

总结

本文是为验证《基于ArduinoIDE的任意型号单片机 + GPS北斗BDS卫星定位》

相关推荐
阿钱真强道9 小时前
27 嵌入式操作系统 | C 网关:串口 ⇄ UDP 转发(先用 UDP 当上位机替身)
c语言·单片机·网关·udp·uloop
沐欣工作室_lvyiyi9 小时前
基于STM32的便捷式智能气象仪设计(论文+源码)
stm32·单片机·嵌入式硬件·单片机毕业设计·电子信息工程毕业设计·河北工程技术学院·廊坊师范学院
iCxhust9 小时前
STM32F103C8T6 CAN 通讯
stm32·单片机·嵌入式硬件
铅笔小新z10 小时前
【stm32】SPI Flash 驱动开发
驱动开发·stm32·嵌入式硬件
周洲083019 小时前
STM32 串口底层深度解析|USART 中断标志、硬件 FIFO,乱码根源底层定位
stm32·单片机·嵌入式硬件
女神下凡1 天前
芯参谋(29):UFS UMCP 软件设计规范
arm开发·单片机·嵌入式硬件
RISCV_Explorer1 天前
RISC-V电源管理与低功耗实战——WFI指令、电源域划分与唤醒路径设计
单片机·嵌入式硬件·risc-v
zd8451015001 天前
支持双向输入信号的开关量电路
单片机·嵌入式硬件
齐落山大勇1 天前
【裸机程序】IMX 6ULL的中断机制的理解
单片机·嵌入式硬件
cu1431 天前
细谈GM8229的具体功能与其应用
c语言·c++·人工智能·单片机