问题标签 [bluenrg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iar - STEVAL-IDB008V1 的测试应用程序
我想为 STEVAL-IDB008V1 板(BlueNRG-2)制作一个简单的测试应用程序。使用 BlueNRG-2 Navigator,我可以测试电路板并在电路板上加载一些演示应用程序。现在我想编写一个自己的应用程序来做一些非常简单的事情,比如闪烁一个板载 LED。我正在使用 ST-Link v2 进行闪存编程。现在我尝试过:
- 我使用 Atollic True Studio 并为我的特定板构建了他们的演示应用程序。我在 0x08000000 处刷新了生成的 .bin,但它不起作用,然后我使用了引导加载程序,我在 Navigator Files 中找到并在 0x08000000 处刷新了它,然后在 0x08003000 处刷新了我的程序的 .bin(这是同事告诉我的)。也没有工作
- 我尝试按照 Navigator 的说明导入和构建其中一个演示。在 0x08000000 和 0x08003000 处闪烁它,使用 0x08000000 处的装载机。没用。
- 我尝试了 IAR Embedded Workbench,结果相同
以下是 IAR 作为整个项目的最新尝试、Bootloader.bin、作为 .bin 的 atollic 演示以及上一次 IAR 尝试中的 bin (Hello_world(1).bin):https ://drive.google.com/驱动器/文件夹/1EK16akogtyGsY6koiQx21PDFnjVtb9__?usp=sharing
使用“Dindn't work”我的意思是我可以在没有可见结果的情况下将它闪烁在板上。我阅读了很多数据表并没有找到解决方案。提前感谢我得到的每一个帮助。
bluetooth-lowenergy - 需要帮助以更深入地了解 BLE
我必须在嵌入式设备上编写一个 BLE 应用程序,并且有一些功能我不确定 BLE 是否支持它,或者我是否必须为所有内容创建一些包装器,或者它是否可能根本不可能。我在互联网上找到的关于蓝牙和 BLE 的一般描述通常只涵盖整体功能,但不会太详细。如果这篇文章变得太复杂,我会将它分成不同的较小的。
我用的是STM32 BlueNRG-MS芯片
1. 可发现性(已解决)
如果有多个设备可以访问,用户必须能够禁用 BLE 功能。我看到有功能aci_gap_set_discoverable()
,或者aci_gap_set_non_discoverable()
尽管我将其设置为不可发现,但我仍然可以在我的手机上的 LightBlue 应用程序中看到它。如何正确禁用设备的 BLE 功能以确保没有人可以看到或连接到它?
更新:好吧,这是我的错误,如果我调用该aci_gap_set_non_discoverable()
函数,它实际上是不可发现的。所以没关系。
2.只接受配对设备的连接
我想实现这样的行为,如果您有一部未配对的手机,您必须将 BLE 设备设置为配对模式才能连接。如果手机已经配对,无论当前是否处于配对模式,BLE 设备都应接受连接请求。这是白名单应该存在的内容,还是我必须在成功配对后通过保存设备地址手动执行此操作?如果白名单是正确的方法,我读到较新的手机会导致白名单出现问题,因为它们会定期更改地址,我该如何处理?这实际上就是我认为我要使用“可发现性”的地方。
3.自动重连
我不确定这个话题是否必须在 BLE 设备或手机上处理。例如,我的手机与我的汽车收音机配对,所以只要手机在车内,它就会自动连接 - 这是如何完成的?我认为它仍然是充当中央设备的电话吗?
bluetooth-lowenergy - BlueNRG-MS 只允许已知设备连接
我有一个带有 STM BlueNRG-MS 芯片的 BLE 外围设备。我使用 bluenrg API。外围设备通常应该是可发现的,但应该只允许连接已知设备。
我想我可以通过检查回调bdaddr
中的中央设备来实现这一点,EVT_LE_CONN_COMPLETE
并根据地址是否已知,我将允许连接。此外,我将有一个配对模式,我接受所有传入的连接请求,并将新的中央设备添加到已知设备列表中。
我的问题是它bdaddr
不是恒定的,而是在一段时间后发生变化,所以我不重新定位中央设备。我该如何克服这个问题?实现大多数已知蓝牙设备提供的此功能的正确方法是什么?
更新:
似乎可以使用该功能来实现该行为
之后,即使我将可发现性设置为 ,设备也是可发现的WHITE_LIST_FOR_ALL
。我现在的问题是白名单似乎不是持久的,如果我重新启动设备,我必须再次进入配对模式才能看到它。有人知道我如何保存白名单吗?
做什么aci_gap_configure_whitelist()
?因为如果我调用这个函数,我的白名单似乎会被删除。
更新 2 :
在 STM 文档 PM0257(第 3.10.1 节)中,我找到了对我正在寻找的程序的参考。所以我认为这是向前迈出的一步。问题是aci_gap_add_device_to_resolving_list
我的 bluenrg API 中不存在引用的函数。知道我应该改用什么吗?
bluetooth-lowenergy - STM BlueNRG 最大服务
我也在 STM 社区论坛上发布了这个问题,但你很少能在那里真正得到帮助
我正在努力获取有关如何确定 aci_gatt_add_serv() 函数的 max_attr_records 值的正确数字的详细信息。
我知道服务本身需要 1 个,然后每个特征至少需要 2 个,但还有什么需要属性记录?
假设我有以下特点
产生的属性记录数是多少?我想出了4,但我不确定这是否正确。
此外,总属性记录似乎是有限制的,因为我只能添加非常有限数量的服务。这个限制是如何定义的?
c - BlueNRG1 上的 BlueNRG_Stack_Initialization 错误 0x48
我在对 Bluenrg1 进行编程时遇到了困难,更具体地说,是在尝试在其上启动 BLE 模式时。
BlueNRG_Stack_Initialization方法返回 0x48,它指的是BLE_STATUS_OUT_OF_MEMORY
. 所有这一切都发生在 bluenrg1 和 bluenrg2 的 DK 版本 3.2.2 中。
我可以得到 3.2.1 版本的 DK,它运行良好。经过一些研究,我发现了导致错误的值,我将发布我自己的问题的解决方案,以帮助遇到同样问题的任何人。