开始前准备
- 先看自己手里拿的是标签还是基站,再核对配件、供电方式、串口工具和软件版本。
- 部署前先确定是单标签演示、二维定位还是带跟随逻辑的应用,不同场景接线和参数重点不一样。
新手说明
这份 UWB 手册信息很多,建议新手先把角色分清楚:标签是被定位的对象,基站是固定参考点;先做近距离、无遮挡、少量设备测试,再做复杂场地部署。
BP-TWR-50 / BP-TWR-30
UWB定位模块用户手册
V1.6
目录
本手册适用于 BP-TWR-50 / BP-TWR-30 系列 UWB 超宽带定位模块,旨在帮助用户快速了解产品功能、完成硬件安装与软件配置,并掌握各类定位场景的使用方法。
BP-TWR-50/30 是一套基于 UWB(超宽带)技术的高精度室内定位系统,由基站(Anchor)与标签(Tag)组成。系统支持测距、二维定位、三维定位及多标签定位等多种应用场景,定位精度可达 5~10cm,最大通信距离 50m。
本手册主要内容包括:
• 产品场景介绍与参数说明
• 硬件外观、接口与配件说明
• 开箱上电检查流程
• 软件安装与 HEX 烧录步骤
• 米思齐图形化编程示例
• STM32 源码编译与自定义 HEX
• 代码结构详解(标签/基站选择、滤波算法)
以下所有套件均以"基站0"为主基站,标签实时显示与各基站之间的距离信息,并将数据通过串口传至 PC,由上位机软件计算坐标信息。系统支持以下五种典型应用场景:
基站0 与标签通过收发信号之间的传播时间计算两者之间的距离(TOF测距),适用于单点距离测量需求。
图1-1 测距场景示意图:基站0 与标签通过无线信号往返时间计算距离

图解说明:这张图主要在说明“测距场景示意图:基站0 与标签通过无线信号往返时间计算距离”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
基站0 与基站1 分别安装在小车头部的两端,由标签牵引小车行进方向。可设置启动距离阈值:标签距小车超过设定距离时小车启动,小于该距离时停止。行驶过程中采用余弦定理计算基站0 与标签的夹角,据此控制小车转向。
图1-2 跟随小车场景示意图:双基站装于小车头部,余弦定理计算角度控制方向

图解说明:这张图主要在说明“跟随小车场景示意图:双基站装于小车头部,余弦定理计算角度控制方向”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
基站0、基站1、基站2 布置在同一平面内,三个基站同时与标签通信,利用三边测量法计算标签在平面内的坐标(X, Y)。
图1-3 二维定位场景示意图:三基站同平面布置,实现标签二维坐标定位

图解说明:这张图主要在说明“二维定位场景示意图:三基站同平面布置,实现标签二维坐标定位”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
在二维定位基础上增加基站3,将其布置于 Z 轴方向(垂直方向)。四个基站协同工作,可计算标签的三维空间坐标(X, Y, Z)。
图1-4 三维定位场景示意图:四基站立体布置,基站3置于Z轴实现三维定位

图解说明:这张图主要在说明“三维定位场景示意图:四基站立体布置,基站3置于Z轴实现三维定位”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
多个标签可同时与基站进行通信,二维与三维定位均支持多标签同时工作,最多可支持 6 个标签。
图1-5 多标签定位场景示意图:多标签同时与基站通信,支持最多6个标签

图解说明:这张图主要在说明“多标签定位场景示意图:多标签同时与基站通信,支持最多6个标签”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
以下为 BP-TWR-50 / BP-TWR-30 的主要技术规格:
参数 | 说明/值 |
电源 | 5V |
额定功率 | 500 mW |
工作温度 | -20℃ ~ 80℃ |
工作频率 | 3Hz ~ 4Hz,最高 40Hz |
测距精度 | 5 cm |
二维定位精度 | 10 cm |
Z 轴定位精度 | 20 cm |
通信距离 | 50 m |
标签最大个数 | 6 个 |
基站最大个数 | 4 个 |
定位代码开发软件 | MDK5 |
定位代码语言 | C |
上位机语言 | C++ |
基站与标签使用相同的硬件设计。标签带有液晶插座,可插入 LCD 12864 显示屏,实时显示与各基站之间的距离。
图2-1 BP-TWR-50 模块外观图:基站与标签硬件一致,标签侧带液晶插座

图解说明:这张图主要在说明“BP-TWR-50 模块外观图:基站与标签硬件一致,标签侧带液晶插座”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
模块提供多种接口,包括电源接口、串口(UART)、SWD 调试接口等,具体接口位置及定义如下图所示。
图2-2 BP-TWR-50 模块接口示意图:标注各接口(电源、串口、SWD等)的位置与功能

