.. _2.4G功能: 2.4G功能介绍 ======================================= | AW30N支持2.4G功能。 | 在本章将分4个部分进行介绍说明: #. ”:ref:`如何初始化为2.4G`“; #. ”:ref:`2.4G 如何与 标准蓝牙 相互切换`“; #. ”:ref:`2.4G 的收发等接口`“; #. ”:ref:`补充说明`“; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _如何初始化为2.4G: 如何初始化为2.4G ******************************* | 在蓝牙初始化前,设置 **2.4G配对码** 后即可正常使用2.4G功能; | 设置配对码调用 **rf_set_24g_hackable_coded(u32 coded)** 接口即可。 coded:配对码。 | 0:标准蓝牙; | 任意值:2.4G(建议该任意值为32位) | //无论是 **简易GATT服务** 或 **完整GATT服务** ,亦或是 **主、从机**,均采用该接口设置配对码。 | //若蓝牙初始化前没有调用该接口,则默认视为运行标准蓝牙。 .. note:: 注意设置了2.4G配对码后,只有 **相同配对码** 的主从设备才可以被互相发现。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 例如:在 **遥控器(从机)** 应用中: .. image:: slave_set_pairing_code.png :alt: "遥控器从机设置配对码“ :align: center .. centered:: 遥控器从机设置配对码“ 例如:在 **dongle(主机)** 应用中: .. image:: master_set_pairing_code.png :alt: "遥控器主机设置配对码“ :align: center .. centered:: 遥控器主机设置配对码“ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _2.4G 如何与 标准蓝牙 相互切换: 2.4G 如何与 标准蓝牙 相互切换 ************************************************************** 1. 标准蓝牙 与 2.4G相互切换步骤流程如下: | 1:查询当前设备蓝牙状态是否处于连接状态,若处于连接状态需要断开连接; | 2:若当前设备时 **主机** ,则关闭扫描; 若当前设备时 **从机**,则关闭广播; | 3:设置配对码; | 4:若当前设备时 **主机**,则打开扫描; 若当前设备时 **从机**,则打开广播; | 5:完成; //若用户使用的是 **v1.3.0版本及v1.3.0版本以前的版本** ,需要注意本章最后的 **补充说明**。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 下面举例 **简易GATT服务** 与 **完整GATT服务** 里如何切换 标准蓝牙 与 2.4G。 **1. 在简易GATT服务里:** .. image:: simple_gatt_switch_2.4G.png :alt: "简易GATT服务切换2.4G与标准蓝牙“ :align: center .. centered:: 简易GATT服务切换“ | //ble_slave_module_enable()接口函数里,已包含第一和第二点功能;(ble_master_module_enable()同理) | //代码如下: .. code-block:: c :linenos: /* 完整GATT服务的 从机切换2.4G 与 标准蓝牙 */ /* 从机切换 2.4G 与 标准蓝牙 */ ble_slave_module_enable(0); //关闭广播模块 rf_set_24g_hackable_coded(0); //设置为标准蓝牙 ble_slave_module_enable(1); //打开广播模块 /* 主机切换 2.4G 与 标准蓝牙 */ ble_master_module_enable(0); //关闭扫描模块 rf_set_24g_hackable_coded(0x01020304); //设置为2.4G ble_master_module_enable(1); //打开扫描模块 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **2. 在完整GATT服务的server端:** .. image:: complete_gatt_server_switch_2.4G.png :alt: "完整GATT服务server端切换2.4G与标准蓝牙" :align: center .. centered:: "完整GATT服务server端切换2.4G与标准蓝牙” | //ble_gatt_server_module_enable()接口函数里,已包含第一和第二点功能 | //代码如下: .. code-block:: c :linenos: /* 完整GATT服务的 从机切换2.4G 与 标准蓝牙 */ ble_gatt_server_module_enable(0); //关闭服务端模块 rf_set_24g_hackable_coded(0x23010203); //设置配对码 ble_gatt_server_module_enable(1); //打开服务端模块 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **3. 在完整GATT服务的client端:** .. image:: complete_gatt_client_switch_2.4G.png :alt: "完整GATT服务client端切换2.4G与标准蓝牙" :align: center .. centered:: "完整GATT服务client端切换2.4G与标准蓝牙“ | //ble_gatt_client_module_enable()接口函数里,已包含第一和第二点功能; | //代码如下: .. code-block:: c :linenos: /* 完整GATT服务的 主机切换2.4G 与标准蓝牙 */ ble_gatt_client_module_enable(0); //关闭客户端模块 rf_set_24g_hackable_coded(0x00010203); //设置配对码 ble_gatt_client_module_enable(1); //打开客户端模块 .. _2.4G 的收发等接口: 2.4G 的收发等接口 ************************************************************** 2.4G的收发数据等接口 与 蓝牙接口一致。 (即可以认为2.4G当做蓝牙使用,只不过比标准蓝牙多了一个设置2.4G配对码的操作) .. _补充说明: 补充说明 ************************************************************** 一、用户在使用 **v1.3.0版本及v1.3.0版本以前的版本** ,在处于蓝牙连接状态时去切换 标准蓝牙 与 2.4G ,会涉及到关闭了广播模块或者扫描模块后,小机发出断连事件后立马执行回连操作导致无法把配对码正常配入问题。 **问题原因:** 小机发出断连事件后,主机这边在断连事件处理的过程中,会进行不合理回连操作。 **解决办法:** 1)用户若使用 **简易GATT服务** ,则修改 **ble_master.c** 里的断连事件处理即可(见下图)。 .. image:: simple_gatt_fix_reconn.png :alt: "简易GATT服务解决不合理重连办法" :align: center .. centered:: "简易GATT服务解决不合理重连办法“ 2)用户若使用 **完整GATT服务** ,则修改 **ble_dg_central.c** 里的断连事件处理即可(见下图)。 .. image:: complete_gatt_fix_reconn.png :alt: "完整GATT服务解决不合理重连办法" :align: center .. centered:: "完整GATT服务解决不合理重连办法”