大家好!
最近用CC2540来发广播数据,上电后前10秒,间隔2秒广播一次。10秒后间隔3秒广播一次。但是用抓包软件看的一直都是2秒/次,也就是间隔更新失败。
我用的是广播例程:SimpleBLEBroadcaster
程序采用POWER_SAVING模式,在主循环里延时10秒后,调用以下两种方法更新都不行,广播间隔还是2秒,所以想请大家指点一下,非常感激。
方法一:参照初始化时设置广播间隔的程序,结果不行
uint16 advInt = 4800;
GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MIN, advInt );
GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MAX, advInt );
GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MIN, advInt );
GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MAX, advInt );
方法二:调用函数HCI_LE_SetAdvParamCmd(),结果广播间隔也还是2秒
uint16 advIntervalMin = 4800; // Required adv interval.
uint16 advIntervalMax = 4800; // Required adv interval.
uint8 advType = HCI_SCANNABLE_UNDIRECTED;
uint8 ownAddrType = HCI_PUBLIC_DEVICE_ADDRESS; // Public addr.
uint8 directAddrType = HCI_PUBLIC_DEVICE_ADDRESS; // Useless here.
uint8 *directAddr = NULL;
uint8 advChannelMap = HCI_ADV_CHAN_ALL;
uint8 advFilterPolicy = HCI_ADV_WL_POLICY_ANY_REQ;
HCI_LE_SetAdvParamCmd( advIntervalMin ,
advIntervalMax ,
advType ,
ownAddrType ,
directAddrType ,
directAddr ,
advChannelMap ,
advFilterPolicy );