你好,我一直在尝试DA14580的基本设计,现在,还没有遇到任何成功。我对BLE还是个初学者,但我足够了解它现在应该可以工作了。我将从ble_app_barebone示例开始,并尝试在外部触发器上更改广告数据。当我运行这个示例而不做任何更改时,我可以在我的手机上看到广告。一旦我改变了源文件,我就再也看不到广告了。
安装过程如下:
- 采用村田开发板和包含DA14580核心的芯片和J-Link LITE外设。
- 要检测信号,我正在使用Android手机(Moto X 2013,支持BLE),其中一些扫描仪从Android App Store下载(蓝牙Le Scanner,RNF主控制面板)。我的笔记本电脑不幸的是不支持ble。
- 我的应用程序总是发布广告,并在外部触发器上定期更新广告数据。不需要连接。外部触发器正在工作(即,我成功地能够捕获一个按钮事件,并切换一个LED响应)。
- 我目前尝试首先使用无定向广告,这样我的代码将尽可能接近ble_app_barebone示例。一旦这个启动并运行,我计划将它切换到非连接广告。
.
目前,我有以下几个问题:
- 我如何知道BLE是否接受我试图让它使用的广告包?我可以查询BLE当前的广告功能的状态吗(例如,如果它是广告,它的数据是什么,等等)?
- 如果我使用非连接广告,但不改变示例中的任何其他设置,该设备还会被发现吗(以一种我手机上的BLE扫描仪会捕捉到它的方式)?是否有一个特定的Android扫描仪应用程序建议开发?
- 当更新广告数据时,我明白我必须停止广告数据,生成一个新的广告包,然后用新的包重新开始广告。那是正确的吗?
- 我知道最大数据包大小是31字节。这包括广告包结构内部的大小和类型吗?我听说其中三个字节是保留的,但是广告大小和类型在一起只包含两个字节。这三个保留字节是什么,我们必须显式地将它们包含在我们的广告数据结构中吗?另外,这些字段中的哪些被计算到数据长度字段中,哪些没有?例如,数据包长度字段本身是数据包长度的一部分吗?那么数据包类型字段呢?
- 有没有建议的资源如何使用Keil调试器?我担心我只是有点运行代码并查看它是否有效,这不是很有帮助。
- 有没有办法我可以打印tf()直接到Keil控制台?或者,是否有用于启动和运行UART的资源?UART和UART2之间的区别是什么(在Murata开发板上使用一个比另一个更合适)?我能够运行SDK附带的UART示例,但还没有成功地将UART支持合并到我的代码中。
.
我正试图按照UM-B-051中指定的API工作,当然当然会赞赏任何额外的资源。预先感谢您的帮助。
设备:
嗨swesbrj77,
1)你正在改变广告包,但你无法看到你的设备是否真的在做广告?如果广告成功你应该看到你的设备advrtising字符串的祝福电话,如果您使用的是赞成或专家工具包(嵌入一个电流测量电路必须能够看到3峰值,表明你的设备是3种不同的广告渠道)。如果你不能在电话上看到你的广告包,很可能是广告字符串有问题。
2)是的,你的手机应该能够发现非连接的广告包,没有特定的android ble应用程序,几乎所有可用的应用程序都能够跟踪广告字符串。
3)是的,为了更新广告字符串,你必须停止广告。
4)是的,广告字符串31字节,但3字节是强制性的,所以你不能有你的数据在所有31字节。这些字节是AD标志,请检查规范以获得更多相关信息。
5)你可以查看ARM keil的网站,获取更多关于keil的信息,或者对话的入门文档,获取如何下载代码到你的da的快速入门指南。
6)我们的大部分客户使用da的UART进行调试。您可以在文档UM-B-050第7节外设示例应用程序中找到如何使用UART,也可以在UM-B-051中查看UART的驱动程序。亚博国际官网平台网址这两个UART实现之间没有区别。请尝试以下链接http://support.dialog-semiconductor.com/sdk-5-uart.
谢谢mt_dialog.