TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530如何手动发送确认帧

1、我这大约有100个终端,一个接收器。现在在测试的程序都没有开启ACK。发现有掉线的问题。

2、我的程序没跑协议栈,不组网,不找网,终端采集完数据直接发送,然后休眠。因为终端地址太多,我把主机的地址过滤关闭了。也就没法自动开启应答。所以想手动发送ACK帧,来保证数据发送不成功时,再次发送。

3、数据发送函数basicRfSendPacket(HOST_ADDR , pTxData, APP_PAYLOAD_LENGTH);数据接收函数:(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL);

4、#define SACK()             st(RFST = 0xD6;),我想在接收的数据判断正确之后,通过执行SACK()发送一个确认帧,通过监听发现主机并没有发送确认帧。

不知何原因,还是有什么设置没做。

初始化函数:

// Enable  auto crc
FRMCTRL0 |= AUTO_CRC;
FRMFILT0 =0x0C; //关闭地址过滤
FRMFILT1 |=0x04; //定义未决数据位
SRCMATCH =0x0; // Recommended RX settings
TXFILTCFG = 0x09;
AGCCTRL1 = 0x15;
FSCAL1 = 0x00;

Yue TANG:

不组网,推荐用TI-MAC, 这种节点比较多的情况,你需要考虑的不仅是回ack,还有退避,冲突检测等。TIMAC可以帮你处理好这些。

http://www.ti.com/tool/timac?keyMatch=ti%20mac&tisearch=Search-EN-Everything

yongzhen yan:

回复 Yue TANG:

非常感谢!我试一下 。

赞(0)
未经允许不得转载:TI中文支持网 » CC2530如何手动发送确认帧
分享到: 更多 (0)