nrf52832 广播

在广播中加入名称:设置广播数据结构体 ble_advdata_t成员中名称类型即可;

init.advdata.name_type = BLE_ADVDATA_FULL_NAME;//广播中加入的名称类型:全称

在广播中加入UUID

在广播中加入名称,UUID,在广播回包中加入MAC地址:

void LE_Advertising_Init (void)
{
	ret_code_t err_code;
	ble_advertising_init_t init;

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

	init.advdata.name_type = BLE_ADVDATA_FULL_NAME;//广播中加入的名称类型:全称
	init.advdata.include_appearance = false;//不包含外观
	init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;//Flag:一般可发现模式,不支持 BR/EDR
	init.advdata.uuids_complete.uuid_cnt = sizeof (BLE_ADV_UUIDs) / sizeof (BLE_ADV_UUIDs[0]);
	init.advdata.uuids_complete.p_uuids = BLE_ADV_UUIDs;//广播中加入UUID

	init.config.ble_adv_fast_enabled = true;//启动快速广播
	//设置广播间隔和广播持续时间
	init.config.ble_adv_fast_interval = BLE_ADV_INTERVAL;
	init.config.ble_adv_fast_timeout = 0;

	init.evt_handler = on_adv_evt;//注册回调函数

	//=======添加广播回包========== 
	//定义一个数组,存放自定义的数据,因为 ble_advdata_manuf_data_t 中
	//是通过指针来引用数据的,所以必须要定义存放自定义数据的变量,将
	//变量的地址赋值给 ble_advdata_manuf_data_t
	uint8_t my_adv_manuf_data[6];
	//获取mac地址
	ble_gap_addr_t bleAddr;//定义结构体变量
	sd_ble_gap_addr_get(&bleAddr);//调用获取地址函数
	for(uint8_t i = 0; i < 6; i++)//将地址赋值给
	{
			my_adv_manuf_data[i] = bleAddr.addr[5 - i];    // 逆序赋值MAC地址
		#ifdef DEBUG
			NRF_LOG_DEBUG("bleAddr:%02x", my_adv_manuf_data[i]);  
		#endif
	}
	ble_advdata_manuf_data_t manuf_specific_data;//广播数据结构体中的 p_manuf_specific_data
	//初始化 厂商自定义数据
	manuf_specific_data.company_identifier = 0x0201;//制造商 ID,0x0059 是 Nordic 的 ID
	manuf_specific_data.data.p_data = my_adv_manuf_data;//指向制造商自定义的数据
	manuf_specific_data.data.size = sizeof(my_adv_manuf_data);//制造商自定义的数据大小(字节数)
	init.srdata.p_manuf_specific_data = &manuf_specific_data;//广播回包中加入制造商自定义数据
//	init.advdata.p_manuf_specific_data = &manuf_specific_data;//广播回包中加入制造商自定义数据
	//=================
	//初始化广播
	err_code = ble_advertising_init (&BLE_ADVERTISING_INS, &init);
	APP_ERROR_CHECK (err_code);

	ble_advertising_conn_cfg_tag_set (&BLE_ADVERTISING_INS, APP_BLE_CONN_CFG_TAG);
	err_code = sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV, BLE_ADVERTISING_INS.adv_handle, 8);
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值