2

我正在使用带有 NRF24l01+ 芯片的 Arduino。不幸的是,Mirf 库的“发送”方法并没有告诉你它是否成功。

此外,有一个这样的循环:

Mirf.send(data);

while(Mirf.isSending()){
 //Wait.
}

即使数据包尚未交付,也只是恢复。现在,看起来我不必重新发明轮子,因为阅读 nrf24l01数据表(第 27/78 页)

增强型 ShockBurst™ 具有自动数据包事务处理功能,可轻松实现可靠的双向数据链路。[snip] 自动数据包事务处理的工作原理如下:

  1. 您通过将数据包从 PTX 传输到 PRX 来开始事务。增强型 ShockBurst™ 自动将 PTX 设置为接收模式以等待 ACK 数据包。
  2. 如果 PRX 接收到数据包,Enhanced ShockBurst™ 会在返回接收模式之前自动组合并向 PTX 发送一个确认数据包(ACK 数据包)。
  3. 如果 PTX 没有立即收到 ACK 数据包,Enhanced ShockBurst™ 在可编程延迟后自动重新传输原始数据包,并将 PTX 设置为接收模式以等待 ACK 数据包。

要启用此功能(数据表第 57 页): 在此处输入图像描述

看起来我需要写类似 00011111 的东西来在芯片上注册 0x01。有什么想法可以实现这一目标吗?

4

1 回答 1

1

使用该Mirf::writeRegister()功能。

于 2013-03-29T20:08:58.977 回答