本帖最后由 东东3 于 2024-12-2 11:47 编辑
一、蓝牙广播基本概念 蓝牙广播是指蓝牙设备通过发送广播数据包来向外传递信息,而无需与其他设备建立连接。这种方式广泛应用于智能家居、可穿戴设备、位置服务和医疗健康等领域。蓝牙低功耗(BLE)设备通过这种方式可以被其他设备(如手机、中央设备)发现和识别。 广播包收发的例程在SDK中PhyPlusPhy目录下,以smart_nrf为例介绍使用方法。需准备两个蓝牙模块,一个配置为发送端一个为接收端,烧录程序后可使用接收端串口查看发送端发送的数据。
二、收发模式选择 初始化函数中共有两个部分,分别为配置蓝牙广播基本配置与收发模式的选择 - void osalInitTasks( void )
- {
- uint8 taskID = 0;
- tasksEvents = (uint16*)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
- osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));
- /* Application */
- PhyPlusPhy_Init( taskID++ );//参数配置
- Smart_nRF_Init(taskID++);//选择收发模式
- }
复制代码系统默认使用检测P0端口电平配置收发模式,高为发送、低为接收,在进行二开时可根据自己需求直接配置相应模式 三、广播包发送 在参数配置函数中可中有设置广播报文格式: s_pubAddr为接收需要匹配的校验字段 s_pktCfg.pduLen广播数据长度 advHead为设置广播数据帧头标识与数据长度 在Smart_nRF_ProcessEvent事件处理任务中用户可根据实际需要修改advertData内容,再调用phy_rf_start_tx();函数发送一次广播。 四、广播包接收 接收部分处理官方已经为我们处理好了,直接追到phy_plus_phy.c文件下,数据会存储在pData数组中,在接收后可新建一个缓存BUFF将刚播数据存储起来。 接收的数据格式为:包头+校验+数据 除此之外还包括了数据信号值、频率及字符宽度
|