问题标签 [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.

0 投票
1 回答
97 浏览

c++ - nrf51882a 入门

我目前正在尝试从北欧开发工具包开始,我安装了能够开始开发所需的所有工具,并且我还获得了一些具有以下内容的文件:

  1. 驱动程序代码?& 包含其功能的头文件。
  2. 使用其中一些驱动程序的一些示例

我现在面临的主要问题是我无法理解驱动程序代码或我无法使用它们的功能,我不知道从哪里可以获得使用驱动程序的说明或分步示例,我知道这很多很难找到,但我想知道如何使用这些驱动程序或可用的外部驱动程序或如何处理这些代码

0 投票
1 回答
781 浏览

bluetooth-lowenergy - Nordic nrf51822 和 S130 永远无法访问我的应用程序代码

我正在尝试使用 Emblocks 和 OpenOCD 运行 NRF51822 芯片,调试器接口是来自支持 SWD 的 Discovery 板的 ST-Link。

当我对空白设备进行编程时,一切正常,程序流程达到了主要功能。但是,当我刷入 S130 时,程序流程永远不会到达我的主要功能(我没有任何其他应用程序代码)。

我检查了汇编代码,S130 卡在(arm asm 传入)WFE 和 bn 指令上,据我所知,它似乎在等待中断、事件或唤醒发生,然后再做任何事情......这是预期的行为还是我做错了什么?

我连接的唯一引脚是 SWD 线(2 个引脚)GND 和 VDD(3 伏)。

0 投票
2 回答
498 浏览

c - nrf51 计时器驱动程序代码错误

我目前正在尝试使用 nrf51 开发套件制作应用程序,并且我正在尝试使用计时器驱动程序,当我引入驱动程序的 C 和 H 文件时出现一些错误:

错误 #1 表示“空初始化程序对于未指定边界的数组无效” 错误 #2 表示它需要一个表达式

到目前为止,我没有在 main.c 代码中使用任何这些函数,我只是添加了将进一步使用的头文件。

0 投票
1 回答
120 浏览

arm - Cortex M0 硬故障;BLC霍夫曼

在我的应用程序中,我有一个在 Nordic Semiconductor 的 nRF51422 IC 内运行的 Cortex M0。

尝试使用Basic Compression Library时,我让 LZ 和 Rice 正常工作,但 Huffman_Compress 给了我一个硬件故障。我怀疑处理器正在访问未对齐的内存地址,但如何确定呢?

您能否快速查看代码以查看是否可以找到错误?这是来自开发者网站的代码。在这段代码中,我尝试在处理器挂起之前使用 RTT 打印东西,它完成了_Huffman_Hist( in, sym, insize );但甚至没有进入_Huffman_MakeTree( sym, &stream );函数。

提前致谢!=)

0 投票
0 回答
80 浏览

c - 在其他文件中共享文件中使用的 typedef 结构数组

我无法在文件之间共享 typef 结构,特别是从一个文件和 main.c 中。总结一下,我有以下几点:

pagos.h:

pagos.c:

我在这里使用了 trama_tpv 和array_trama_tpv[TAMCOLAPAGOS],因为我使用一些函数用 trama_tpv 填充了数组。

主.c:

编辑:解释我如何填充数组有点复杂,因为我在 pagos.c 中收集蓝牙帧。这是一个编译后的代码,用作 nRF51 蓝牙开发套件的固件。问题是我在 pagos.c 中获得了信息,因为我可以使用我自己的 lib 打印importeusuario以便在 LCD-TFT 显示器上打印。问题是我需要获取数组的值才能使用存储在数组中的数据打印数组,并且我使用bool posicion_ocupada知道可以写入哪个数组位置。问题不在于代码的目标,而在于我如何共享 typedef 数组结构,因为在 Java 中在创建 objetc 时使用 public 就足够了,但在 CI 中必须缺少一些东西。为了链接和编译,我使用 Keil,它应该做得很好。无论如何,我也在尝试在 XCODE 中编写一个孤立的示例,结果是一样的,我可以共享 bool、int ... 但不能共享结​​构数组:

孤立的例子:main.c:

测试.c:

测试.h:

我得到的输出如下:

问题是如果它应该是相同的数组,为什么没有相同的结果。这可能吗?init() 应该将所有布尔值设置为 false,但它的行为并非如此。