图解说明:这张图主要在说明“BP-TWR-50 模块接口示意图:标注各接口(电源、串口、SWD等)的位置与功能”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
套件包含以下配件,请核对数量是否与购买链接发货清单一致:
图2-3 STlink V2 烧录器(颜色随机):用于通过 SWD 接口烧录固件

图解说明:这张图对应“STlink V2 烧录器(颜色随机):用于通过 SWD 接口烧录固件”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图2-4 USB 转串口线:用于模块与电脑之间的串口通信

图解说明:这张图对应“USB 转串口线:用于模块与电脑之间的串口通信”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图2-5 USB 转接头:用于不同 USB 接口的转换连接

图解说明:这张图对应“USB 转接头:用于不同 USB 接口的转换连接”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图2-6 LCD 12864 液晶显示屏:可插入标签液晶插座,用于显示测距信息

图解说明:这张图对应“LCD 12864 液晶显示屏:可插入标签液晶插座,用于显示测距信息”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
设备出厂前已预烧录测试 HEX 程序,可通过以下步骤验证模块工作状态是否正常。
⚠ 注意:请使用 5V USB 接口为设备供电,切勿通过串口接口为模块充电。
仅给标签通电时,标签指示灯状态如下图所示。若无基站在通信范围内,LCD 暂不显示距离数据。
图3-1 仅标签上电时的 LED 指示灯状态示意

图解说明:这张图对应“仅标签上电时的 LED 指示灯状态示意”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
仅给基站通电时,基站指示灯状态如下图所示。
图3-2 仅基站上电时的 LED 指示灯状态示意

图解说明:这张图对应“仅基站上电时的 LED 指示灯状态示意”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
基站和标签指示灯外观一样。标签 LCD 显示屏上将显示与各基站的距离,其中 an0 为与基站0的距离,若有多个基站,则依次显示 an1、an2 等。
图3-3 基站与标签同时上电时,标签 LCD 显示距离信息(an0=与基站0距离,an1=与基站1距离)

图解说明:这张图对应“基站与标签同时上电时,标签 LCD 显示距离信息(an0=与基站0距离,an1=与基站1距离)”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
⚠ 注意:若显示屏未显示距离信息,请参考第 6.1 节查看串口信息,确认通信是否正常,如有异常请联系客服。
⚠ 注意:安装软件时,务必关闭所有杀毒软件和系统防火墙,否则安装文件可能被误删!
ST-LINK Utility 是 ST 官方提供的固件下载工具,用于将 HEX 文件烧录至 STM32 芯片。
1. 在"Keil MDK以及其它工具"目录下,解压 STM32 ST-LINK Utility,双击解压后的 setup 文件。
2. 在安装界面选择 "Modify",单击 "Next"。
图4-1 ST-LINK Utility 安装界面:选择 Modify 模式进行安装

图解说明:这张图对应“ST-LINK Utility 安装界面:选择 Modify 模式进行安装”这一步。先确认当前点到的是文中对应入口,再继续下一步。
3. 按照界面默认设置,单击 "Next",按照提示完成安装。
图4-2 ST-LINK Utility 安装过程界面

图解说明:这张图对应“ST-LINK Utility 安装过程界面”这一步。先确认当前点到的是文中对应入口,再继续下一步。
4. 安装完成后,桌面将出现如下图所示的程序图标。
图4-3 ST-LINK Utility 桌面图标

图解说明:这张图主要在说明“ST-LINK Utility 桌面图标”。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
使用 STlink V2 烧录器前,需安装其驱动程序,否则 PC 无法识别烧录器设备。
5. 在如下目录中,解压驱动安装包,获取安装文件。
图4-4 STlink V2 驱动文件所在目录示意图,红框标注需解压的安装包

图解说明:这张图主要在说明“STlink V2 驱动文件所在目录示意图,红框标注需解压的安装包”。重点确认你选中的确实是目标控制板,不要误改其他 USB 设备的驱动。
6. 按照界面提示完成驱动安装。
USB 转串口线需安装对应的驱动程序,请根据电脑操作系统的位数(32位/64位)选择正确的驱动进行安装。
图4-5 串口驱动安装文件目录,请根据系统位数选择对应驱动版本

图解说明:这张图对应“串口驱动安装文件目录,请根据系统位数选择对应驱动版本”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
MDK 是 ARM 平台的集成开发环境,用于编写、编译和下载 STM32 代码。
7. 在对应路径下,以管理员权限打开 MDK 安装程序,按照界面提示完成安装。
图4-6 MDK 安装程序文件路径,红框标注安装程序文件

