(三)蓝牙样例工程分析

流程框图

在这里插入图片描述

代码详解

1.log初始化,并配置UART/RTT输出,非必须
2.定时器初始化,此定时器是基于RTC1的软件定时器,可以创建多个,必须的,主要有以下用途:
(1)按键消抖以及长按和短按
(2)定时驱动LED,和BLE时间配合实现BLE状态指示
(3)连接参数更新,连接成功后,开启APP定时器,超时后进行连接参数更新
(4)创建用户定时任务
3.按键和LED初始化,并提供了bsp_event_handler回调函数,当按键状态发生变化会调用此函数,同时配置了bsp_btn_ble_init函数,可以用按键休眠和启动蓝牙设备广播
4.电源管理初始化,nrf_pwr_mgmt_init函数分别初始化互斥量,初始化迭代器的函数,休眠初始化,调试管脚初始化,待机超时初始化,CPU使用率跟踪初始化
5.协议栈初始化,先请求使能softdevice并设置协议栈时钟,配置起始地址以及链接数目和角色,MTU,UID,GATT属性表,使能服务变化特征值,使能BLE协议栈,注册BLE事件回调函数
6.GAP初始化,设置GAP安全模式,设备名称,连接间隔,从机延时,超时时间
7.GATT初始化,定义了主机,从机最大MTU长度以及协商数据的长度
8.广播初始化,设置设备名称类型,是否包含外观,蓝牙设备模式,UID,广播类型,广播间隔,广播超时时间,广播事件回调函数,连接设置标志
9.服务初始化,初始化队列写入模块
10.连接参数更新初始化,从机发起
11.设备(配对)管理初始化
12.启动定时器
13.启动广播
14.进入system on(待机)状态,等待事件发生




发布了24 篇原创文章 · 获赞 1 · 访问量 1829

猜你喜欢

转载自blog.csdn.net/qq_27182175/article/details/101024257