我调用 extern RF_EventMask RF_runCmd(RF_Handle h, RF_Op* pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);这个接口,如果把 RF_Op* pOp这个参数设为小于余或等于416M的时候CC1310就能睡眠下去,设为大于416M的时候CC1310就不睡眠了,我们要用的通讯频率为433M。请求各位大神指教该如何解决!!!代码如下:
void vSetRadioFreq(rfc_CMD_FS_t *ptFs, float fWorkFreq)
{
uint16_t usInteger;
float fFract;
usInteger = (uint16_t)fWorkFreq;
fFract = (float)(fWorkFreq – (float)usInteger);
ptFs->frequency = usInteger;//整数部分=整数.
ptFs->fractFreq = (uint16_t)(fFract*65535.0);//小数部分=小数部分*65535;
// ptFs->frequency = 416;//整数部分=整数.
// ptFs->fractFreq = 0.920013;//小数部分=小数部分*65535;
/* Set frequency */
RF_runCmd(rfHandle, (RF_Op*)ptFs, RF_PriorityNormal, &callback, 0);
}
麻烦各位大前辈帮忙看看,谢谢!!!
Susan Yang:
用Radio不能睡眠?没太理解您的意思
b x:
回复 Susan Yang:
我用CC1310做一个需要有低功耗的产品,需要用到Radio功能,当我初始化Radio任务后CC1310就不睡眠了,经我层层查找原因,最终发现是调用extern RF_EventMask RF_runCmd(RF_Handle h, RF_Op* pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);这个接口设备通讯频率造成的,把这个接口屏蔽后CC1310就能睡眠了!
Alvin Chen:
回复 b x:
您可以用SmartRF 导入一个433Mhz的试一下WOR的demo。
// Frequency Synthesizer Programming Command rfc_CMD_FS_t RF_cmdFs = {.commandNo = 0x0803,.status = 0x0000,.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx.startTime = 0x00000000,.startTrigger.triggerType = 0x0,.startTrigger.bEnaCmd = 0x0,.startTrigger.triggerNo = 0x0,.startTrigger.pastTrig = 0x0,.condition.rule = 0x1,.condition.nSkip = 0x0,.frequency = 0x01B1,.fractFreq = 0xEB85,.synthConf.bTxMode = 0x0,.synthConf.refFreq = 0x0,.__dummy0 = 0x00,.__dummy1 = 0x00,.__dummy2 = 0x00,.__dummy3 = 0x0000, };WOR路径为:C:\ti\simplelink_cc13x0_sdk_1_00_00_13\examples\rtos\CC1350_LAUNCHXL\drivers
b x:
回复 Alvin Chen:
这个Demo也睡不下去
Alvin Chen:
回复 b x:
参考一下这个:https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/t/613823
Felix ZF:
回复 Alvin Chen:
你可以在线跟一下
看看这条命令能执行成功吗?
也就是说,程序能跑到rf_runcmd的下一条语句吗?
b x:
回复 Felix ZF:
这条指令应该是能执行的吧,我设置频率后设备间都能正常通讯了,只是模块不睡眠而已,如果没执行这条命令的话设备之间应该是不能正常通讯的呀
Felix ZF:
回复 b x:
你是通过什么手段来判断是否进入休眠的呢?
b x:
回复 Felix ZF:
测模块的工作电流,模块睡眠后电流在10uA以内,几乎没有电流,没睡眠的时候模块工作电流有4~5mA左右
fenglin hu:
回复 b x:
您好,请问一下,你是怎么让cc1310进入睡眠状态的,是Task_sleep()吗?这个应该不是睡眠吧?