图解说明:这张图对应“MDK 安装程序文件路径,红框标注安装程序文件”这一步。先确认当前点到的是文中对应入口,再继续下一步。
8. 安装完成后,找到桌面图标,以管理员权限打开 MDK。
图4-7 MDK 桌面图标示意,需以管理员权限运行

图解说明:这张图主要在说明“MDK 桌面图标示意,需以管理员权限运行”。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
9. 执行 MDK 破解步骤(License 激活):
a) 在 MDK 中,单击 File > License Management,复制 CID 内容。
图4-8 MDK License Management 界面,复制 CID 字段内容

图解说明:这张图对应“MDK License Management 界面,复制 CID 字段内容”这一步。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
b) 在对应路径下,以管理员权限打开破解软件。
图4-9 MDK 破解工具所在路径示意

图解说明:这张图对应“MDK 破解工具所在路径示意”这一步。先确认当前点到的是文中对应入口,再继续下一步。
c) 在破解软件的 CID 栏中粘贴复制的内容,Target 选择 "ARM",单击 "Generate" 生成密钥。
图4-10 MDK 破解软件界面:粘贴CID,选ARM,点Generate生成激活码

图解说明:这张图对应“MDK 破解软件界面:粘贴CID,选ARM,点Generate生成激活码”这一步。先确认当前点到的是文中对应入口,再继续下一步。
d) 将生成的密钥复制到 MDK 的 "New License ID Code" 栏,单击 "Add LIC" 加载 License。
出厂前已预烧录测试 HEX,若需重新烧录或烧录其他节点,请按以下步骤操作。
用 STlink 线将模块通过 SWD 接口与 PC 相连,接线方式如下:
⚠ 注意:请连接 Stlink 接口,不要连接串口。串口无法为设备供电。
参数 | 说明/值 |
STlink 引脚 | 模块引脚 |
3.3V | 3.3V |
SWCLK | CLK |
GND | GND |
SWDIO | DIO |
图5-1 STlink V2 与模块 SWD 接口的连接方式示意图

图解说明:这张图主要在说明“STlink V2 与模块 SWD 接口的连接方式示意图”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
10. 打开 STM32 ST-LINK Utility,选择带 "TAG" 字样的测试 HEX 文件,为标签节点烧录固件。
图5-2 ST-LINK Utility 中选择 TAG 标签对应的 HEX 文件进行烧录

图解说明:这张图对应“ST-LINK Utility 中选择 TAG 标签对应的 HEX 文件进行烧录”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
11. 待界面提示 "OK" 后,参考第 3 章开箱上电检查,确认节点 LED 和液晶状态正常。
12. 对其他节点重复上述步骤,分别烧录对应的 HEX 文件,并逐一确认状态。
米思齐(Mixly)是一款基于图形化积木的编程软件,适合对 C/C++ 不熟悉的用户快速实现跟随与定位功能。本章介绍如何导入 UWB 自定义库并理解各功能模块。
请按以下步骤将随套件附带的 UWB 库文件导入米思齐:
13. 打开米思齐软件(桌面快捷方式如下)。
图6-1 米思齐软件桌面图标

图解说明:这张图主要在说明“米思齐软件桌面图标”。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
14. 点击菜单中的"导入库"或相关选项,进入库管理界面。
图6-2 米思齐软件主界面,点击对应菜单选项进行库导入

图解说明:这张图主要在说明“米思齐软件主界面,点击对应菜单选项进行库导入”。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
图6-3 米思齐库导入菜单界面,选择导入自定义库文件

图解说明:这张图对应“米思齐库导入菜单界面,选择导入自定义库文件”这一步。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
图6-4 米思齐文件选择界面,找到附件中的 .mil 格式库文件

图解说明:这张图对应“米思齐文件选择界面,找到附件中的 .mil 格式库文件”这一步。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
15. 选择附件中名为 "UWB解码+跟随+平面坐标计算.mil" 的自定义库文件。
图6-5 选中 "UWB解码+跟随+平面坐标计算.mil" 文件后点击确认导入

图解说明:这张图对应“选中 "UWB解码+跟随+平面坐标计算.mil" 文件后点击确认导入”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
16. 在左侧菜单中下滑,确认是否新增了名为 "UWB解码+跟随+平面坐标计算" 的选项,点击展开即可使用。
图6-6 导入成功后,左侧菜单出现 "UWB解码+跟随+平面坐标计算" 自定义分类

