cc1101使用进入Sleep模式后唤醒后接收不到数据?
在CC1101进入sleep模式后 可以唤醒,但是唤醒后无法接收数据,唤醒后我让CC1101进入接收模式,但是没有收到发的数据,是否还有什么其它的命令需要操作?
数据包正常发出了吗?抓包数据有没有?
我之前没有进入sleep的时候发数据是可以收到了,增加了 WOR ,唤醒后就收不到数据了
下面是WOR代码
/*************************************************
函数名称 : CC1101_InitWOR
函数入参 : void
函数说明: 电磁波WOR唤醒功能初始化 设置为0.5秒轮训
函数备注: WOR 初始化 并进入掉电模式
**************************************************/
void CC1101_InitWOR(void)
{
#ifdef RF_TARGET_MODE
// halSpiStrobe(CCxxx0_SIDLE); //进入空闲状态
/* RX_TIME[2:0]=110 Duty cycle 0.195% T_rxtime3.69ms */
halSpiWriteReg(CCxxx0_MCSM2,0x06); //设置轮训时间
halSpiWriteReg(CCxxx0_MCSM0,0x38); //RC自动校准
// halSpiWriteReg(CCxxx0_WOREVT1,0x43); //设置轮训周期
// halSpiWriteReg(CCxxx0_WOREVT0,0xb5);
/*T_event0 = 750 / f(xosc) * EVENT0* 2^(5*WOR_RES)*/
halSpiWriteReg(CCxxx0_WOREVT1,0xff); //设置轮训周期
halSpiWriteReg(CCxxx0_WOREVT0,0xff);
/* Event1[2:0]=111 Tevent1=1.333ms~1.385ms */
/* RC_CAL = 1 Enable RC calibration */
/* WOR_RES = 0 Max time of event0 (1.8~1.9)seconds */
halSpiWriteReg(CCxxx0_WORCTRL,0x78); //启动自动校准 设置时间E
halSpiStrobe(CCxxx0_SFRX); //复位RX——BUFF
halSpiStrobe(CCxxx0_SWORRST);
halSpiStrobe(CCxxx0_SWOR); //启动WOR
RF_SLEEP = TRUE;
#endif
}
有结果吗?
检查一下唤醒后校准的操作。
请读取一下RX的状态寄存器的值 看看是持续在RX状态还是RX FIFO有问题