我尝试在一个函数中使用它。因此,我检查了设置一些断点,将array_trama_tpv[0].posicion_ocupada设置为true,但是当我沿着数组前进并打印数组的所有 posicion_ocupada 值时,它们都是 false。奇怪的是,我能够共享变量,例如 int、bool 或类似的东西,但是我无法共享这些值。

先感谢您。我已经检查并尝试了许多来自这里的帖子,如果我错过了什么,非常抱歉。

问候,

伊万

0 投票
1 回答
5121 浏览

c++ - 使用 GCC 和手动生成文件进行增量构建?

我在 Eclipse 中使用 GCC 和我自己维护的 makefile 对 NRF51822 蓝牙芯片进行编码。

我的问题是,每次我按 build 时,它都会编译所有内容,这开始需要相当长的时间。我在创建和维护make-files方面没有那么有经验,所以我不知道从哪里开始才能让它构建增量?

我的makefile是这样组成的(我知道有很多,而且我自己还没有创建它-在教程中找到了它,所以我不知道什么是相关的,什么不是:-)):

0 投票
3 回答
837 浏览

c - 如何在嵌入式 C 中将 MCU-GPIO 引脚状态(值)存储到 10 个数字的数组中?

我想读取 MCU GPIO 引脚状态并将其重复存储到 10 个数字的数组中。当数组已满时,它应该将值左移并将新值存储到第 [9] 个下标位置并继续。

我如何在 Embedded C 中将其实现为代码?

0 投票
1 回答
273 浏览

c - C中的简单压缩算法不起作用..有什么建议吗?

我正在 Nordic Micro 中创建一个项目,该项目从模拟输入终端读取值并将其输出到 UART。我现在正在尝试使用 GE Proficy Historian Compression 压缩数据,以便在 UART 中仅输出更改的数据。但是我的代码不起作用。输出的数据有时仍然是多余的。该程序的想法是每隔一定时间产生一个中断,读取 adc 值,如果它与之前的值不同,则将其输出到 UART 端口。该算法在这里解释 http://www.evsystems.net/files/GE_Historian_Compression_Overview.ppt 处理中断的代码的主要部分如下所示

变量定义如下

0 投票
2 回答
893 浏览

gcc - gcc 可以用 keil-arm 编译器编译的目标文件编译吗?

项目芯片:nordic nrf51822 256KB NRF51 SDK 版本:6.1

由于许可证问题,我正在将我的项目从 windows keil 转换为 OSX GNU。

在我之前的项目中,keil-arm 编译器制作了一些 .o 文件。而且我没有那些c文件。

我尝试编译项目,当它尝试链接这些 .o 文件时,它会像这样错误退出。

gcc 不能用 keil-arm 编译器编译的目标文件编译?

/usr/local/gcc-arm-none-eabi-4_9-2015q2/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm- none-eabi/bin/ld: Dwarf Error: found dwarf version '0',这个阅读器只处理版本 2、3 和 4 的信息。....\RedCarrot_ver2(c)\afe4403.c:(.text+0x0): 未定义引用 _printf_d' /usr/local/gcc-arm-none-eabi-4_9-2015q2/bin/../lib/ gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: Dwarf Error: found dwarf version '11822', 这个阅读器只处理版本 2 , 3 和 4 信息。....\RedCarrot_ver2(c)\afe4403.c:(.text+0x0): undefined reference to_printf_int_dec' /usr/local/gcc-arm-none-eabi-4_9-2015q2/bin/../lib/gcc /arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: Dwarf Error: found dwarf version '23598', 这个阅读器只处理版本 2, 3和4信息。afe4403.o:在功能心跳':..

0 投票
3 回答
1036 浏览

bluetooth - 我需要 NRF51822 BLE UART 的主板吗?

我正在开发 iOS 应用程序以与 Arduino 板进行交互。在 Arduino 方面,我使用在HM-10 /11 固件中实现的“透明”串行。因此,我只需将 HM-10/11 RT/TX 引脚与 Arduino 引脚连接起来,它就可以完美地工作并写入特定特征以发送数据并订阅/读取某些特定以从 BLE 模块读取。无需在 arduino 草图中使用任何 SDK 或 BLE 库,无需修改引导加载程序。

现在我需要支持 NRF51822 BLE 芯片。Nordic 已在固件源中实现了 UART串​​行,但对于我的 NRF51822 板(在ebay上购买)它默认不会上传到芯片,因为我看不到0001服务00020003特性。我需要购买NRF 主板并编译和上传这个固件吗?我可以在不购买此开发套件的情况下做到这一点吗?我可以仅通过 USB 上传还是通过 BLE 上传?