一、获取资料
- 获取SDKhttps://www.wch.cn/search?t=all&q=CH582
- 修改参考https://www.cnblogs.com/debugdabiaoge/p/16205973.html
二、步骤
-
使用例子:
EVT\EXAM\BLE\Peripheral
-
在
Peripheral\APP\peripheral.c
的Peripheral_Init
函数中加入uint8 initial_adv_event_type = GAP_ADTYPE_EXT_CONN_UNDIRECT; GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE, sizeof(uint8), &initial_adv_event_type); GAP_SetParamValue(TGAP_ADV_SECONDARY_PHY, GAP_PHY_VAL_LE_CODED); GAP_SetParamValue(TGAP_ADV_PRIMARY_PHY, GAP_PHY_VAL_LE_CODED); GAP_SetParamValue(TGAP_ADV_SECONDARY_MAX_SKIP, 0); GAP_SetParamValue(TGAP_ADV_ADVERTISING_SID, 8);
这里使用的是125K的速率
这里的修改,可以参考例子:EVT\EXAM\BLE\SYNC_ADV
-
若需要 连接后,从机进行PHY的协商,可以在
peripheralStateNotificationCB
的case GAPROLE_CONNECTED
中加入协商任务case GAPROLE_CONNECTED: if(pEvent->gap.opcode == GAP_LINK_ESTABLISHED_EVENT) { Peripheral_LinkEstablished(pEvent); PRINT("Connected..\n"); tmos_start_task(Peripheral_TaskID, SBP_PHY_UPDATE_EVT, SBP_READ_RSSI_EVT_PERIOD); //启动协商PHY 这里的SBP_READ_RSSI_EVT_PERIOD 只是随意定的,拿来用用 } break;
-
若需要加大功率,可以修改
config.h
的#define BLE_TX_POWER LL_TX_POWEER_6_DBM
三、结果
可以看到PrimaryPHY和SecondaryPHY都是 LE Coded
注意这里看不到名字,是需要修改广播包的,这里可以参考EVT\EXAM\BLE\SYNC_ADV
进行广播包的修改,我暂时没做下一步的研究了