花了多少时间我已经不想提起,但是至少还是有点成果的,分析了不少代码,也看了不少资料,发现比较接地气的东西还是比较少,不多花点时间积累,说实话很辛苦。
现在还没有足够的水平上升到蓝牙协议的层次,饭要一口一口吃,不然就消化不良了不是?所以还是慢慢来,记录一下探索蓝牙协议的过程,希望对像我一样白的新手会有帮助。
准备的开发板是keyfob,蓝牙芯片CSR1010,开发环境是CSR uEnergy SDK2.5.1,今天的内容是让射频工作起来,并且广播我们的名字,让其他蓝牙设备能够发现。
代码中设计到了固件库的部分函数,稍作说明:
1、设置设备地址,地址格式分为LAP低24位,UAP高8位,NAP无意义16位。(UAP和NAP是生产厂商的唯一标示码)当然我们做测试就不要担心了。
ls_err GapSetRandomAddress(const BD_ADDR_T *ra);
2、设置GAP模式。
参数一:设置角色(四种值);参数二:设置可见性(三种值);参数三:连接性(三种值);参数四:可否绑定(两种值);参数五:安全性(三种值)。
ls_err GapSetMode (gap_role const role, gap_mode_discover const discover, gap_mode_connect const connect, gap_mode_bond const bond, gap_mode_security const security);
3、设置广播间隙。
参数一二标示间隙最小值和最大值。
ls_err GapSetAdvInterval (uint32 const adv_min_us, uint32 const adv_max_us);
4、存储广播和扫描应答数据。
参数一:数据长度;参数二:数据;参数三:广