已绑定手机
|
本文档旨在指导用户基于 801xH SDK 软件开发框架快速开发一个多从机的工程。在阅读本文档内容之前,推荐事先阅读《Fr8010x H 如何构建系统》文档,了解在 801xH SDK 软件开发框架下,应用工程如何建立和配置,应用程序入口函数,应用程序流程跳转,以及错误和处理措施。
构建一个多从机的系统分为以下几步
- 引用必要组件
- 入口函数初始化
- 按键响应处理
- GAP 事件回调函数
- 链接加密绑定操作
- Profile 数据接收与发送
下面几节将分别介绍每一步骤的详细过程。
引用必要组件
构建一个多从机系统会使用到 BLE 5.0 协议栈组件,外设驱动组件和非抢占式操作系统组件 三部分。
根据文档《Fr8010x H 如何构建系统》第二章介绍的步骤,创建一个 KEIL 的应用工程,然后将以上 3 部分组件的源代码或 lib 库文件引用到工程中。正常情况下,项目的目录树结构如下图所示:
该示例项目中包含了以下组成部分:
- library 目录下协议栈底层 lib 库。
- 中间件 modules 目录中 platform 和 patch 文件夹下 c 文件,
- Drivers 目录下,所有的外设驱动 c 文件
- 用户应用层程序组件。
在用户应用层组件中,一般使用 Proj_main.c 文件实现入口函数,ble_simple_central.c 文件实现 gap 事件回调函数处理,profile 创建 以 及 profile 事件回调函数。
按照文档《Fr8010x H 如何构建系统》第二章介绍的步骤设置好项目的编译与链接选项后,项目工程就建立完毕。
下面通过一个示例工程来介绍如何通过调用协议栈组件和外设驱动组件实现多从机的系统。
该示例工程的具体功能是,通过按键 PD6,PD7 按下后,在按键中断服务程序内,主动连接两个不同 mac 地址的对端设备,连接上对端
设备后,对链接进行绑定或加密操作,加密完成后,扫描对端服务集合,扫描动作结束后,在对对端服务的某个 UUID 属性进行读写操作。
入口函数
在第 3 个入口函数内,能调用所有的组件函数,包括协议栈组件和外设驱动组件,在本示例工程中,第 3 个入口函数内主要做如下初始化动作:初始化按键,设置本地设备名字,设置 GAP 事件回调函数,配置绑定管理功能,初始化绑定过程参数,创建 client profile。
示例代码
void user_entry_after_ble_init(void)
{
os_timer_init(&button_anti_shake_timer, button_anti_shake_timeout_handler, NULL); //初始化按键防抖软件定时器
pmu_set_pin_pull(GPIO_PORT_D, BIT(6)|BIT(7), true); //配置 PD6 和 PD7 脚默认为内部拉高,处于高电平
pmu_port_wakeup_func_set(GPIO_PD6|GPIO_PD7); //设置 PD6,PD7 做为按键,管脚拉低进中断服务程序。
//该按键中断函数为 pmu 模块功能,不担心 sleep 会禁止中断。
uint8_t local_name[] = "Simple Central";
gap_set_dev_name(local_name, sizeof(local_name)); //设置本地设备的名字
gap_set_cb_func(app_gap_evt_cb); //设置 GAP 事件回调函数
gap_bond_manager_init(0x32000,0x33000,8,true); //使能协议栈的绑定管理功能,设置 flash 地址 0x32000 存储绑
//定信息,flash 地址 0x33000 存储对端服务信息,一共支持 8 个不同 mac 地址的设备绑定信息存储。
gap_security_param_t param =
......
更多详细内容请下载附件查看
- 文件大小:
- 681.8 KB
- 下载次数:
- 2
-
本地下载
|
|