基于DWM1000的stm32f103c8测距调试(一)

基于DWM1000的stm32f103c8测距调试(一)

最近接触DWM1000测距模块,虽然官网的资料也是stm32的但是用的片子不是f103c8所以还是需要进行一些移植,又因为官方资料不是KEIL版本,所以官方源码在阅读有些费劲,经过一番折腾,终于把程序移植到KEIL上,并实现了测距,下面把部分源码和相应程序移植过程贴出来。

首先:说实话在拿到官方的程序后我是一脸懵逼的。(哈哈,惭愧)

基于DWM1000的stm32f103c8测距调试(一)
根据官方源码例程我做了相应的翻译,和一些补充解释,见下图;

基于DWM1000的stm32f103c8测距调试(一)
我们要实现两个DWM1000之间测距,我们只要看例程5即可,例程5是一个双向测距,测距原理采用TOF双向飞行测距,即 测量脉冲飞行的时间 * 光速 = 标签与模块的距离。

第二步: 我们拿到源码后,就要开始建立KEIL工程,我相信很多朋友应该会建立工程,如果不会建工程的童鞋,可以微信搜索公众号【老马分享】并关注,老马分享公众号会不定期免费分享stm32开发的基础知识。
下面我默认工程都已经建好了,开始移植修改代码。
见下图

基于DWM1000的stm32f103c8测距调试(一)
基于DWM1000的stm32f103c8测距调试(一)

把黑色框中的文件移植到KEIL工程文件中。

第三步:接下来修改代码IO
#define SPIx SPI1
#define SPIx_GPIO GPIOA
#define SPIx_CS GPIO_Pin_4
#define SPIx_CS_GPIO GPIOA
#define SPIx_SCK GPIO_Pin_5
#define SPIx_MISO GPIO_Pin_6
#define SPIx_MOSI GPIO_Pin_7
打开part.c,part.h文件,找到SPI设置引脚处,修改SPI引脚,你的电路设计的是哪个引脚改为哪个引脚。,其他引脚不用管。

第四步:修改主函数,添加串口打印printf函数,通过串口打印距离。
基于DWM1000的stm32f103c8测距调试(一)
至此,基于DWM1000的STM32f103c8t6的测距试验就能顺利的完成了,是不是很开心。
下面我把基于STM32F103C8的整体源码和原理图(AD版本)文件,分享给大家基于DWM1000的stm32f103c8测距调试(一)

有需要的童鞋,扫描下图二维码,关注并公众号,回复【DWM1000测距源码】即可获得。
基于DWM1000的stm32f103c8测距调试(一)喜欢就请点个赞,关注收藏吧。