金牌会员
- 积分
- 2354
- 金钱
- 2354
- 注册时间
- 2019-10-29
- 在线时间
- 380 小时
|
10金钱
今天碰到个奇怪的现象,使用的SX1280
在之前代码上(使用的SF7),发送周期等会随着选择的SF进行改变,
在SF7的时候,RF通讯是正常的,
但是当我改成SF10的时候,接收端偶尔收到一包正确数据,后面收到的就是错误数据了,
于是我又将SF10改成了SF9 SF11进行测试,发现在SF9 SF11的时候,通讯是没问题的。
这就奇怪了,配置为SF10有什么不同的地方吗??????
下面是初始化的RF配置
- Radio.Init( &Callbacks );//初始化回调函数
- Radio.SetRegulatorMode( USE_DCDC ); // 也可以设置为LDO模式但消耗更多功率 USE_DCDC USE_LDO
- SX1280_ID = Radio.GetFirmwareVersion();//获取芯片信息 0xA9B5 可用于测试SPI的读写情况
- /***************************数据包类型的调制参数***************************************/
- modulationParams.PacketType = PACKET_TYPE_LORA; //lora
- //modulationParams.Params.LoRa.SpreadingFactor = LORA_SF10; //扩频因子
- modulationParams.Params.LoRa.SpreadingFactor = LORA_SF11; //扩频因子
- modulationParams.Params.LoRa.Bandwidth = LORA_BW_0800; //带宽
- modulationParams.Params.LoRa.CodingRate = LORA_CR_LI_4_5; //编码率
-
- packetParams.PacketType = PACKET_TYPE_LORA; //lora
- packetParams.Params.LoRa.PreambleLength = 12; //前导码长度8符号 Number of symbols = PreambleLength[3:0] * ( 2^PreambleLength[7:4] )
- packetParams.Params.LoRa.HeaderType = LORA_PACKET_FIXED_LENGTH; //LORA_PACKET_VARIABLE_LENGTH;//显性标头 LORA_PACKET_FIXED_LENGTH;//隐性标头(固定长度)
- packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; //有效负载 32
- packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; //CRC 开启
- packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL;
- /******************************************************************************************/
-
- Radio.SetStandby( STDBY_XOSC ); //进入STDBY_RC 模式 STDBY_XOSC
- Radio.SetPacketType( modulationParams.PacketType ); //设置数据包类型lora
- Radio.SetModulationParams( &modulationParams ); //设置扩频因子 带宽 编码率
- switch(modulationParams.Params.LoRa.SpreadingFactor)
- {
- case LORA_SF5:
- case LORA_SF6:
- SX1280HalWriteRegister(0x925,0x1E);//for SF5 SF6
- break;
- case LORA_SF7:
- case LORA_SF8:
- SX1280HalWriteRegister(0x925,0x37);//for SF7 SF8
- break;
- default:
- SX1280HalWriteRegister(0x925,0x32);//for SF9 SF10 SF11 SF12
- break;
- }
- Radio.SetPacketParams( &packetParams ); //设置数据包参数(前导码 标头 有效负载大小 CRC IQ)
- Radio.SetRfFrequency(SX1280_Transfer_Frq[frq_i]);//频点设置
复制代码 在手册上就找到了,设置为不同的SF时,需要对0x925地址写不同的东西,但是我发现好像没啥区别...(在SF7的情况下测试,加上0x925的写操作和不加,没看到什么区别)
现在问题就是
sf=SF10,bw=BW_0800,cr=CR_LI_4_5,
进行通讯有问题。
下面是在SF9和SF10的时候采集到的波形,望大佬指点,SF10的时候还需要配置什么东西吗?? 谢谢啦!
|
-
-
|