Ra-01通信带宽设置

[复制链接]
查看883 | 回复4 | 2024-12-13 09:16:48 | 显示全部楼层 |阅读模式
之前使Ra-02,带宽7-9分别代表125Khz,250Khz,500Khz,现在用Ra01s,看sx1268手册上带宽设置应该跟sx1278是一样的,如下表
Signal Bandwidth 0            1           2           3               4          5         6         7       8      9
BW_L [kHz]           7.810  10.42    15.630    20.830   31.25    41.670   62.50  125  250    500
,但是在sx1268官 例程中发现带宽编号不是这么对应的,代码如下,请问这是怎么回事,请大神解答。
typedef enum
{
    LORA_BW_500                             = 6,
    LORA_BW_250                             = 5,
    LORA_BW_125                             = 4,
    LORA_BW_062                             = 3,
    LORA_BW_041                             = 10,
    LORA_BW_031                             = 2,
    LORA_BW_020                             = 9,
    LORA_BW_015                             = 1,
    LORA_BW_010                             = 8,
    LORA_BW_007                             = 0,
}RadioLoRaBandwidths_t;
回复

使用道具 举报

爱笑 | 2024-12-13 09:23:42 | 显示全部楼层
马上抓个技术给你解决!
用心做好保姆工作
回复 支持 反对

使用道具 举报

gfstrong | 2024-12-13 09:30:50 | 显示全部楼层
在实际应用中也确实发现如果按照带宽8配置,传输速率特别慢,带宽肯定不是250KHZ,但例程中这种对应我在芯片手册上也没找到为什么这样
回复 支持 反对

使用道具 举报

AiThinker-李工 | 2024-12-16 15:20:28 | 显示全部楼层
你参考的是什么代码,我们官网给出的例程中,这部分都是封装好的
     *                          LoRa: 0
     * \param [IN] bandwidth    Sets the bandwidth (LoRa only)
     *                          FSK : 0
     *                          LoRa: [0: 125 kHz, 1: 250 kHz,
     *                                 2: 500 kHz, 3: Reserved]
回复 支持 反对

使用道具 举报

gfstrong | 2024-12-17 09:14:32 | 显示全部楼层
就是官方代码,官方代码中定义了一个结构体就是我上述列出来那些包含所有带宽,同时用这个结构体又定义了一个包含三个带宽的数组如下:
RadioLoRaBandwidths_t Bandwidths[] = { LORA_BW_125, LORA_BW_250, LORA_BW_500 };
就是您列出来的这个,包含三个带宽的定义,最终配置带宽时代码如下,
SX126x.ModulationParams.Params.LoRa.Bandwidth =  Bandwidths[bandwidth];
。。。。。。。。。
        buf[0] = modulationParams->Params.LoRa.SpreadingFactor;
        buf[1] = modulationParams->Params.LoRa.Bandwidth;
        buf[2] = modulationParams->Params.LoRa.CodingRate;
        buf[3] = modulationParams->Params.LoRa.LowDatarateOptimize;

        SX126xWriteCommand( RADIO_SET_MODULATIONPARAMS, buf, n );
按照你们封装起来的代码我选择0是125Khz但最终指向的是定义的那个结构体,对应125Khz的数应该是4就是说最终写入寄存器代表带宽的数是4,这与手册中相矛盾
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则