问题标签 [nrf52]

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.

0 投票
1 回答
1103 浏览

nrf52 - 使用 nRF52840 构建 OpenThread 应用程序的起点

我是 nRF52840 和 OpenThread 平台的新手,我正在寻找使用nRF52840 Micro Dev Kit USB Dongle构建传感器应用程序的示例代码。

我设法将 Raspberry Pi 设置为边界路由器,构建和刷新ot-cli-ftd,并使用 NCP 和其他两个节点设置 OpenThread 网络。

我在 OpenThread 或 nRF 网站上没有找到“对制造商友好”的示例应用程序,例如结合 OpenThread-CLI 和一些自定义代码,用于通过 I2C 或 SPI 读取传感器数据并通过 MQTT(或 MQTT-SN )。

是否有示例如何为 nRF52840 加密狗构建这样的应用程序?

我知道我必须小心在我的固件映像中添加 USB 和引导加载程序支持以避免“变砖”加密狗(它们没有 JLink 接口,所以 AFAIK 刷新它们的唯一方法是通过 DFU 引导加载程序),所以我更愿意从一些工作示例开始。

0 投票
1 回答
436 浏览

uart - 什么是 nRF UART 以及在 NRF52 DK 上实现 nrf UART 应用程序需要什么?

我有一个 nrf52 板,我可以通过 USB 连接到板。我下载了一个硬件配置文件来检查功能,该设备就像一个 BLE,我能够与之通信。但是有人说现在在设备上实现 UART 我不知道这是什么?

有这个带有UART示例的北欧工具箱,但我的板子无法连接到这个,这是为什么?

我希望这个 NRFtoolbox UART 连接到我的电路板,这是如何实现的?

0 投票
0 回答
56 浏览

c++ - 将变量地址重铸为整数

根据 NRF52840 微控制器数据表,数据包指针是“用于下一次发送或接收的数据包地址。发送时,该地址指向的数据包将被发送,接收时,接收到的数据包将写入此地址地址。” 使用直接寄存器寻址,我试图将变量的地址分配给指向 NRF52 的数据包指针寄存器地址的取消引用指针。代码编译没有错误,并且正在发送一条消息,但收到的数据不是我打算发送的。因为这是我第一次需要重铸一个指向 int 的指针,所以我认为我做错了。

Cplusplus.com说 reinterpret_cast “......也可以将指针转换为整数类型或从整数类型转换。” 我在这里也发现应该遵守正确的类型。有人可以看看我的 Radio::read 函数并验证 reinterpret_cast 的正确用法吗?

接收无线电信号在另一无线电启动传输后几乎立即接收;但是,发送单个字节的数据会导致在另一端读取完整的 4 个字节。

0 投票
0 回答
933 浏览

c++ - 如何在 Zephyr OS 中启用远程 BLE Mesh

我正在研究蓝牙网状网络解决方案,我需要增加范围。

我正在使用 nrf52840 DK 和 nrf52840 加密狗,nrf5SDKforMeshv310。在 Nordic Devzone 中,我找到了在 NRF SDK 中为网格启用 BLE 远程模式的解决方案。

笔记!我知道解决方案不符合蓝牙 Mesh 标准。

Mesh v310 的 nrf5 SDK 应用了以下更改:

  1. 在 Advertisement.c 中,set_default_broadcast_configuration() 将 radio_mode 更改为使用 RADIO_MODE_NRF_62K5BIT 而不是 RADIO_MODE_BLE_1MBIT。
  2. 在scanner.c 中,scanner_config_reset() 将scanner_config_radio_mode_set() 更改为使用RADIO_MODE_NRF_62K5BIT 而不是RADIO_MODE_BLE_1MBIT。
  3. 在 radio_config.c 中,radio_config_config() 在最后添加了如下代码: /li>
  4. 在 broadcast.c 中,time_required_to_send_us() 添加了:

    在同一文件中定义 RADIO_PREAMBLE_LENGTH_LR_EXTRA_BYTES = 9

    将 radio_mode_to_us_per_byte[] 中的第 5 个元素从 128 更改为 64。

    笔记。远程模式被贴错标签。它在头文件中称为 RADIO_MODE_NRF_62K5BIT,但对应的是 125kbps BLE 远程模式。

不幸的是,对于中继,我被迫使用 Zephyr 来支持朋友功能,并且在对 NRF SDK 应用更改后,Zephyr 没有中继消息。我在 Zephyr 方面做了简要调查,发现上述 NRF SDK 的 BLE 远程代码位已经到位,可以使用以下 Kconfig 设置启用:

但我仍然没有看到 Zephyr 端(使用 J-Link RTT 查看器)中继消息。我还尝试将蓝牙和 Mesh 的日志级别提高到 DEBUG,但我没有看到任何消息格式错误或被拒绝的迹象。

可能有人对我应该在 Zephyr 方面挖掘的方向有想法吗?

0 投票
1 回答
548 浏览

embedded - 在我取消配对后,如何确保我的 BLE 外围设备 (NRF52832) 再次重新连接?