图解说明:这张图对应“导入成功后,左侧菜单出现 "UWB解码+跟随+平面坐标计算" 自定义分类”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
初始化模块用于配置串口波特率及相关变量,须放置在程序最开始处。
图6-7 米思齐初始化积木块:配置串口波特率,初始化 UWB 相关变量

图解说明:这张图对应“米思齐初始化积木块:配置串口波特率,初始化 UWB 相关变量”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
基站0 通过串口向主板输出 16 个字节的数据帧,解码模块自动解析各字节含义,提取与各基站的测量距离。
图6-8 解码串口数据积木块:自动解析16字节数据帧,获取各基站距离值

图解说明:这张图对应“解码串口数据积木块:自动解析16字节数据帧,获取各基站距离值”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
数据帧格式说明(共 16 字节):
图6-9 串口数据帧字节格式总览,共16字节,各字节含义如下图详述

图解说明:这张图对应“串口数据帧字节格式总览,共16字节,各字节含义如下图详述”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-10 串口数据帧各字节详细含义对照表

图解说明:这张图对应“串口数据帧各字节详细含义对照表”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
跟随功能基于双基站测距,利用三角形中线定理判断标签与装置的距离远近,利用中线与底边的夹角判断标签的方位,从而控制小车的前进方向与速度。
注意:运动指令函数默认为空,需根据实际电机驱动接线情况自行填充对应的控制代码。
图6-11 自动跟随积木块(上半部分):判断距离与方向的核心逻辑

图解说明:这张图对应“自动跟随积木块(上半部分):判断距离与方向的核心逻辑”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-12 自动跟随积木块(下半部分):运动指令调用(需自行填充)

图解说明:这张图对应“自动跟随积木块(下半部分):运动指令调用(需自行填充)”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
算法原理示意图:
图6-13 跟随算法三角形中线定理示意图:用于判断标签与装置的距离远近

图解说明:这张图主要在说明“跟随算法三角形中线定理示意图:用于判断标签与装置的距离远近”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-14 跟随算法方位角计算示意图:中线与底边夹角用于判断标签方位

图解说明:这张图主要在说明“跟随算法方位角计算示意图:中线与底边夹角用于判断标签方位”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-15 跟随算法代码示例截图(续):完整判断逻辑流程

图解说明:这张图对应“跟随算法代码示例截图(续):完整判断逻辑流程”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-16 跟随算法代码示例截图(续):运动指令调用部分

图解说明:这张图对应“跟随算法代码示例截图(续):运动指令调用部分”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
平面坐标计算模块基于三边测量法(多圆交叉定位)计算标签在二维平面内的 X、Y 坐标。
图6-17 平面坐标计算积木块:输入各基站距离,输出标签的 X/Y 坐标值

图解说明:这张图对应“平面坐标计算积木块:输入各基站距离,输出标签的 X/Y 坐标值”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
公式原理(三边测量法):以各基站为圆心,测量距离为半径画圆,三圆交叉点即为标签坐标。
图6-18 三边测量法几何原理示意图:三圆交叉确定二维坐标

图解说明:这张图主要在说明“三边测量法几何原理示意图:三圆交叉确定二维坐标”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-19 平面坐标计算数学推导过程(坐标方程建立)

图解说明:这张图对应“平面坐标计算数学推导过程(坐标方程建立)”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-20 平面坐标计算数学推导过程(联立方程求解步骤)

图解说明:这张图对应“平面坐标计算数学推导过程(联立方程求解步骤)”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图6-21 平面坐标最终计算公式

图解说明:这张图对应“平面坐标最终计算公式”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
⚠ 注意:当主板同时连接两个以上基站时,主板的 3.3V 输出电流不足以驱动多个基站。建议使用外部稳压模块将电源稳至 5V,通过指定引脚为各基站单独供电,避免出现馈电导致定位不稳定。
图6-22 基站供电引脚位置示意图:使用外部 5V 电源通过标注引脚单独为基站供电

图解说明:这张图主要在说明“基站供电引脚位置示意图:使用外部 5V 电源通过标注引脚单独为基站供电”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
若对系统响应速度有更高要求,或需要自定义配置参数,可自行修改源码并重新编译 HEX 文件烧录至模块。
17. 使用前,建议备份"定位源码-STM32"目录。
18. 解压"定位源码-STM32",解压后目录结构如下所示。
图7-1 解压后的源码目录结构总览

图解说明:这张图对应“解压后的源码目录结构总览”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
图7-2 定位源码根目录文件夹图标

图解说明:这张图主要在说明“定位源码根目录文件夹图标”。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
19. 在 "Project\ds_twr_init\MDK-ARM" 目录下,使用 MDK 打开 Project 项目,工程目录结构如下。
图7-3 MDK 工程目录树结构,展示各源文件及文件夹层级关系

