1、配置协议栈时钟与晶振准确度
//按照以上路径找到最后一个宏定义“NRF_SDH_CLOCK_LF_SRC”,修改这里即可更改时钟源
//外部晶振较省电,因为内部RC校准时必须运行32MHz高速时钟,比外部多9us电流
//协议栈使用RTC0作为时钟
ble_stack_init -> nrf_sdh_enable_request -> .source = NRF_SDH_CLOCK_LF_SRC
//以下结构体成员用来修改晶振的准确度,根据自己晶振的规格书选择
.accuracy = NRF_SDH_CLOCK_LF_ACCURACY
2、蓝牙时间的注册与管理
//注册蓝牙事件,回调函数为ble_evt_handler
NRF_SDH_BLE_OBSERVER(m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
//主要是连接,断开事件,超时事件等
static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
{
ret_code_t err_code;
switch (p_ble_evt->header.evt_id)
{
case BLE_GAP_EVT_CONNECTED:
NRF_LOG_INFO("Connected"); //打印GAP连接信息
bsp_board_led_on(CONNECTED_LED); //LED2亮
bsp_board_led_off(ADVERTISING_LED); //LED1灭
m_

本文详细介绍了蓝牙设备的配置过程,包括时钟与晶振准确度设置、蓝牙时间注册与管理、链接数目及角色配置、MTU协商值设定以及UUID设置等关键步骤。适合蓝牙设备开发者参考。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



