1个不稳定版本
0.1.0 | 2023年10月4日 |
---|
#37 in #radio
61KB
954 行
NRF24radio
nrf24radio
是一个异步、无 std
且与执行器无关的设备驱动程序,用于 NRF24L01 和 NRF24L01+ 设备。
它提供高级和低级 API 以与无线电设备交互。
如何安装
要将此库添加到您的项目中,请简单执行 cargo
命令
cargoadd nrf24radio
使用方法
驱动程序分为两个主要抽象:驱动程序句柄和数据管道。这种分割将驱动程序逻辑与数据传输逻辑解耦,简化了开发过程。
请参阅我们的示例 此处 了解此库的一些常见用法。
要运行示例,请导航到您使用的 MCU 的文件夹(例如,对于 RP2040,使用 rp
)并运行以下命令
cargorun --release --bin <example>
以使用 probe-run
运行示例,或
cargobuild --release --bin <example>
构建它,然后使用您选择的运行器运行它。
驱动程序句柄
驱动程序句柄包含配置和与 NRF24 设备交互的所有逻辑。它们可以设置射频配置、创建数据管道并处理设备中的错误,但不会与实际传输的数据交互。
驱动程序句柄任务更复杂,需要在与设备交互时格外小心。这些任务的示例可以在 示例 文件夹中找到。
数据管道
数据管道是对可以发送或接收通过 NRF24 设备的数据的缓冲区的简化抽象。这些管道具有简单的 API 以与这些数据交互并在通信期间通知错误。
async fn send(mut pipe: TXDataPipe) {
// Buffer to send.
let buf = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F];
// This flag indicates if the radio must expect and acknowledgement from the receiver.
let ack = true;
// Send the data packet.
if let Err(_) = pipe.send( &buf, ack ).await {
// If there was an error handle it here.
}
}
进行中
- 更好地控制 TX 和 RX0 配置
- 动态更改 TX 地址
- 动态更改射频通道
- 噪声检测
许可和贡献
此库及其示例受
- Mozilla 公共许可 2.0 LICENSE-MPL
对此项目的贡献将遵循上述定义的相同许可协议。
依赖项
~240KB