你好,
我目前在连接模式下使用DA14580 BLE模块和5.150.2版本的代码。我想使用信标模式项目的模块,并配置它发送Eddystone数据包。你知道我是否要改变计划吗?如果是,你能告诉我哪一个我应该下载这些在您的网站上,我应该改变?
提前谢谢
你好,阿沃艾,
Beacon项目使用的是一个非常老的SDK,所以以它为例,修改它以支持EDDYSTONE格式,这不是我的建议,你可以做的是以Beacon为例作为参考(为了检查与Beacon相关的配置,不可连接的广告,等等)并使用barebone示例作为项目的基础。为了实现EDDYSTONE,您只需根据EDDYSTONE规范格式化设备的广告字符串。
如果您正在寻找快速和肮脏的东西,只需将信标参考设计的广告字符串更改为Eddystone格式,您只需下载信标并更改信标使用的广告字符串(在nvds\u TAG\u APP\u BLE\u ADV\u DATA的nvds.c文件中),并根据长度减少ADV\u DATA\u TAG\LEN的长度,如下所示:
.nvds_tag_app_ble_adv_data = {0x03,0x03,0xa,0xfe,0x15,0x16,0xa,0xfe,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x05,0x06,0x07,0x08,0x09,0x0a,0x08,0x09,0x0a,0x0b,0x00,0x03,0x00,0x02},
.ADV\u DATA\u TAG\u LEN=26,
谢谢mt_dialog.
谢谢你的回复,我会试试的
我最终选择了beacon项目:你的网站上提供的3.40.6.0版本。
我可以用狙击手看到BLE模块。
现在我尝试通过SPI将数据从uC发送到BLE模块。这部分看起来是工作的,因为我可以检查引脚上的SPI数据流。但当我使用狙击手的BLE不发送任何东西(或它看起来像)。
你知道我是否需要修改原始项目中的一些东西来让它工作吗?
此外,我看到在BLE项目中SPI是在主模式下配置的,而在我的例子中,我是在从模式下使用它的。我试着改变了几件事,但还是不起作用。
信标参考设计没有实现从外部ucontroller接收来自SPI接口的数据并填充广告字符串的功能,这是您必须应用的实现,信标所做的是从外部SPI flash从特定的报头和特定的地址读取数据,并用从flash读取的数据填充广告字符串。
我相信您已经对此有了一个定制的实现,应该如下所示:
考虑到您没有看到设备广告的事实,并且由于您正在从外部控制器获取数据(确保您看到了,检查您存储来自SPI交互的数据的缓冲区),广告字符串可能是错误的(重复的标记等)。因此,如果您从外部设备获取数据并发送播发命令(GAPM\u START\u advertive\u CMD),则此命令应使用GAPM\u CMP\u EVT(如果未执行)进行回复,并应返回一个状态(已取消),因此请检查该回调,从中可以得到设备未播发的提示。另外,我建议您的项目使用最新的SDK,而不是使用beacon参考设计,它构建在更旧的SDK之上。例如,您可以检查ble\u app\u barebone项目。
你好,阿沃艾,
Beacon项目使用的是一个非常老的SDK,所以以它为例,修改它以支持EDDYSTONE格式,这不是我的建议,你可以做的是以Beacon为例作为参考(为了检查与Beacon相关的配置,不可连接的广告,等等)并使用barebone示例作为项目的基础。为了实现EDDYSTONE,您只需根据EDDYSTONE规范格式化设备的广告字符串。
如果您正在寻找快速和肮脏的东西,只需将信标参考设计的广告字符串更改为Eddystone格式,您只需下载信标并更改信标使用的广告字符串(在nvds\u TAG\u APP\u BLE\u ADV\u DATA的nvds.c文件中),并根据长度减少ADV\u DATA\u TAG\LEN的长度,如下所示:
.nvds_tag_app_ble_adv_data = {0x03,0x03,0xa,0xfe,0x15,0x16,0xa,0xfe,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x05,0x06,0x07,0x08,0x09,0x0a,0x08,0x09,0x0a,0x0b,0x00,0x03,0x00,0x02},
.ADV\u DATA\u TAG\u LEN=26,
谢谢mt_dialog.
你好,
谢谢你的回复,我会试试的
你好,
我最终选择了beacon项目:你的网站上提供的3.40.6.0版本。
我可以用狙击手看到BLE模块。
现在我尝试通过SPI将数据从uC发送到BLE模块。这部分看起来是工作的,因为我可以检查引脚上的SPI数据流。
但当我使用狙击手的BLE不发送任何东西(或它看起来像)。
你知道我是否需要修改原始项目中的一些东西来让它工作吗?
此外,我看到在BLE项目中SPI是在主模式下配置的,而在我的例子中,我是在从模式下使用它的。我试着改变了几件事,但还是不起作用。
提前谢谢
你好,阿沃艾,
信标参考设计没有实现从外部ucontroller接收来自SPI接口的数据并填充广告字符串的功能,这是您必须应用的实现,信标所做的是从外部SPI flash从特定的报头和特定的地址读取数据,并用从flash读取的数据填充广告字符串。
我相信您已经对此有了一个定制的实现,应该如下所示:
考虑到您没有看到设备广告的事实,并且由于您正在从外部控制器获取数据(确保您看到了,检查您存储来自SPI交互的数据的缓冲区),广告字符串可能是错误的(重复的标记等)。因此,如果您从外部设备获取数据并发送播发命令(GAPM\u START\u advertive\u CMD),则此命令应使用GAPM\u CMP\u EVT(如果未执行)进行回复,并应返回一个状态(已取消),因此请检查该回调,从中可以得到设备未播发的提示。另外,我建议您的项目使用最新的SDK,而不是使用beacon参考设计,它构建在更旧的SDK之上。例如,您可以检查ble\u app\u barebone项目。
谢谢mt_dialog.