BD2/GPS 双模接收机模块STM32F103x开发
一、模块型号
1.1 芯片型号
1.2 芯片连接方式
原理图
PCB图
1.3 引脚连接
UM-220 定位芯片 | 主要就是 3 个引脚,其它看 1.2的原理图 |
---|---|
RXD2 | PB10 |
TXD2 | PB11 |
NRESET | 虽然接了PC 6,但是并没有初始化,使用这个引脚 |
串口调试模块 | |
---|---|
5V | 5V |
TXD | PA10 |
RXD | PA9 |
GND | GND |
ST-LINK | |
---|---|
SWCLK | 缺口靠左-左排-上至下-第5 个针 |
SWDIO | 缺口靠左-左排-上至下-第4 个针 |
GND | 缺口靠左-右排-上至下-最后1个针 |
3.3v | 缺口靠左-右排-上至下-第2 个针 |
1.4
二、程序开发
程序链接:
https://download.csdn.net/download/qq_37788383/11887759
2.1 main 函数
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "bds.h"
extern double current_jing,current_wei; //bds 当前 点坐标
extern void uart3_init(u32 bound);
extern void send_bds_order(void);
extern unsigned char bds_locate_display(void);
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口 1 用于调试
uart3_init(9600); //北斗发送数据的串口
send_bds_order(); //向北斗发送指令 ,一般要在 20s 之后,要是还收不到数据,就失败哦。
while(1){
bds_locate_display(); //北斗 显示当前的位置坐标
printf("经 度是:%f \r\n",current_jing);
printf(" \r\n");
printf("纬 度是:%f \r\n",current_wei);
printf(" \r\n");
printf(" \r\n");
printf(" \r\n");
delay_ms(3000);
}
}
2.2 .h 头文件
#ifndef __USART_H
#define __USART_H
#include "stdio.h"
#include "sys.h"
//如果想串口中断接收,请不要注释以下宏定义
void uart3_init(u32 bound);
void send_cmd3(unsigned char *cmd);
void send3(unsigned char ch);
void send_bds_order(void);
unsigned char bds_locate_display(void);
#endif
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构