STM32WBA52CG是支持蓝牙BLE 5.3,官方提供的STM32Cube_FW_WBA_V1.1.0资料包中提供了一个非常好的入门案例:BLE_p2pServer。
准备材料:
Keil, ST BLE Toolbox
图形化配置时钟:
主要的代码包括在主函数中调用aci_gatt_init()来初始化GATT接口,调用aci_gap_init()来初始化GAP:
/* Initialize GATT interface */
ret = aci_gatt_init();
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" Fail : aci_gatt_init command, result: 0x%02X\n", ret);
}
else
{
APP_DBG_MSG(" Success: aci_gatt_init command\n");
}
/* Initialize GAP interface */
role = 0U;
role |= GAP_PERIPHERAL_ROLE;
/* USER CODE BEGIN Role_Mngt*/
/* USER CODE END Role_Mngt */
if (role > 0)
{
ret = aci_gap_init(role,
#if ((CFG_BD_ADDRESS_TYPE == GAP_RESOLVABLE_PRIVATE_ADDR) || (CFG_BD_ADDRESS_TYPE == GAP_NON_RESOLVABLE_PRIVATE_ADDR))
PRIVACY_ENABLED,
#else
PRIVACY_DISABLED,
#endif /* (CFG_BD_ADDRESS_TYPE == GAP_RESOLVABLE_PRIVATE_ADDR) || (CFG_BD_ADDRESS_TYPE == GAP_NON_RESOLVABLE_PRIVATE_ADDR) */
sizeof(a_GapDeviceName),
&gap_service_handle,
&gap_dev_name_char_handle,
&gap_appearance_char_handle);
/* Initialize GATT interface */
ret = aci_gatt_init();
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" Fail : aci_gatt_init command, result: 0x%02X\n", ret);
}
else
{
APP_DBG_MSG(" Success: aci_gatt_init command\n");
}
/* Initialize GAP interface */
role = 0U;
role |= GAP_PERIPHERAL_ROLE;
/* USER CODE BEGIN Role_Mngt*/
/* USER CODE END Role_Mngt */
if (role > 0)
{
ret = aci_gap_init(role,
#if ((CFG_BD_ADDRESS_TYPE == GAP_RESOLVABLE_PRIVATE_ADDR) || (CFG_BD_ADDRESS_TYPE == GAP_NON_RESOLVABLE_PRIVATE_ADDR))
PRIVACY_ENABLED,
#else
PRIVACY_DISABLED,
#endif /* (CFG_BD_ADDRESS_TYPE == GAP_RESOLVABLE_PRIVATE_ADDR) || (CFG_BD_ADDRESS_TYPE == GAP_NON_RESOLVABLE_PRIVATE_ADDR) */
sizeof(a_GapDeviceName),
&gap_service_handle,
&gap_dev_name_char_handle,
&gap_appearance_char_handle);
点击LED灯的图标,即可打开或者关闭板子上的LED.
串口助手的输出:
-- GATT : LED CONFIGURATION RECEIVED
-- P2P APPLICATION SERVER : LED1 ON
-- GATT : LED CONFIGURATION RECEIVED
-- P2P APPLICATION SERVER : LED1 OFF
在开发板上按BTN1,
Button 1 pressed
-- P2P APPLICATION SERVER : INFORM CLIENT BUTTON 1 PUSHED
Success: aci_gatt_update_char_value SWITCH_C command
---------------------
作者:南来之风
链接:https://bbs.21ic.com/icview-3318382-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。