Firefly开源社区

打印 上一主题 下一主题

广播数据的MAC地址

46

积分

0

威望

0

贡献

游客

积分
46

广播数据的MAC地址

发表于 2015-6-3 12:34:58      浏览:10970 | 回复:8        打印     [复制链接] 楼主
在BLE发送广播时,手机可以扫描到BLE发出的广播数据,其中有设备名和MAC地址;但是我看app_set_adv_data()的时候没有发现把MAC地址广播出去吖。只是从NVDS中读取设备名并广播出去,但是手机却可以扫描到MAC地址。其中在初始化时调用的app_gap_read_bdaddr_req()以及响应app_gap_read_bdaddr_req_cmp_evt_handler()函数,只是得到的MAC地址并把它定入struct gap_read_bdaddr_req_cmp_evt里去吖,广播时是怎么广播地址出去的呢?这是为什么呢?求大神解决。
回复

使用道具 举报

46

积分

0

威望

0

贡献

游客

积分
46
发表于 2015-6-3 15:30:25      沙发
FireBLE_blue 发表于 2015-6-3 14:42
空中传播的广播包都包含了 设备的mac 地址,这个地址在蓝牙初始化的时候就已经通过hci 命令写入写入模块, ...

写入模块?MAC地址不是写在NVDS上了吗?你说的是在蓝牙初始化时,已经通过HCI命令写入模块是啥意思?
回复

使用道具 举报

46

积分

0

威望

0

贡献

游客

积分
46
发表于 2015-6-3 20:25:18      板凳
FireBLE_blue 发表于 2015-6-3 16:13
MAC 地址是保存在NVDS ,蓝牙协议栈初始化蓝牙部分的时候,读取nvds 的MAC,写入了蓝牙模块(也就是蓝牙 ...

那我的理解是:
1、MAC地址是一出厂时,就已经写在了NVDS上了。在初始化过程中,会读取nvds的MAC地址,并写入到存放MAC地址信息的结构体gap_read_bdaddr_req_cmp_evt中去,对吗?
2、初始化完毕之后,当我要发送广播时,在app_set_adv_data里只是设置了设备名,BLE模块是在哪里把mac地址通过广播包发送出去的?我看adv_data[]数组里只有设备名,并没有mac地址在里面吖?我的意思是想知道mac地址是在哪里加到广播包并发送出去的?
回复

使用道具 举报

46

积分

0

威望

0

贡献

游客

积分
46
发表于 2015-6-4 12:04:52      地板
FireBLE_blue 发表于 2015-6-4 10:10
1.MAC 在出厂时默认有一个保存在NVDS上,NVDS是可以修改的哦,也就是MAC也是可以改的;在初始化的时候会 ...

大感谢,现在清楚了,谢谢:lol
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表