问题标签 [nrf51]
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 - 如果没有收到响应,BLE 堆栈是否会重新发送数据包?
我想知道在执行另一个命令之前是否需要等待来自服务器的命令已执行的响应,或者 BLE 堆栈是否可以在后台处理这个问题。
例如,我想写入一个特征,然后从中读取。我应该串联执行这些命令,还是应该在发送读取请求之前等待 onWriteRequest 回调方法触发?
如果对前一个问题是肯定的,BLE 堆栈将进行多少次重新发送尝试,以及在重新发送数据包之前等待响应多长时间?
bluetooth - 如何返回 BLE 外设的连接状态
我注意到,onConnectionStateChange()
当外围设备被非手动断开连接时,例如当外围设备断电时,该方法并非总是被调用(或只是没有按时调用)。有没有办法手动获取连接的 BLE 外围设备的连接状态,而不是等待onConnectionStateChange()
触发?我尝试使用BluetoothManager#getConnectionState
,但这种方法似乎正在访问由正在调用的任何线程更新的连接状态onConnectionStateChange()
,并且实际上并没有询问设备是否已连接。换句话说,如果尚未调用,BluetoothManager#getConnectionState
则返回 false 。onConnectionStateChange()
这是我的isConnected
方法
arduino - 在 nRF52 Arduino 上的定时器中断内启用 I2C 中断
我正在使用 Redbear Arduino Library 为基于 nRF52 的板编写程序。有效地将我的电路板视为 BLE Nano 2。
我有一个计时器,每 x 毫秒计时一次,例如 50 毫秒。
在该计时器内,我想从 I2C 传感器读取数据并将读数添加到缓冲区。
我知道默认情况下,当在定时器 ISR 内时,中断被禁用。我想知道如何短暂地重新启用 I2C 中断,并获取传感器读数,然后再次禁用中断。
传感器读数之间的间隔很关键,我不只是想在计时器 ISR 中设置一个标志,因为我不知道在检查该标志之前需要多长时间。
请有人指导我如何从定时器 ISR 中简要启用 I2C 中断?
我已经尝试过:
对这些都不满意,我知道其中一些只能在软件中的某些位置工作,因此在 ISR 中无法正常运行。
bluetooth - How to continuously get RSSI without connecting to the BLE peripheral device from BLE central device?
I use nrf51822 sdk130 (central device) and nrf51822 sdk110(peripheral device). I want to continuously get rssi value of the peripheral device using the central device without connection. Normally I start the scan_start function using button_handler function. Then connection establish occurs. But I dont want to do that. I want to Connect automatically device without press the button (without button_handler function). And I want the device not to reconnect until it leaves the bluetooth signal range.(think like KEYLESS GO - Mercedes). Is it possible?
c++ - nrf_mesh_init/nrf_mesh_node_config 导致 MESH ASSERT
我正在使用灯光控制客户端/服务器示例测试Nordic Semi Bluetooth Mesh SDK 0.9.1 Alpha 。
示例源代码没有被修改。
我已经设置了一个nRF52开发套件作为客户端,一个nRF51开发套件作为服务器。在构建并将十六进制文件下载到板上后,开/关 LED 会一直亮着并挂起。
客户端的调试窗口显示:
服务器也在 MESH ASSERT 处挂起。
历史:我之前测试过 blinky 应用程序以及 HRM 应用程序,它们都运行良好(因此安装了 SoftDevice 并且很好)。
有什么问题?我怎样才能调试更多?
更新:我刚刚尝试了另一个示例,即 pm_remote_server,但它也没有工作,同样的问题。
debugging - nrf51822 + ST-Link V2 调试
我正在做一个项目,我需要NRF51822
使用一个ST-Link V2
(好吧,也许我不必这样做,但这就是我目前正在做/拥有的)。
我很确定它运行正常,但我真的需要一个调试控制台来从NRF51
模块中获取一些信息,以确保连接正常。
我不会撒谎:
- 我对此真的很陌生,到目前为止,我的大部分成功都归功于相当深入的教程。
- 我正在使用 ubuntu 和 openOCD 进行编程
- 我不确定我需要在我的程序中放入什么才能获取调试/控制台信息(我什至不确定我会做什么才能在我的计算机上接收它)。
我真的很感激一些帮助:
- 在我的程序中添加什么以将信息记录到控制台,以及
- 如何在我的计算机上查看该调试控制台。
非常感谢!
bluetooth-lowenergy - BLE加速度计
我想通过 BLE 将加速度计值发送到使用北欧 nRF52 的 iOS 应用程序。该应用程序与标准 BLE 服务(心率测量、温度计等)完美配合,但当我尝试定义自定义 BLE 加速度计服务时却不行。在定义 UUID 和其他东西时,我需要特别做些什么吗?任何帮助将不胜感激,谢谢。
下面是我自定义的 Accelerometer 类,并将 main.cpp 上传到下面的 nRF52。
下面是我通过 mbed.org 使用的 main.cpp 文件。
android - Android BLE 特性 setValue 无法写入正确数据
我正在尝试开发一个使用 BLE 连接到基于 NRF51822 的系统的 Android 应用程序。目的是将 3 字节值 (RGB) 写入我的自定义特征。
Android 是 GATT 客户端,基于 NRF51 的设备是 GATT 服务器。
我能够建立ble连接并成功发现我的特征。
但是数据发送部分(setValue)给我带来了麻烦。无论我写什么 3 个字节,我在 NRF51 端都得到相同的常量数据
以下是我的相关代码(Android)
我正在调用该writeData
方法ble_handle.writedata("0000FF")
这就是我在 NRF51 方面得到的
谢谢