1

当尝试通过更改如下所示的 RADIO_PARAM_RX_MODE 来禁用地址过滤时,cc2420 自动确认不起作用,并且微粒会收到重复的数据包。

radio_value_t radio_rx_mode;
NETSTACK_RADIO.get_value(RADIO_PARAM_RX_MODE, &radio_rx_mode);
radio_rx_mode &= ~RADIO_RX_MODE_ADDRESS_FILTER;
if(NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, radio_rx_mode) != RADIO_RESULT_OK) {
    LOG_WARN("radio does not support setting RADIO_PARAM_RX_MODE\n");
}else{
    LOG_INFO("turned of Address filtering.\n");
}

如何关闭仅地址过滤?

4

1 回答 1

0

您的代码是禁用地址识别/过滤的正确方法。

关于自动 ACK,CC2420 数据表是这样说的:

如果MDMCTRL0.AUTOACK启用,则为地址识别所接受的所有传入帧发送一个确认帧,其中确认请求标志设置和有效 CRC。因此 AUTOACK 没有意义,除非也ADR_DECODEAUTOCRC被启用。

这意味着如果您禁用了地址过滤,则需要发送软件 ACK。

于 2021-10-17T15:17:39.130 回答