NRF52833/nrf52840笔记(19)sd_ble_gap_scan_start主机扫描的使用
发布日期:2021-06-29 05:35:55 浏览次数:4 分类:技术文章

本文共 1612 字,大约阅读时间需要 5 分钟。

1平台条件

《1》软件平台:nRF5_SDK_17.0.0_9d13099

《2》硬件平台: nRF52833/nRF52840

2 扫描代码函数

// 扫描参数 初始化uint8_t m_scan_data[255];ble_data_t const m_scan_buf ={
.p_data =m_scan_data, .len =BLE_GAP_SCAN_BUFFER_MIN //31 Byte};const ble_gap_scan_params_t m_scan_params ={
.extended = 0,//ɨÃè´ó¹ã²¥°ü .report_incomplete_evts =0, .active = 1,//1=主动扫描;0=被动扫描 .filter_policy=BLE_GAP_SCAN_FP_ACCEPT_ALL, .scan_phys =BLE_GAP_PHY_1MBPS, .interval = MSEC_TO_UNITS(2500,UNIT_0_625_MS) , .window = MSEC_TO_UNITS(2000,UNIT_0_625_MS) , .timeout = 0, .channel_mask =0, // ÐŵÀ£¬´ó¹ã²¥ÔÚ0-37};/*****************************************扫描函数开始*mode =1;时,第一次开始扫描*mode =2: 第一次开始扫描后,需要再次恢复扫描(不带扫描参数)*****************************************/void ble_start_scan(uint8_t mode){
ret_code_t err_code; if(mode==1) {
err_code = sd_ble_gap_scan_start(&m_scan_params, &m_scan_buf); } else//=2 {
// Resume the scanning. err_code = sd_ble_gap_scan_start(NULL, &m_scan_buf); } BLE_RTT("scan result:%x\r\n",err_code); if (err_code != NRF_ERROR_INVALID_STATE) {
APP_ERROR_CHECK(err_code); }}

注意点:需要在这个事件里面继续恢复扫描,否则会停止扫描,不会继续扫描

第一次使用
在这里插入图片描述

在这里插入图片描述

3:扫描long range广播包

设置扫描参数如下:

// scan para init=======================ble_gap_scan_params_t  m_scan_params ={
.extended = 1,// .report_incomplete_evts =0, .active = 1, // 配置为1则是主动扫描,0则是被动扫描 .filter_policy=BLE_GAP_SCAN_FP_ACCEPT_ALL, .scan_phys =BLE_GAP_PHY_CODED, .interval = MSEC_TO_UNITS(2500,UNIT_0_625_MS) , .window = MSEC_TO_UNITS(2000,UNIT_0_625_MS) , .timeout = 0,// .channel_mask =0, // 信道};

可以加入QQ群:687360507

与大伙沟通交流,技术在于分享而进步

转载地址:https://blog.csdn.net/zhi_Alanwu/article/details/108576198 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:(三)Linux常用命令大全(非常全!!!)
下一篇:NRF52833/nrf52840笔记(18)广播设置Longrange 模式(拓展大广播包)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月25日 13时17分35秒