一、修改入网速率
在RegionCN470.c中有如下函数:
代码语言:javascript复制int8_t RegionCN470AlternateDr( AlternateDrParams_t* alternateDr ){ int8_t datarate = 0;
if( ( alternateDr->NbTrials % 48 ) == 0 ) { datarate = DR_0; } else if( ( alternateDr->NbTrials % 32 ) == 0 ) { datarate = DR_1; } else if( ( alternateDr->NbTrials % 24 ) == 0 ) { datarate = DR_2; } else if( ( alternateDr->NbTrials % 16 ) == 0 ) { datarate = DR_3; } else if( ( alternateDr->NbTrials % 8 ) == 0 ) { datarate = DR_4; } else { datarate = DR_2; } return datarate;}
可以看出:入网的时候速率是不断调整的,主要是与入网的次数有关,入网次数是48的倍数的时候使用DR_0,入网次数是32的倍数的时候使用DR_1,以此类推,其余入网的时候使用DR_2(对CN470来说就是SF10)。如果想要修改入网速率,就可以根据实际情况调整。
二、修改入网间隔
在RegionCommon.c文件中有如下函数:
代码语言:javascript复制#define BACKOFF_DC_1_HOUR 100#define BACKOFF_DC_10_HOURS 1000#define BACKOFF_DC_24_HOURS 10000
代码语言:javascript复制uint16_t RegionCommonGetJoinDc( TimerTime_t elapsedTime ){ uint16_t dutyCycle = 0; if( elapsedTime < 3600000 ) { dutyCycle = BACKOFF_DC_1_HOUR; } else if( elapsedTime < ( 3600000 36000000 ) ) { dutyCycle = BACKOFF_DC_10_HOURS; } else { dutyCycle = BACKOFF_DC_24_HOURS; } return dutyCycle;}
elapsedTime表示过去的时间,可以看出随着时间往后,入网的间隔越久。如果要改变入网时间,可以修改上面的三个宏。
======================================
相关阅读:
LoRa串口透传
LoRa连接到腾讯云物联网平台
STM32与LoRa低功耗调试总结