CC2530接收BasicRF接收端数据字节大小的问题
在用CC2530的BasicRF做通信的时候,发现当发送端一包数据发10个字节可以接收,发送20个字节就接收不到了。
对如下的接收程序进行分析,发现:
static void appLight()
{
// Initialize BasicRF
basicRfConfig.myAddr = RECEIVE_ADDR;
if(basicRfInit(&basicRfConfig)==FAILED) { //初始化basicRf数据结构
HAL_ASSERT(FALSE);
}
basicRfReceiveOn(); //允许接收
while (1) {
while(!basicRfPacketIsReady()); //检测是否接收到数据
//调用函数接收数据,接收完成置位
if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0) { // receive data
UartSend_String("R:",2);
UartSend_String(pRxData,APP_PAYLOAD_LENGTH);
UartSend_String("\n",1);
LED2=!LED2;
}
}
}
发现:
1.当一包数据小于10个字节的时候,程序可以运行过while(!basicRfPacketIsReady()); 函数,并将接收的数据串口打印出来;
2.当一包数据大于10个字节的时候,程序卡在while(!basicRfPacketIsReady()); 函数,程序卡死,不运行了;
3.当一包数据大于10个字节的时候,将while(!basicRfPacketIsReady()); 注释了,串口可以打印出数据包中大于10个字节的数据;
求问这是什么问题?
在另外的帖子里面回复你了