NRF52 有点新,所以如果这是一个菜鸟问题,请原谅。我使用 nrf52832 作为外围设备并加载 GATTS 的标准 SDK 外围设备示例(任何其他的结果都相同)。配置该设备后,我尝试将手机连接到它,这成功发生。但是在取消配对我的手机并尝试再次配置后,我的手机无法与设备配对。手机显示:无法配对。检查此设备的设置。

嗅探器显示:Rcvd 配对失败:不支持配对。我确实明白有些东西正在存储在持久内存中。那么如何删除它或如何再次加载该数据。

移动应用程序日志:错误 22 (0x16) GATT_CONN TERMINATE LOCAL HOST

0 投票
0 回答
147 浏览

bluetooth-lowenergy - 如何将我的中央设备连接到运行自定义服务的外围设备?

嗨,我使用了本教程:https ://github.com/bjornspockeli/custom_ble_service_example在其中一个外围设备上进行自定义服务。

我有带有 PCA 10040 的 EVK 套件 NRF52832。

我正在使用 central/ble_app_gatts 的标准 sdk 示例,其中我将 UUID 配置为 0X1400 并键入供应商宏。而且我正在启用相应的过滤器,但我无法将我的中心连接到外围设备。请帮忙。

谢谢,

丹南杰·苏塔里亚

0 投票
0 回答
282 浏览

c - 当我按下按钮时,如何对 nRF52 DK 进行编程以发送 BLE MIDI 消息?

我正在使用真正的 C 语言进行新开发。我有更多使用 Arduino 的经验。当我按下我的 Nordic nRF52 DK 的一个按钮时,我试图通过蓝牙 MIDI 发送 MIDI 消息。但我没有成功。我怎样才能做到这一点?

我尝试使用本教程:https ://www.novelbits.io/bluetooth-gatt-services-characteristics/ 一切正常,我能够创建一个可发现的 BLE MIDI 设备。但是我一直在设置一种发送实际 MIDI 消息的方法。我已经简单地使用按钮打开/关闭 DK LED 进行了测试,这里一切都很好

我想我应该以某种方式在这里配置一些东西(midi_service.c):

然后在这里找到一种在我的主代码上调用它的方法:

例如,如果我尝试:

(这里的想法是发送一条注释消息)我在编译时收到错误“预期标识符或'('在数字常量之前”。可能这是一个非常愚蠢的方法,但正如我所说,我是这个的新手类型的编码,所以不太确定怎么做。使用 Arduino 我可以做到,但我想学习如何更“认真”地编码。

0 投票
0 回答
201 浏览

arduino - 如何使用 TinyUSB 让 nRF52840 通过 webusb 与浏览器通信?

我没有很多嵌入式设备的经验或深入的编程知识。我主要与 Arduino 合作。

最近,我在Adafruit TinyUSB for Arduino 的帮助下选择和使用了一个 SAMD21 板来与webusb一起工作。ArduinoUSB StackTinyUSBUSB Stack

现在,arduino webusb目前还不支持nRF52840。但是TinyUSB 可以

所以我想知道我应该如何让我的 nRF52840 板与浏览器通信?TinyUSB 文件现在对我没有任何意义。

我不一定想要现成的答案,我愿意投入时间和精力。只需要一些指导和正确的方向,我应该在哪里看,我应该写什么文件,或者对此有帮助。

我的 nRF52840 板是新的 Arduino Nano 33 BLE。

0 投票
1 回答
465 浏览

eclipse - 为 nrf52840 使用 qemu-system-gnuarmeclipse 命令行

我想为使用 QEMU 为 nrf52840 编写的固件代码运行单元测试。我遇到了 GNU MCU Eclipse 项目,它分叉了主 QEMU 项目,通过允许通过 CMSIS SVD 文件中提供的数据定义创建 Cortex-M 设备(如此处所述)来为 Cortex-M SoC 提供更好的支持。尽管该项目主要支持基于 STM32 的板和 MCU,但他们的 eclipse 插件确实支持添加新的设备包以进行开发和调试。但我无法弄清楚如何使用他们的命令行工具qemu-system-gnuarmeclipse来运行为 nrf52840 创建的 ELF 文件。我有以下问题:

  1. 即使他们的命令行工具没有任何选项来提供自定义 SVD 文件,eclipse 插件如何允许使用自定义 SVD 文件调试 nrf52840?

  2. 如何添加对 nrf52840 的支持?我可以重复使用 STM32 的板和 MCU 定义,并在此处为 SVD 文件提供 JSON 变体

0 投票
0 回答
68 浏览

nrf52 - Zephyr 应用程序构建失败

我正在尝试为 NRF52 构建我的 Zephyr 应用程序,但出现错误似乎编译器的包含有问题: #include "cbor.h" 我用相关的库位置更新了我的CMakeLists.txt我感谢有关此的任何想法问题 - 谢谢

附上 CMakeLists.txt 和 west build 的输出供您查看

构建命令:

CMakeLists.txt

输出