DWM1000的UWB测距改官网例程的调试
環(huán)境:KEIL(官方是eclipse或SW4STM32的,幾年沒用過了,網(wǎng)上有KEIL版本的,沒下載積分,抽空上傳這個也是希望撈點積分哈)
輔助編輯軟件:UltraEdit
MCU:stm32F103,板子是其項目的板子飛線作簡單距離測試的,腳位接法在main文件里有注釋。
SPI通信的設(shè)置請看下圖,
本例是模塊的GPIO5 GPIO6懸空,通信正常讀到的DEVICE_ID為0xDECA0130
本例程是官方例程轉(zhuǎn)KEIL的,具體例程介紹看官方DW1000_Software_API_Guide_rev2p7.PDF的89頁,燒錄那個操作宏定義即可,部分沒放進去,若需要請自行放入,串口打印相關(guān)自行調(diào)整。
建議用3A 3B例程進行通信測試(3D的外部中斷沒有調(diào)試出來,已經(jīng)參考官網(wǎng)的STM32F10x的進行修改,是否是硬件問題不清楚,如用到請注意),兩模塊通信正常后若進行測距調(diào)試請用5A 5B 或6A 6B進行,可參考大神的詳細說明https://blog.csdn.net/qq_38940316/article/details/84864943。
本人也是參考他進行了調(diào)試,只是最后還是調(diào)不出來,在A端收不到B端的問題上卡著,仿真發(fā)現(xiàn)出現(xiàn)一個網(wǎng)上沒人提到的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
這點是本人發(fā)文的初衷重點,在這上邊浪費了些時間,網(wǎng)上不少說卡在if (status_reg & SYS_STATUS_RXFCG)但沒有人繼說是什么問題。
測試如下圖
相關(guān)文件請到https://download.csdn.net/download/player991314/13614081下載
文件夾里DW1000_TESTFW是本人轉(zhuǎn)KEIL程序,其他是官網(wǎng)下載的資料與例程,更多請上官網(wǎng)https://www.decawave.com
本人只因工作需要作簡單的距離測試,至于精度,功耗那些暫沒了解,此例是本菜鳥把官方例程(DWS1000_ExampleCode_v1_0_1)轉(zhuǎn)KEIL的,對于小白們拿來測試也簡單可用,如有錯誤請看官網(wǎng)文件或自行更改。
總結(jié)
以上是生活随笔為你收集整理的DWM1000的UWB测距改官网例程的调试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AutoCAD.net 自定义窗体及面板
- 下一篇: 【UWB定位】 - DWM1000模块调