|
1.6621E 默认是可以支持1M和2M,如果应用端只是想设置支持1M需要修改代码,修改如下: static uint8_t supp_featue[8]; static void change_ll_feature(void) { uint8_t *p_supp_feature = (uint8_t *)(*(uint32_t *)0x200097e8); memcpy(&supp_featue[0], p_supp_feature, 8); supp_featue[1] &= ~(0x01); *(uint32_t *)0x200097e8 = (uint32_t)&supp_featue[0]; } int main(void) { ble_stack_config(); om_ble_enable(NULL); softdevice_ble_evt_handler_set(on_ble_evt);
change_ll_feature();//需要放在co_sche()前面 co_sche(); } 2.修改后抓包结果如下截图
第4个字节0X21表示支持LE Encryption和LE Data Packet Length Extension ,2M是LE 2M PHY对应的BIT8,这里是0 (第5个字节是0X00)表示不支持,具体可以参考BLUETOOTH CORE SPECIFICATION文档里面的 Link Layer Feature说明, 下面的截图是5.2版本的文档
|


