• 正文
  • 相关推荐
申请入驻 产业图谱

BLE主机实战:打印广播信息

08/18 08:46
173
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇为介绍BLE主机的第一篇文章,内容会介绍SDK的下载,demo的使用,以及广播信息的打印。

二、阅读说明

1、泰凌微芯片学习者。2、蓝牙 spec学习者三、正文1、SDK的下载

官方网址:https://www.telink-semi.cn/products/bluetooth-le/tlsr825x

2、主机demo的选择

如上图所示,使用的demo为ble_master_kma_dongle

3、确定打印引脚

/////////////////////////////////////// PRINT DEBUG INFO ///////////////////////////////////////#if (UART_PRINT_DEBUG_ENABLE)    #define DEBUG_INFO_TX_PIN                               GPIO_PB5    #define PULL_WAKEUP_SRC_PB5                             PM_PIN_PULLUP_10K    #define PB5_OUTPUT_ENABLE                               1    #define PB5_DATA_OUT                                    1 //must#endif

如上图所示,打印引脚为PB5,这个打印引脚读者可以自行更改

4、确认扫描参数和开关

    /* set scan parameter and scan enable */    blc_ll_setScanParameter(SCAN_TYPE_PASSIVE, SCAN_INTERVAL_100MS, SCAN_INTERVAL_100MS,                                OWN_ADDRESS_PUBLIC, SCAN_FP_ALLOW_ADV_ANY);    blc_ll_setScanEnable (BLC_SCAN_ENABLE, DUP_FILTER_DISABLE);

如上图所示,扫描参数和扫描开关函数在app.c文件中的user_init()中,由上图可以看出,该扫描是属于被动扫描,扫描窗口和扫描间隔是相等的为100ms,扫描使能是打开的。

关于扫描窗口和扫描间隔定义如下:

如上图所示,扫描是在37,38,39通道上轮流的进行,扫描窗口的意思为在一个扫描间隔里面RX开通的时间。

5、确认广播报告的回调函数

如上图所示,当接收到广播信息的时候,会进入controller_event_callback函数中,进而进入HCI_SUB_EVT_LE_ADVERTISING_REPORT的条件判断中,之后会进入blm_le_adv_report_event_handle函数。

6、增加打印代码

    printf("adv report:n");    for(int i = 0; i < pa->len; i++)    {        printf("0x%02x ", pa->data[i]);    }    printf("n");

如上图所示,在blm_le_adv_report_event_handle函数中增加打印的代码

7、结果展示

7.1、开发工具展示

7.2、串口展示

无任何数据打印出来。

四、结尾

本篇主要讲解了与ble主机广播有关的内容,本来是想将广播信息打印出来的,不过出了点意外,没打印出来,今天我再查一下问题的原因,明天将问题的原因通过文章的方式发出来。

相关推荐