CH571F如何在运行中修改广播间隔

我需要状态1的时候广播间隔是500ms,状态2的时候广播间隔是100ms,使用

GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, MS1_TO_SYSTEM_TIME(500));

GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, MS1_TO_SYSTEM_TIME(500));

修改不成功,请问应该怎么办


您好,先关广播,修改广播间隔的配置,再打开广播。

开/关广播调用如下两行接口即可。

uint8_t  initial_advertising_enable = TRUE;     //FALSE

GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);



void modify_adv_interval(unsigned int ms)

{

uint8_t initial_advertising_enable = TRUE;


initial_advertising_enable = FALSE;

GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);

GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, MS1_TO_SYSTEM_TIME(ms));

GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, MS1_TO_SYSTEM_TIME(ms));

?initial_advertising_enable = TRUE;

GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);

}


修改没有生效呀


你好,关闭广播后再开启广播的话,需要等到报等待广播状态后再开启,不可以关闭后直接再打开。

在等待广播处开启广播:
if(pEvent->gap.opcode == GAP_END_DISCOVERABLE_DONE_EVENT)
{
PRINT("Waiting for advertising..\n");
uint8_t initial_advertising_enable = TRUE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);开启广播
}



只有登录才能回复,可以选择微信账号登录