主题中讨论的其他部件:SimpliciTI
工具/软件:TI-RTOS
你好
如上一条评论中所述,我尝试了地址过滤器方法,方法是将其添加到地址过滤器数组中。 我是否需要为2个单独的TX模块分别将rf_prop_cmd.h中的address0分配给0xAA和0xbb?
我的代码如下所示
txPacket[0].payload[0]=(uint8_t)(seqNumber >>8); txPacket[0].payload[1]=(uint8_t)(seqNumber+); txPacket[1].payload[0]=(uint8_t)(seqNumber >>8); txPacket[1].payload[1]=(uint8_t)(seqNumber++); uINT8_t i; 对于(I = 2;I < RFEASYLINKTXPAYLOAD_LENGTH;I++) { txPacket[0].payload[i]= 0x01; ////////////////////////////////////////////////////////// Ping txPacket[1].load[i]= 0x01; } txPacket[0].len = RFEASYLINKTXPAYLOAD_length; txPacket[1].len = RFEASYLINKTXPAYLOAD_length; txPacket[0].dstAddr[0]= 0xAA; txPacket[1].dstAddr[0]= 0xbb; void timerCallback (GPTimerCC26XX_Handle Handle,GPTimerCC26XX_IntMask斩波掩码) { EasyLink_eXcisync (&txPacket[0],txDoneCb);//////////////////// 用于TX模块0xAA // CPUdelay(800*50); EasyLink_receiveAsync (rxDoneCb,0); strcpy (TxDeets[0].id,"发射器1"); TxDeets[0].value = rxPacket.Payload[2]; // CPUdelay(800*50); EasyLink_eXsync(&txPacket[1],txDoneCb);//////////////////////////////////// 用于TX模块0xab // CPUdelay(800*50); EasyLink_receiveAsync (rxDoneCb,0); strcpy (TxDeets[1].id,"发射器2"); TxDeets[1].value = rxPacket.Payload[2];}///////////////////////////////////////////////////////////////////////////////////////////// 计时器配置和回调
我正在使用0x01加载两个单独的txPacket的有效负载,接收器将ping两个单独的Tx模块。 正如我所做的那样,我将值传输并接收到结构TxDeets中
计时器回调功能中的两个发射器模块分别进行一个一个一个一个一个一个一个再一个。此活动应在设置值(以秒为单位)后重复。
我通过以下方式使用了地址过滤器:
UINT8_t addrFilter[EasyLink_MAX_ADDR_SIZE *
EasyLink _MAX_ADDR_filters]={0xAA,0xbb};
EasyLink_enableRxAddrFilter(AddrFilter, 2,2);
我的问题是1)这是否是处理事情的正确方式,如果不是,我该怎么做?
2)如何设置发送器模块的地址(0xAA/0xbb)?
巴西
Shubhankar