CC1310 广播地址是啥了?00 ?ff?
Susan Yang:
您是指这个吗?
dstAddr.addr.shortAddr = 0xffff?
fang wang6:
回复 Susan Yang:
广播发的目的地址是啥?
Felix ZF:
回复 fang wang6:
无线信号在空间本身就是广播扩散的。
你说的广播应该是指特定协议里,接收到无线信号的设备根据目的地址来判断是否处理该数据包吧。
这取决于你使用的通信协议了。
fang wang6:
回复 Felix ZF:
这个还和你们系统程序地址过滤有关,你们是怎么过滤的,那个地址过滤程序太繁杂,你给简单告我一下它的过滤基本思想
Felix ZF:
回复 fang wang6:
你是指使能.pktConf.bChkAddress功能吗?
fang wang6:
回复 Felix ZF:
EasyLink_enableRxAddrFilter()这个函数
Felix ZF:
回复 fang wang6:
首先,你可以参看下面说明,了解EasyLink_enableRxAddrFilter()函数的说明。
http://dev.ti.com/tirex/#/?link=Software%2FSimpleLink%20CC13x0%20SDK%2FDocuments%2FProprietary%20RF%20User's%20Guide&collapsetree=
其次,你可以在C:\TI\simplelink_cc13x0_sdk_1_50_00_08\examples\rtos\CC1310_LAUNCHXL\easylink\rfEasyLinkRx\easylink目录下,查看EasyLink.c文件,里面有EasyLink_enableRxAddrFilter()函数的具体实现。
EasyLink_Status EasyLink_enableRxAddrFilter(uint8_t* pui8AddrFilterTable, uint8_t ui8AddrSize, uint8_t ui8NumAddrs)
{
EasyLink_Status status = EasyLink_Status_Param_Error;if ( (!configured) || suspended)
{
return EasyLink_Status_Config_Error;
}
if ( Semaphore_pend(busyMutex, 0) == FALSE )
{
return EasyLink_Status_Busy_Error;
}if ( (pui8AddrFilterTable != NULL) &&
(ui8AddrSize != 0) && (ui8NumAddrs != 0) &&
(ui8AddrSize == addrSize) &&
(ui8NumAddrs <= EASYLINK_MAX_ADDR_FILTERS) )
{
memcpy(addrFilterTable, pui8AddrFilterTable, EASYLINK_MAX_ADDR_SIZE * EASYLINK_MAX_ADDR_FILTERS);
EasyLink_cmdPropRxAdv.addrConf.addrSize = ui8AddrSize;
EasyLink_cmdPropRxAdv.addrConf.numAddr = ui8NumAddrs;
EasyLink_cmdPropRxAdv.pktConf.filterOp = 0;status = EasyLink_Status_Success;
}
else if (pui8AddrFilterTable == NULL)
{
//disable filter
EasyLink_cmdPropRxAdv.pktConf.filterOp = 1;status = EasyLink_Status_Success;
}//Release the busyMutex
Semaphore_post(busyMutex);return status;
}可以看到EasyLink_enableRxAddrFilter()使用了Advanced Receive Command, CMD_PROP_RX_ADV命令中的addrConf配置。
可以阅读TRM文档中的
Table 23-137. CMD_PROP_RX_ADV and CMD_PROP_RX_ADV_SNIFF Command Structure
和
23.7.5.4.2 Advanced Receive Command, CMD_PROP_RX_ADV