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

低成本蓝牙工具开发:手写无商用协议栈BLE扫描设备-设置扫描窗口和扫描间隔

7小时前
73
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇为上一篇文章的续作,将通过代码编写,实现 BLE 扫描窗口与扫描间隔的配置。

备注:本文最后会给出完整的代码。

二、阅读须知

本合集所使用的芯片为泰凌微8258芯片,读者也可以使用泰凌微的其他芯片来进行实验。

三、正文

1、扫描时序介绍

如上图所示,扫描时序是轮流在37,38,39通道进行循环扫描的,每一个通道所维持的时间称之为扫描间隔。扫描窗口的意思是在扫描间隔内,耗费了多少时间来进行扫描动作。读者需要注意,扫描窗口的大小不能大于扫描间隔。

2、增加扫描窗口和扫描间隔的宏定义

#define MY_SCAN_WINDOW 100#define MY_SCAN_INTERVAL 200

如上所示,我将扫描窗口定义为100ms,扫描间隔定义为200ms,

3、增加相关的计时变量

unsigned char my_scan_window;unsigned int my_scan_interval;unsigned int my_scan_index = 0;unsigned int my_scan_window_cnt = 0;unsigned int my_scan_interval_cnt = 0;

如上所示增加了一系列的计时变量。

4、编写设置扫描参数的函数

unsigned char my_set_scan_param(unsigned int scan_window,unsigned int scan_interval){    if(scan_window > scan_interval)        return 0;    my_scan_window = scan_window;    my_scan_interval = scan_interval;    return 1;}

上述的函数的功能为将扫描窗口和扫描间隔的值给到相应的变量。

相关推荐