6621CX系列蓝牙更新2M通信请求

徽信管理团队 · 277次点击 · 2023-10-31

phy更新回调函数在哪?

1、app_task.c里加上{GAPC_LE_PHY_IND, (ke_msg_func_t)gapc_le_phy_ind_handler},参考图上语句

image.png

2、添加如下两个函数
static int gapc_le_phy_ind_handler(ke_msg_id_t const msgid, struct gapc_le_phy_ind *param,
ke_task_id_t const dest_id, ke_task_id_t const src_id)
{
LOG_VBS_FUNC();
LOG_INF("PHY: tx %dM, rx %dM", param->tx_phy, param->rx_phy);
return (KE_MSG_CONSUMED);
}

void app_phy_req(void)
{
struct gapc_set_phy_cmd *cmd = KE_MSG_ALLOC(GAPC_SET_PHY_CMD,
TASK_GAPC, TASK_APP,
gapc_set_phy_cmd);
cmd->operation = GAPC_SET_PHY;
cmd->tx_phy = GAP_PHY_LE_2MBPS;
cmd->rx_phy = GAP_PHY_LE_2MBPS;
cmd->phy_opt = GAPC_PHY_OPT_LE_CODED_ALL_RATES;
ke_msg_send(cmd);
}

3、在连接成功回调函数gapc_connection_req_ind_handler中调用函数app_phy_req

image.png

注意:以上所有操作都是建立在硬件以及软件配置上支持2M phy通信的基础上,才会生效。6621CX系列的芯片软件中需要在app_task.c中做如下配置,才会支持2M phy:
/// Preferred LE PHY for data transmission (@see enum gap_phy)
cmd->tx_pref_phy = GAP_PHY_LE_2MBPS;
/// Preferred LE PHY for data reception (@see enum gap_phy)
cmd->rx_pref_phy = GAP_PHY_LE_2MBPS;

image.png



6621CX系列请求2M的phy通信-202310315589.pdf
被收藏 0  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站