【笔记分享】5340 设置public address 和 random address

本专栏由非官方人员 王小小海 所著,其内容主要记录了在开发5340的过程中遇到的一些问题和解决方法,还有一些应用的例程。作者本人也是在实践应用中遇到的问题,想着把这些问题分享给可能遇到的朋友。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

本专栏不涉及基础的安装和环境搭建问题,本例程开发使用最新版本的NCS 2.0.0开发,还请注意!。


所有分享内容

笔记分享

  1. 【笔记分享】NCS下radio_test添加FEM
  2. 【笔记分享】5340基于 BLE LBS 自定义网络核固件点亮LED并合并固件
  3. 【笔记分享】5340基于LBS自定义网络核双核DFU实现
  4. 【笔记分享】5340 设置public address 和 random address

NCS 下 5340 设置 public address 和 random address 记录

最近有朋友问我 5340 怎么设置public address 和 random address ,就写一个分享贴分享一下:

具体看代码分享:


void ble_set_mac(bt_addr_t* addr , uint8_t type) {

	struct net_buf *buf;
	int err;
	static bt_addr_le_t static_addr;
    // type == 0 为 public address
    if(type == 0)
    {    
        buf = bt_hci_cmd_create(SDC_HCI_OPCODE_CMD_VS_ZEPHYR_WRITE_BD_ADDR , sizeof(*addr));
        if(!buf) {
            LOG_WRN("BD Addr failed!");
            return ;
        }
        net_buf_add_mem(buf, addr, sizeof(*addr));
        err = bt_hci_cmd_send_sync(SDC_HCI_OPCODE_CMD_VS_ZEPHYR_WRITE_BD_ADDR , buf, NULL);
        if(err) {
            LOG_WRN("hci cmd send failed!");
        }
    }    
    else
    {
        memcpy(&static_addr.a.val , addr->val , 6);
        BT_ADDR_SET_STATIC(&static_addr.a);
        static_addr.type = BT_ADDR_LE_RANDOM;
        err = bt_id_create(&static_addr, NULL);
        if (err) {
            LOG_WRN("Failed to create ID");
        }
    }
}


void main(void)
{
    int ret;
	/* Enable Bluetooth. */
	ret = bt_enable(NULL);
	if (ret) {
		LOG_ERR("Bluetooth init failed (err %d)\n", ret);
		return;
	}
	
	// 一定要放在这里不然不能初始化成功
    ble_set_mac(&bt_addr , 0);

    ....
}

如果配置不成功,需要在pj.conf里面使能 CONFIG_BT_HCI_VS=y
和CONFIG_BT_HCI_VS_EXT=y


本系列文章大多数是本人遇到和解决过的问题,难有疏忽之处,有什么问题或者不明白的地方,欢迎留言询问!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值