完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
为了解决数据冲突问题,移植ListenBeforeTalk程序后,数据发送不正常,RF_cmdPropTx.status一直为0,这是什么原因呢?
发送部分的代码如下: /* * ======== callback ======== */ static void Wcallback(RF_Handle h, RF_CmdHandle ch, RF_EventMask e) [ if ((e & RF_EventLastCmdDone) && (RF_cmdPropTx.status == PROP_DONE_OK)) [ PIN_setOutputValue(ledPinHandle, NODE_RECEIVE_LED,!PIN_getOutputValue(NODE_RECEIVE_LED)); ] else [ PIN_setOutputValue(ledPinHandle, NODE_RESEND_LED,!PIN_getOutputValue(NODE_RESEND_LED)); ] ] EasyLink_Status EasyLink_transmit(EasyLink_TxPacket *txPacket) [ EasyLink_Status status = EasyLink_Status_Tx_Error; if ( (!configured) || suspended) [ return EasyLink_Status_Config_Error; ] //Check and take the busyMutex if (Semaphore_pend(busyMutex, 0) == FALSE) [ return EasyLink_Status_Busy_Error; ] if (txPacket->len > EASYLINK_MAX_DATA_LENGTH) [ return EasyLink_Status_Param_Error; ] memcpy(txBuffer, txPacket->dstAddr, addrSize); memcpy(txBuffer + addrSize, txPacket->payload, txPacket->len); //packet length to Tx includes address // EasyLink_cmdPropTx.pktLen = txPacket->len + addrSize; // EasyLink_cmdPropTx.pPkt = txBuffer; // if (txPacket->absTime != 0) // [ // EasyLink_cmdPropTx.startTrigger.triggerType = TRIG_ABSTIME; // EasyLink_cmdPropTx.startTrigger.pastTrig = 1; // EasyLink_cmdPropTx.startTime = txPacket->absTime; // ] // else // [ // EasyLink_cmdPropTx.startTrigger.triggerType = TRIG_NOW; // EasyLink_cmdPropTx.startTrigger.pastTrig = 1; // EasyLink_cmdPropTx.startTime = 0; // ] //packet length to Tx includes address EasyLink_cmdPropTx.pktLen = txPacket->len + addrSize; EasyLink_cmdPropTx.pPkt = txBuffer; if (txPacket->absTime != 0) [ RF_cmdNop.startTrigger.triggerType = TRIG_ABSTIME; RF_cmdNop.startTrigger.pastTrig = 1; RF_cmdNop.startTime = txPacket->absTime; ] else [ RF_cmdNop.startTrigger.triggerType = TRIG_NOW; RF_cmdNop.startTrigger.pastTrig = 1; RF_cmdNop.startTime = 0; ] // // Send packet // RF_CmdHandle cmdHdl = RF_postCmd(rfHandle, (RF_Op*)&EasyLink_cmdPropTx, // RF_PriorityNormal, 0, EASYLINK_RF_EVENT_MASK); // // // Wait for Command to complete // RF_EventMask result = RF_pendCmd(rfHandle, cmdHdl, (RF_EventLastCmdDone | // RF_EventCmdError)); /* 添加侦听机制 */ /* Set up the next pointers for the command chain */ RF_cmdNop.pNextOp = (rfc_radioOp_t*)&RF_cmdPropCs; RF_cmdPropCs.pNextOp = (rfc_radioOp_t*)&RF_cmdCountBranch; RF_cmdCountBranch.pNextOp = (rfc_radioOp_t*)&EasyLink_cmdPropTx; RF_cmdCountBranch.pNextOpIfOk = (rfc_radioOp_t*)&RF_cmdPropCs; /* Customize the API commands with application specific defines */ RF_cmdPropCs.rssiThr = RSSI_THRESHOLD_DBM; RF_cmdPropCs.csEndTime = (IDLE_TIME_US + 150) * 4; /* Add some margin */ // RF_cmdPropCs.csEndTime = (IDLE_TIME_US ) ; /* Add some margin */ RF_cmdCountBranch.counter = CS_RETRIES_WHEN_BUSY; /* send packet */ RF_runCmd(rfHandle, (RF_Op*)&RF_cmdNop, RF_PriorityNormal, &Wcallback, 0); status = EasyLink_Status_Success; RF_cmdNop.status = IDLE; RF_cmdPropCs.status = IDLE; RF_cmdCountBranch.status = IDLE; RF_cmdPropTx.status = IDLE; RF_cmdCountBranch.counter = CS_RETRIES_WHEN_BUSY; // if (result & RF_EventLastCmdDone) // [ // status = EasyLink_Status_Success; // ] //Release the busyMutex Semaphore_post(busyMutex); return status; ] 是不是还有其他地方需要修改呢? |
|
相关推荐
2个回答
|
|
|
TI工程师们,怎么没人回复呀,急!谢谢谢谢谢谢。
|
|
|
|
|
|
//packet length to Tx includes address RF_cmdPropTx.pktLen = txPacket->len + addrSize; RF_cmdPropTx.pPkt = txBuffer; RF_cmdCountBranch.pNextOp = (rfc_radioOp_t*)&RF_cmdPropTx; 修改后问题解决,发送完成后RF_cmdPropTx.status = PROP_DONE_OK。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1758浏览 29评论
2785浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1725浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1635浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1646浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 20:46 , Processed in 0.658728 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2220