10#ifndef SEMF_HARDWAREABSTRACTION_STM32_STM32SPISLAVE_H_
11#define SEMF_HARDWAREABSTRACTION_STM32_STM32SPISLAVE_H_
18#if defined(STM32) && defined(HAL_SPI_MODULE_ENABLED)
37 SetFormatHardware_BitsNotSupported,
38 StopWriteHardware_HalError,
39 StopWriteHardware_HalBusy,
40 StopWriteHardware_HalTimeout,
41 StopReadHardware_HalError,
42 StopReadHardware_HalBusy,
43 StopReadHardware_HalTimeout,
44 WriteHardware_HalError,
45 WriteHardware_HalBusy,
46 WriteHardware_HalTimeout,
47 ReadHardware_HalError,
49 ReadHardware_HalTimeout,
50 WriteReadHardware_HalError,
51 WriteReadHardware_HalBusy,
52 WriteReadHardware_HalTimeout
110 void writeHardware(
const uint8_t data[],
size_t dataSize)
override;
117 void readHardware(uint8_t buffer[],
size_t bufferSize)
override;
124 void writeReadHardware(
const uint8_t writeData[], uint8_t readBuffer[],
size_t size)
override;
149 SPI_HandleTypeDef* m_hwHandle;
157 uint8_t* m_writeData;
159 size_t m_writeDataSize;
161 uint8_t* m_readBuffer;
163 static constexpr Error::ClassID kSemfClassId = Error::ClassID::Stm32SpiSlave;
LinkedQueue is an managed single linked queue implementation.
Signal for lightweight signal/slot implementation. One signal can be connected to multiple slots and ...
Class for using spi hardware in slave mode. In order of being a SPI slave IO-operations will not get ...
SpiSlaveHardware implementation for STM32.
void onReadWrittenHardware()
static void systemIsrWrittenAndRead(SPI_HandleTypeDef &hwHandle)
Handles the global receive transmit complete callback.
static void systemIsrError(SPI_HandleTypeDef &hwHandle)
Handles the global error callback.
static void systemIsrAbort(SPI_HandleTypeDef &hwHandle)
Handles the global abort callback.
static void systemIsrRead(SPI_HandleTypeDef &hwHandle)
Handles the global receive complete callback.
void writeReadHardware(const uint8_t writeData[], uint8_t readBuffer[], size_t size) override
Accesses the spi hardware in order to perform a full duplex read/write.
Stm32SpiSlave(SPI_HandleTypeDef &hwHandle)
Constructor.
void readHardware(uint8_t buffer[], size_t bufferSize) override
Accesses the spi hardware in order to read bufferSize bytes and stores them in buffer.
void writeHardware(const uint8_t data[], size_t dataSize) override
Accesses the spi hardware in order to write dataSize bytes of data.
static void systemIsrWritten(SPI_HandleTypeDef &hwHandle)
Handles the global transmit complete callback.
void setFormatHardware(uint8_t bits, TransmissionMode transmission, WireMode wire) override
Configures the hardware for insuring the given configuration.
void stopWriteHardware() override
virtual ~Stm32SpiSlave()=default
void stopReadHardware() override
Stm32SpiSlave(const Stm32SpiSlave &other)=delete