nrf51822 --- 固定广播通道

1.目的

    是蓝牙广播固定在一个通道上面广播。

2.分析

  蓝牙4.0共有3个广播信道和37个数据信道,3个广播信道分散在ISM频段的不同区域,如果他们集中在某个频段,则可能因为这个频段的深度衰弱而造成所有广播无法进行。因        此,各个广播信道直接至少相差24mhz

其中3个固定广播通道为:37, 38, 39,

3.平台:

协议栈版本:SDK10.0.0

编译软件:keil 5.14

硬件平台:nrf51822最小系统

例子:SDK 10.0.0\examples\ble_peripheral\ble_app_uart\pca10028\s110\arm4

4.步骤

ble_gap.h中

/**@brief Channel mask for RF channels used in advertising and scanning. */ 
typedef struct
{
  uint8_t ch_37_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 37 */
  uint8_t ch_38_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 38 */
  uint8_t ch_39_off : 1;  /**< Setting this bit to 1 will turn off advertising on channel 39 */
} ble_gap_adv_ch_mask_t;

可以看到设置为1为关闭,设置为0 为打开

在#include "ble_advertising.h"中  

uint32_t ble_advertising_start(ble_adv_mode_t advertising_mode)

中添加如下代码

    memset(&adv_params, 0, sizeof(adv_params));

    adv_params.type        = BLE_GAP_ADV_TYPE_ADV_IND;
    adv_params.p_peer_addr = NULL;
    adv_params.fp          = BLE_GAP_ADV_FP_ANY;
    adv_params.p_whitelist = NULL;
		
    adv_params.channel_mask.ch_37_off = 0 ;    //打开37通道
   adv_params.channel_mask.ch_38_off = 1 ;  //关闭38通道
   adv_params.channel_mask.ch_39_off = 1 ;  //关闭39通道




要不要广播的信道设置为1,0表示这个信道使用!!!



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值