14enum class Mode { M0, M1, M2, M3 };
15enum class FirstBit { MSB, LSB };
30 bool operator!=(
const Conf &o) {
88 void push(
Request &&rq)
override;
91 SPI_HandleTypeDef handle{};
Wrapper class for pins in alternate configuration mode.
Definition gpio.h:60
Wrapper class for simple digital input/output pin.
Definition gpio.h:13
void set(bool high)
set digital output level
Definition gpio.h:37
simple Buffer backed queue implementation
Definition queue.h:12
registry that maps classes to HAL handles
Definition registry.h:13
dynamically allocated, but fixed-size buffer template
Definition buffer.h:18
simple solution for keeping track of timeouts
Definition deadline.h:15
SPI Configuration.
Definition spi.h:27
Mode mode
Mode configuration of SPI device.
Definition spi.h:28
FirstBit fsb
first bit significance
Definition spi.h:29
generic SPI device wrapper.
Definition spi.h:22
void select(bool sel)
chipselect activation
Definition spi.h:42
struct SPI::Device::Conf conf
necessary SPI configuration
DIO cs
GPIO chipselect line.
Definition spi.h:25
virtual void callback(const Request req)=0
is called as soon as requested data arrived over wire
SPI Peripheral Driver.
Definition spi.h:68
AFIO sck
initialized pins
Definition spi.h:81
bool full() override
check if sink is full
Definition spi.cpp:98
uint32_t prescaler
must be of value SPI_BaudRate_Prescaler from the STM HAL
Definition spi.h:82
SPI_TypeDef * spi
SPI peripheral.
Definition spi.h:80
peripheral configuration
Definition spi.h:79
struct defining an SPI request.
Definition spi.h:54
Buffer< uint8_t > data
transfer data
Definition spi.h:56
Device * dev
pointer to the calling SPI::Device instance
Definition spi.h:55
enum SPI::Request::Direction dir
direction the data should travel
Direction
Definition spi.h:57
@ MOSI
Master out, Slave in.
Definition spi.h:58
@ MISO
Master in, Slave out.
Definition spi.h:59
@ BOTH
Both in, Both out.
Definition spi.h:60
generic object sink, i.e.
Definition streams.h:15