embedded-nrf24l01
Features
- Designed for use with the embedded-hal crate
- Safe and declarative register definitions
- Chip operation modes lifted to the type-level
- Lets you go straight into RX/TX with the default config
Still missing
- Auto-ack support
Reference datasheets
Usage
Parameters
Get the *-hal crate for your micro-controller unit. Figure out how
to get to the peripherals implementing these embedded-hal traits:
-
embedded_hal::blocking::spi::Transferfor the SPI peripheralWe provide a
mod setupwith a few constants for SPI. -
embedded_hal::digital::OutputPinfor the CE pin -
embedded_hal::digital::OutputPinfor the CSN pin(Although that one belongs to the SPI, we found it much more reliable to implement in software.)
Constructor
let mut nrf24 = NRF24L01new.unwrap;
This will provide an instance of Standby. You can use .rx() or
.tx() to transfer into a RXMode and TXMode instances. They
implement .standby() methods to get back to Standby and then
switch to the other mode.
RXMode
Use rx.can_read() to poll (returning the pipe number), then
rx.read() to receive payload.
TXMode
Use tx.send() to enqueue a packet.
Use tx.can_send() to prevent sending on a full queue, and
tx.wait_empty() to flush.