51uwb.cn

标题: 测距的数据上传方式如何修改? [打印本页]

作者: nai123    时间: 2019-3-28 11:07
标题: 测距的数据上传方式如何修改?
为了管理方便,论坛是邀请制,如果需要注册论坛,点击论坛上方的“店铺”,旺旺联系免费获得邀请码
就像通过基站0传输数据一样,如何通过标签把数据发给另一块单片机或上位机?具体[size=13.3333px]怎么修改源代码?要是能有关键点修改截图会更好。
作者: tuzhuke    时间: 2019-3-28 21:21
正如你说的,可以仿照目前定位数据回传的方式,例如下面tag将信息回传到基站0
DWM1000 发送信息很简单,主要是以下语句,你只需要将要发送的信息填入到angle_msg中(下例)
  1. dwt_writetxdata(sizeof(angle_msg), angle_msg, 0);
  2.     dwt_writetxfctrl(sizeof(angle_msg), 0);

  3.     /* Start transmission, indicating that a response is expected so that reception is enabled automatically after the frame is sent and the delay
  4.      * set by dwt_setrxaftertxdelay() has elapsed. */
  5.     dwt_starttx(DWT_START_TX_IMMEDIATE );
  6.     while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))
  7.     { };
复制代码
上面是TAG发送,并没有指定谁去接收,也就是TAG发送的时候,其实大家所有其他模块都是会收到这个信息的,关键是谁去处理。
下面是基站接收部分代码
开始的两个比较,第一是匹配是否是angle_msg(这个信息是约定的),第二个是ANCHOR_IND这个是宏定义,基站0 的ANCHOR_IND 为0,所以基站0 会满足这个判断条件
  1. else if (memcmp(rx_buffer, angle_msg, ALL_MSG_COMMON_LEN) == 0 && ANCHOR_IND == 0)
  2.             {
  3.                 if(rx_buffer[LOCATION_FLAG_IDX] == 1)//location infomartion
  4.                 {
  5.                     rx_buffer[ALL_MSG_TAG_IDX] = tag_index;
  6.                     USART_puts(&rx_buffer[LOCATION_INFO_START_IDX],rx_buffer[LOCATION_INFO_LEN_IDX]);
  7.                 }
  8.                 else //follow car
  9.                 {
  10.                     putchar(rx_buffer[10]);
  11.                 }
  12.             }
复制代码
以上仅解释了接收发送相关函数,由于目前正式release 出来的版本代码量较大,可以参见我之前写的几篇文章学习基本原理,理解基本函数内容

博文直达: cnblogs.com/tuzhuke/p/9967608.html









欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3