|
FastLED 3.9.15
|
SPI Device - RAII wrapper for multi-lane SPI.
This is the main user-facing class. It wraps device creation, initialization, and provides a simple write() API. Automatically creates and initializes the device on construction.
Lane Support:
Example:
#include <spi.h>
Collaboration diagram for fl::Spi:Public Member Functions | |
| Spi () FL_NOEXCEPT | |
| Default constructor - creates device in error state. | |
| Spi (const SpiConfig &config) | |
| Construct from SpiConfig. | |
| Spi (int clock_pin, fl::span< const int > data_pins, spi_output_mode_t output_mode=spi_output_mode_t::SPI_HW, u32 clock_speed_hz=0xffffffff) | |
| Construct and initialize SPI device. | |
| Spi (Spi &&other) FL_NOEXCEPT | |
| Move constructor. | |
| ~Spi () FL_NOEXCEPT | |
| Destructor (defined out-of-line in spi.cpp.hpp to keep MultiLaneDevice destructor out of callers' compilation units) | |
| SPIError | error () const |
| Get error code (only meaningful if !ok()) | |
| spi::MultiLaneDevice * | get () |
| Get access to underlying device (for advanced operations) | |
| const spi::MultiLaneDevice * | get () const |
| bool | ok () const |
| Check if device was created and initialized successfully. | |
| operator bool () const | |
| Explicit conversion to bool for contextual evaluation. | |
| Spi & | operator= (Spi &&other) FL_NOEXCEPT |
| Move assignment. | |
| bool | wait (u32 timeout_ms=0xFFFFFFFF) |
| Wait for async write operation to complete. | |
| template<typename... Spans> | |
| WriteResult | write (Spans &&... lanes) |
| Write multiple lanes in parallel (variadic template) | |
Private Attributes | |
| fl::unique_ptr< spi::MultiLaneDevice > | device |
| SPIError | error_code |
| bool | is_ok |