图解说明:这张图对应“MDK 工程目录树结构,展示各源文件及文件夹层级关系”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
20. 在 MDK 中按照下图配置调试接口(ST-Link 方式)。
提示:若未打开工程,操作界面为灰色不可用;必须先打开项目工程才能操作各配置按钮。
图7-4 MDK 调试接口配置界面(ST-Link 设置)

图解说明:这张图对应“MDK 调试接口配置界面(ST-Link 设置)”这一步。先分清设备角色、位置关系和接口方向,再继续后面的配置或计算。
图7-5 MDK 芯片类型配置:STM32F103 属于 Medium 类型,按需 Add/Remove

图解说明:这张图对应“MDK 芯片类型配置:STM32F103 属于 Medium 类型,按需 Add/Remove”这一步。先分清设备角色、位置关系和接口方向,再继续后面的配置或计算。
21. 编译代码:首次编译选择"全部编译",后续选择"编译更改"以加快速度。无报错后即可下载程序。
图7-6 MDK 编译工具栏:左侧为"编译更改",右侧为"全部编译"按钮

图解说明:这张图对应“MDK 编译工具栏:左侧为"编译更改",右侧为"全部编译"按钮”这一步。先分清设备角色、位置关系和接口方向,再继续后面的配置或计算。
本章介绍源码中关键宏定义和算法的含义与修改方法。可使用快捷键 Ctrl+F 在 MDK 中搜索相关参数名。
通过修改以下宏定义来切换模块工作模式(标签或基站),每个模块编译前只能启用其中一个。
图8-1 标签与基站模式选择宏定义代码截图(TAG/ANTHOR 二选一)

图解说明:这张图对应“标签与基站模式选择宏定义代码截图(TAG/ANTHOR 二选一)”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
参数 | 说明/值 |
TAG | 标签模式开关,标签分为 MASTER TAG 和 SLAVE TAG。MASTER TAG 负责调度测距任务。TAG 与 ANTHOR 只能选其一,使用时删除前面的 "//"。 |
ANTHOR | 基站模式开关,与 TAG 互斥。 |
TAG_ID | 定义 SLAVE TAG 的 ID。单标签时与 MASTER_TAG 值相同;多标签时,除第一个标签外,其余标签可自定义,但不能与其他值重复。 |
MASTER_TAG | 定义 MASTER TAG,系统必须有且只有一个,值无需修改。 |
MAX_SLAVE_TAG | 定义系统中 SLAVE TAG 的总数量。 |
SLAVE_TAG_START_INDEX | 无需修改。 |
ANTHOR_MAX_NUM | 定义基站总数。 |
ANTHOR_IND | 基站 ID,从 0 开始。若共有 3 个基站,分别修改为 0、1、2,各自编译下载。 |
均值滤波通过多次测距取平均值的方式降低定位误差,提升数据稳定性。
宏定义 ANCHOR_REFRESH_COUNT 用于设置均值计算次数:该值越大,数据越平稳,但刷新频率越低;该值越小,刷新越快,但抗噪能力稍弱。当前测试三基站一标签时最高刷新频率为 40Hz。
图8-2 均值滤波相关代码:ANCHOR_REFRESH_COUNT 控制多次测距后取平均的次数

图解说明:这张图对应“均值滤波相关代码:ANCHOR_REFRESH_COUNT 控制多次测距后取平均的次数”这一步。先分清标签、基站和坐标关系,再对照实物或串口数据理解后续功能。
中值滤波用于防止距离数据出现较大突变(如干扰导致的跳点),代码简单,执行速度快。滤波相关的两个关键宏定义如下:
图8-3 中值滤波代码实现:Filter_N 和 Filter_D 控制滤波器数量与窗口大小

图解说明:这张图主要在说明“中值滤波代码实现:Filter_N 和 Filter_D 控制滤波器数量与窗口大小”。如果你的版本界面略有不同,优先找同名按钮或菜单项即可。
参数 | 说明/值 |
Filter_N | 滤波器数量,每个基站需要一个独立的滤波器,当前代码定义了 5 个(支持最多 5 个基站)。 |
Filter_D | 单个滤波器内的数据条数(滤波窗口大小),当前设为 5,即对 5 条数据取中值。Filter_D 越大,平滑效果越好,但响应越慢。需与 ANCHOR_REFRESH_COUNT 均衡配置,避免两者同时取较大值。 |
⚠ 注意:Filter_D 与 ANCHOR_REFRESH_COUNT 不宜同时设置过大,否则系统响应延迟明显,坐标点跟不上实际移动速度。