51uwb.cn

 找回密码
 立即注册
查看: 3958|回复: 4
打印 上一主题 下一主题

多标签修改代码

[复制链接]

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
跳转到指定楼层
楼主
发表于 2021-9-22 10:43:56 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
  增加一个从标签,只需要修改TAG_ID就可以了吗,得到的距离数据存放在哪个变量里面。可不可以直接在从标签的显示板上进行显示。
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
5#
发表于 2021-10-26 21:53:49 | 只看该作者
毕业设计 发表于 2021-10-26 15:35
第二个标签的设置:
#define TAG
#define TAG_ID 0x01   

把 MAX_SLAVE_TAG 2改为3,目前有个小bug,这个参数最小需要设置为3
第二个标签的设置:
#define TAG
#define TAG_ID 0x01   
#define MASTER_TAG 0x0F
#define MAX_SLAVE_TAG 0x03
#define SLAVE_TAG_START_INDEX 0x01
回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
地板
 楼主| 发表于 2021-10-26 15:35:35 | 只看该作者

第二个标签的设置:
#define TAG
#define TAG_ID 0x01   
#define MASTER_TAG 0x0F
#define MAX_SLAVE_TAG 0x02
#define SLAVE_TAG_START_INDEX 0x01



但是在下面的slave tag 程序中的if(rx_buffer[ALL_MSG_TAG_IDX] == TAG_ID)判断中,rx_buffer[ALL_MSG_TAG_IDX]一直等于0x0F。
回复

使用道具 举报

2

主题

11

帖子

24

积分

新手上路

Rank: 1

积分
24
板凳
发表于 2021-10-19 10:30:07 | 只看该作者
支持支持支持支持支持支持支持支持支持
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
沙发
发表于 2021-9-23 08:03:23 | 只看该作者
按照用户手册如下部分修改,默认是可以只修改TAG_ID即可,但是默认只有两个slave_tag,如果添加再多slave tag,需要修改MAX_SLAVE_TAG
注意SLAVE_TAG 地址必须从0x01 开始,如果有多个,依次为0x01 0x02 ……


距离信息在TAG 代码如下,默认如果slave_tag 有液晶屏幕,是直接可以显示的。
  1. static void distance_mange(void)
  2. {
  3.     {
  4.         int Anchor_Index = 0;
  5.         while(Anchor_Index < ANCHOR_MAX_NUM)
  6.         {
  7.             if(Anthordistance_count[Anchor_Index] > 0 )
  8.             {
  9.                 Anthordistance[Anchor_Index] =filter((int)(Anthordistance[Anchor_Index]/Anthordistance_count[Anchor_Index]),Anchor_Index);
  10.                 // Anthordistance[Anchor_Index] =(int)(Anthordistance[Anchor_Index]/Anthordistance_count[Anchor_Index]);
  11.             }
  12.             Anchor_Index++;
  13.         }
  14.     }
  15.     compute_angle_send_to_anthor0(Anthordistance[0], Anthordistance[1],Anthordistance[2]);

  16.     if(first_distance == 1)
  17.                 {
  18.                          first_distance = 0;
  19.                          LCD_ClearLines();
  20.                 }
  21.     if(Anthordistance_count[0]>0)
  22.     {
  23.         sprintf(dist_str, "an0:%3.2fm", (float)Anthordistance[0]/1000);      
  24.         OLED_ShowString(0, 2,dist_str);
  25.     }

  26.     if(Anthordistance_count[1]>0)
  27.     {
  28.         sprintf(dist_str, "an1:%3.2fm", (float)Anthordistance[1]/1000);      
  29.         OLED_ShowString(0, 4,dist_str);
  30.     }

  31.     if(Anthordistance_count[2]>0)
  32.     {
  33.         sprintf(dist_str, "an2:%3.2fm", (float)Anthordistance[2]/1000);      
  34.         OLED_ShowString(0, 6,dist_str);
  35.     }
  36. }
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-11-23 03:55 , Processed in 0.013916 second(s), 7 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表