|
正如你说的,可以仿照目前定位数据回传的方式,例如下面tag将信息回传到基站0
DWM1000 发送信息很简单,主要是以下语句,你只需要将要发送的信息填入到angle_msg中(下例)
- dwt_writetxdata(sizeof(angle_msg), angle_msg, 0);
- dwt_writetxfctrl(sizeof(angle_msg), 0);
- /* Start transmission, indicating that a response is expected so that reception is enabled automatically after the frame is sent and the delay
- * set by dwt_setrxaftertxdelay() has elapsed. */
- dwt_starttx(DWT_START_TX_IMMEDIATE );
- while (!(dwt_read32bitreg(SYS_STATUS_ID) & SYS_STATUS_TXFRS))
- { };
复制代码 上面是TAG发送,并没有指定谁去接收,也就是TAG发送的时候,其实大家所有其他模块都是会收到这个信息的,关键是谁去处理。
下面是基站接收部分代码
开始的两个比较,第一是匹配是否是angle_msg(这个信息是约定的),第二个是ANCHOR_IND这个是宏定义,基站0 的ANCHOR_IND 为0,所以基站0 会满足这个判断条件
- else if (memcmp(rx_buffer, angle_msg, ALL_MSG_COMMON_LEN) == 0 && ANCHOR_IND == 0)
- {
- if(rx_buffer[LOCATION_FLAG_IDX] == 1)//location infomartion
- {
- rx_buffer[ALL_MSG_TAG_IDX] = tag_index;
- USART_puts(&rx_buffer[LOCATION_INFO_START_IDX],rx_buffer[LOCATION_INFO_LEN_IDX]);
- }
- else //follow car
- {
- putchar(rx_buffer[10]);
- }
- }
复制代码 以上仅解释了接收发送相关函数,由于目前正式release 出来的版本代码量较大,可以参见我之前写的几篇文章学习基本原理,理解基本函数内容
博文直达: cnblogs.com/tuzhuke/p/9967608.html
|
|