Construct from SpiConfig.
- Parameters
-
Definition at line 24 of file spi.cpp.hpp.
26
27
28 size_t num_lanes = config.data_pins.size();
29 if (num_lanes < 1 || num_lanes > 8) {
30 FL_WARN(
"fl::Spi: Invalid number of data pins (" << num_lanes <<
"), must be 1-8");
32 return;
33 }
34
35
36 spi::MultiLaneDevice::Config ml_config;
37 ml_config.clock_pin =
static_cast<u8>(config.clock_pin);
38 ml_config.data_pins.resize(config.data_pins.size());
39 for (size_t i = 0; i < config.data_pins.size(); i++) {
40 ml_config.data_pins[i] =
static_cast<u8>(config.data_pins[i]);
41 }
42 ml_config.clock_speed_hz = config.clock_speed_hz;
43 ml_config.mode = config.spi_mode;
44
45
47 FL_DBG(
"fl::Spi: Created MultiLaneDevice with " << num_lanes <<
" lane(s)");
48
49
50 auto begin_result =
device->begin();
51 if (begin_result) {
52
53 FL_WARN(
"fl::Spi: begin() failed");
56 return;
57 }
58
60}
fl::unique_ptr< spi::MultiLaneDevice > device
fl::enable_if<!fl::is_array< T >::value, unique_ptr< T > >::type make_unique(Args &&... args) FL_NOEXCEPT
References fl::spi::MultiLaneDevice::Config::clock_pin, fl::SpiConfig::clock_pin, fl::spi::MultiLaneDevice::Config::clock_speed_hz, fl::SpiConfig::clock_speed_hz, fl::spi::MultiLaneDevice::Config::data_pins, fl::SpiConfig::data_pins, device, error_code, FL_DBG, FL_WARN, is_ok, fl::make_unique(), fl::spi::MultiLaneDevice::Config::mode, fl::NOT_INITIALIZED, fl::vector< T >::resize(), fl::vector_basic::size(), and fl::SpiConfig::spi_mode.