CC1101配置空闲信道评估CCA,导致发送死掉
CC1101配置空闲信道评估CCA,导致发送死掉
CCA初始化代码
void CC1101_CCAConfig(void)
{
CC1101_WriteReg(CC1101_IOCFG2,0x0E);//GDO2引脚输出载波感应电平,如果RSSI级别在门限之上为高电平
CC1101_WriteReg(CC1101_MCSM1,0x3F);//接受信号强度低于门限值且当前未接收报文则信道空闲,让TX和RX结束后,芯片都保持在RX状态。
CC1101_WriteReg(CC1101_AGCCTRL1,0x40);//低噪声放大器增益先减小,载波监听相对阈值禁用,载波监听绝对阈值由MAGN_TARGET设置
CC1101_WriteReg(CC1101_AGCCTRL2,0x07);//42dB
}
这部分是发送代码
void Send_Date(void)
{
CC1101_SetRxMode();
nop();nop();nop();nop();nop();nop();
nop();nop();nop();nop();nop();nop();
if(CC1101_GDO2_Status) //信道繁忙
{
CC1101_WriteCmd(CC1101_SFRX); //清洗接收缓冲区
LED_Toggle();
return;
}
CC1101_SendPacket(&dat[0],strlen((char *)&dat[0]));//执行发送
}
开启CCA后,发送就会死在检测GDO0这里( IOCFG0D配置为0x06).
CCA这块代码测试过;屏蔽掉发送可以LED灯闪烁