其他分享
首页 > 其他分享> > DWM1000的UWB测距改官网例程的调试

DWM1000的UWB测距改官网例程的调试

作者:互联网

环境:KEIL(官方是eclipse或SW4STM32的,几年没用过了,网上有KEIL版本的,没下载积分,抽空上传这个也是希望捞点积分哈)
辅助编辑软件:UltraEdit
MCU:stm32F103,板子是其项目的板子飞线作简单距离测试的,脚位接法在main文件里有注释。
SPI通信的设置请看下图,
在这里插入图片描述

本例是模块的GPIO5 GPIO6悬空,通信正常读到的DEVICE_ID为0xDECA0130
在这里插入图片描述

本例程是官方例程转KEIL的,具体例程介绍看官方DW1000_Software_API_Guide_rev2p7.PDF的89页,烧录那个操作宏定义即可,部分没放进去,若需要请自行放入,串口打印相关自行调整。
建议用3A 3B例程进行通信测试(3D的外部中断没有调试出来,已经参考官网的STM32F10x的进行修改,是否是硬件问题不清楚,如用到请注意),两模块通信正常后若进行测距调试请用5A 5B 或6A 6B进行,可参考大神的详细说明https://blog.csdn.net/qq_38940316/article/details/84864943。
本人也是参考他进行了调试,只是最后还是调不出来,在A端收不到B端的问题上卡着,仿真发现出现一个网上没人提到的preamble detect timeout问题

/* User defined RX timeouts (frame wait timeout and preamble detect timeout) mask. */
#define SYS_STATUS_ALL_RX_TO (SYS_STATUS_RXRFTO | SYS_STATUS_RXPTO)

个人理解为前导码检测超时,所以将5A的PRE_TIMEOUT 由官方值8改大后测试成功
/* Preamble timeout, in multiple of PAC size. See NOTE 6 below. */
#define PRE_TIMEOUT 20

这点是本人发文的初衷重点,在这上边浪费了些时间,网上不少说卡在if (status_reg & SYS_STATUS_RXFCG)但没有人继说是什么问题。
测试如下图
在这里插入图片描述

相关文件请到https://download.csdn.net/download/player991314/13614081下载
文件夹里DW1000_TESTFW是本人转KEIL程序,其他是官网下载的资料与例程,更多请上官网https://www.decawave.com
本人只因工作需要作简单的距离测试,至于精度,功耗那些暂没了解,此例是本菜鸟把官方例程(DWS1000_ExampleCode_v1_0_1)转KEIL的,对于小白们拿来测试也简单可用,如有错误请看官网文件或自行更改。

标签:STATUS,SYS,测试,KEIL,例程,DWM1000,改官,timeout
来源: https://blog.csdn.net/player991314/article/details/110943639