当试图通过像下面这样更改RADIO_PARAM_RX_MODE来禁用地址过滤时,cc2420自动ack无法工作,并且motes会得到重复的数据包。
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");
}如何关闭地址过滤?
发布于 2021-10-17 15:17:39
您的代码是禁用地址识别/筛选的正确方法。
关于auto,CC2420数据表表示:
如果启用
MDMCTRL0.AUTOACK,则为地址识别所接收的所有传入帧发送一个应答帧,该地址识别具有设置的确认请求标志和有效的CRC。因此,除非启用了ADR_DECODE和AUTOCRC,否则AUTOACK没有意义。
这意味着,如果您的地址过滤禁用,您需要发送软件ACK。
https://stackoverflow.com/questions/69604531
复制相似问题