问题标签 [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.
bluetooth-lowenergy - 减少 Instant Passed (0x28) BLE 断开错误的发生
我正在 STM32 SPBTLE-1S 模块(BLE 4.2)上开发一个应用程序。该模块连接到 Raspberry Pi。
当连接质量较低时,有时会在达到连接超时之前断开连接,错误代码为0x28(原因:即时通过)。
当前的连接设置是:
Conn_Interval_Min: 10
Conn_Interval_Max: 20
从属延迟:5
Timeout_Multiplier:3200
阅读有关此类错误的更多信息,似乎发生在“无法执行包含瞬间的 LMP PDU 或 LL PDU,因为这将发生的瞬间已经过去”。这些包通常用于跳频或连接更新。就我而言,它们必须是频率希望的小包。
关于如何防止由“即时通过”错误导致的这些断开连接的任何想法?还是它们仅仅是 BLE 技术的结果?
c - bluenrg-ms/stm32F4 : Hci 数据包通过 spi
我正在开发一个开发 ble 通信的项目,但我在初始化和理解 ble 的返回帧时遇到了一些麻烦。
降低cs,测试头(0x0A,0x00,0x00,0x00,0x00)并在hci_reset(0x01,0x03,0x0C,0x00)之后直接发送HAL_SPI_TransmitReceive,我想从ble读取返回值。
因此再次降低 cs,测试标头 (0x0B,0x00,0x00,0x00,0x00) 并使用 HAL_SPI_TransmitReceive 发送虚拟数据。我得到这个帧:0x02、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00。
但从我目前所了解的情况来看,我应该得到类似:0x04,0x0E,0x04,0x01,0x03,0x0C,0x00。
有人可以指出我错在哪里吗?
workbench - ST Bluenrg-ms 示例代码
那里
有没有人尝试过 ST 为他们的 Bluenrg-MS 评估板提供的 4 个示例代码中的任何一个?
https://www.st.com/en/wireless-transceivers-mcus-and-modules/bluenrg-ms.html
示例代码从这里下载:
https://www.st.com/en/embedded-software/stsw-stlkt01.html
我尝试使用 stm32cubeide、AC6 和 atollic truestudio 打开示例项目,但它们都给我错误消息,例如:
在“构建项目”期间发生内部错误。java.lang.NullPointerException
基本上,有太多未解决的包含和变量,在我看来,调试/发布配置不正确。甚至 'uint32_t' 也未解决。我在不同的 PC 上尝试过同样的事情并得到相同的结果。
有没有人尝试使用这些示例代码?或者是否有任何其他示例代码可以作为该板的良好起点?
谢谢。埃里克
bluetooth-lowenergy - bluenrg-1 是否支持语音控制?
我正在致力于在 Bluenrg1/2 芯片上构建端到端通信,它是否支持音频命令并将其转换为数字信号,尽管它具有 PDM 流。任何人都可以对此提供更多见解。先感谢您
bluetooth-lowenergy - BlueNRG 错误的标题
我买了 ST 的 STEVAL-MKSBOX1V1 并想编写自己的库来创建一个 BLE 应用程序。
板上的 BLE 模块是 SPBTLE-1S,它安装了 BlueNRG-1,我编写了自己的固件,以便使用 SPI 协议进行通信。
使用引脚重置模块后,我从 MCU 向 BLE 模块发送读取请求,
我发送:
{0x0b,0x00,0x00,0x00,0x00}
我得到:
{0xff,0x08,0x00,0x06,0x00}
所以显然没什么好处,因为第一个字节是 0xff 而不是 0x02(对吗?),但第 4 位(0x06)应该指示读取缓冲区内的数据量。
如果我读取 6 个字节,我会得到
{0x04,0xff,0x03,0x01,0x00,0x01}
根据 AN4494,这正是我在模块复位事件后应该阅读的内容。
那么我的问题是为什么我不断收到 {0xff,0x08,0x00,0x06,0x00} 而不是 {0x02,....} 之类的东西?
BlueNRG1 与 BlueNRG2 有什么不同吗?(很难找到好的文档)
如果有人对这个模块的 SPI 通信有一些经验,我想咨询一下。
提前致谢
c - STM BlueNRG-MS 最大特征长度
我的一般理解是 BLE 标准支持的特征长度最大为 512 字节。我正在使用 STM 的 BlueNRG-MS 芯片,但是添加特征的函数调用具有长度参数的 uint8_t 值
所以这将只允许 255 个字节的最大特征长度。根据本文档,堆栈本身支持 2 个字节,固件版本为 7.2 或更高版本。我有 7.23 所以这应该没问题,但我找不到任何支持charValueLen
类型调用的 BlueNRG-MS 中间件的参考或示例uint16_t
。我还下载了最新的 STSW-BLUENRG-DK,示例也只支持uint8_t charValueLen
.
flutter - 解码 Ble 数据原始颤动
我正在使用 flutter_blue 库开发一个颤振应用程序来连接 STMicroelectronics 的 BlueNRG-tile。我正在接收来自所需特征的原始数据,然后我注意到能够使用 utf8.decode() 函数将它们转换为字符串。
这是接收到的数据作为列表和问题。
st板中的代码:
谢谢你。
stm32 - BlueNRG BLE 堆栈广播
BlueNRG BLE Stack Api 是否提供特征广播的可能性,还是我必须通过调用相应的手动执行此操作aci_gatt_update_char_value
?
c - BlueNRG 蓝牙:读取中央设备名称
我在外围设备上使用 STM BlueNRG-MS 芯片,连接后我想读取连接的中央设备(安卓手机)的名称。
我以为我可以直接在user_notify
注册为 hci 回调的例程中执行此操作
因此,在EVT_LE_CONN_COMPLETE
活动中,我使用为中央设备提供的句柄,并使用aci_gatt_read_using_charac_uuid()
设备名称(uuid 0x2a00)读取我认为的特征。
长话短说,它不起作用。我不确定的第一件事是,它的start_handle
andend_handle
参数是什么aci_gatt_read_using_charac_uuid()
,它返回ERR_INVALID_HCI_CMD_PARAMS
.
有人可以在这里阐明一下吗?
更新
让我感到困惑的是,BlueNRG-MS 编程指南aci_gatt_read_using_charac_uuid()
中没有提到该函数。
update2
我将函数调用更改为,aci_gatt_read_using_charac_uuid(cc->handle, 0x0001, 0xffff, UUID_TYPE_16, (uint8_t*)&uuid);
但我仍然得到ERR_INVALID_HCI_CMD_PARAMS
. 哪个参数甚至可能无效?uuid 存在,如果我将 BlueNRG GUI 与蓝牙加密狗一起使用,我可以读取设备名称。
update3
有没有人使用过这个功能或以某种方式设法从中央设备读取特征?我非常感谢任何帮助或提示。
python - BlueNRG-X Flasher Utility 无法识别 SWD 连接 (ST-link/V2)
连接 ST-link/V2 时,BlueNRG-X Flasher Utility 无法识别 SWD 连接。我正在通过命令行界面运行闪光灯以获取错误消息(BlueNRG-X_Flasher_Launcher.exe)。出现的错误信息是:
似乎没有找到一些 python 后端文件。我将 libusb-1.0.dll 复制到 windows\system32 并添加到路径,但它没有解决问题。