12 #ifndef SOURCE_CHIP_STM32_PERIPHERALS_SPIV1_INCLUDE_DISTORTOS_CHIP_SPIMASTERLOWLEVELDMABASED_HPP_ 13 #define SOURCE_CHIP_STM32_PERIPHERALS_SPIV1_INCLUDE_DISTORTOS_CHIP_SPIMASTERLOWLEVELDMABASED_HPP_ 51 const uint8_t rxDmaRequest,
DmaChannel& txDmaChannel,
const uint8_t txDmaRequest) :
94 uint32_t dummyData)
override;
105 int start()
override;
127 void startTransfer(devices::SpiMasterBase& spiMasterBase,
const void* writeBuffer,
void* readBuffer,
128 size_t size)
override;
139 void stop()
override;
290 #endif // SOURCE_CHIP_STM32_PERIPHERALS_SPIV1_INCLUDE_DISTORTOS_CHIP_SPIMASTERLOWLEVELDMABASED_HPP_ Definition: SpiMasterBase.hpp:28
DmaChannel & rxDmaChannel_
reference to DMA channel used for reception
Definition: SpiMasterLowLevelDmaBased.hpp:247
TxDmaChannelFunctor class is a DmaChannelFunctorCommon for DMA channel used for transmission.
Definition: SpiMasterLowLevelDmaBased.hpp:185
~SpiMasterLowLevelDmaBased() override
SpiMasterLowLevelDmaBased's destructor.
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:33
RxDmaChannelFunctor class is a DmaChannelFunctor for DMA channel used for reception.
Definition: SpiMasterLowLevelDmaBased.hpp:144
Definition: DmaChannelFunctorCommon.hpp:29
SpiMasterLowLevel class header.
int start() override
Starts low-level SPI master driver.
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:49
SpiMasterLowLevelDmaBased & owner_
reference to owner SpiMasterLowLevelDmaBased object
Definition: SpiMasterLowLevelDmaBased.hpp:181
void eventHandler(bool success)
"Transfer complete" and "transfer error" event handler
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:132
void configure(devices::SpiMode mode, uint32_t clockFrequency, uint8_t wordLength, bool lsbFirst, uint32_t dummyData) override
Configures parameters of low-level SPI master driver.
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:38
Definition: DmaChannel.hpp:149
const SpiPeripheral & spiPeripheral_
reference to raw SPI peripheral
Definition: SpiMasterLowLevelDmaBased.hpp:244
SpiMode
Definition: SpiMode.hpp:29
Definition: SpiMasterLowLevel.hpp:33
bool isStarted() const
Definition: SpiMasterLowLevelDmaBased.hpp:229
DmaChannelHandle class header for STM32.
DmaChannel & txDmaChannel_
reference to DMA channel used for transmission
Definition: SpiMasterLowLevelDmaBased.hpp:250
void transferErrorEvent(size_t transactionsLeft) override
"Transfer error" event
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:161
SpiPeripheral class is a raw SPI peripheral for SPIv1 in STM32.
Definition: STM32-SPIv1-SpiPeripheral.hpp:24
constexpr SpiMasterLowLevelDmaBased(const SpiPeripheral &spiPeripheral, DmaChannel &rxDmaChannel, const uint8_t rxDmaRequest, DmaChannel &txDmaChannel, const uint8_t txDmaRequest)
SpiMasterLowLevelDmaBased's constructor.
Definition: SpiMasterLowLevelDmaBased.hpp:50
void transferCompleteEvent() override
"Transfer complete" event
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:147
Definition: DmaChannelHandle.hpp:29
Top-level namespace of distortos project.
Definition: buttons.hpp:33
DmaChannelHandle rxDmaChannelHandle_
handle of DMA channel used for reception
Definition: SpiMasterLowLevelDmaBased.hpp:253
RxDmaChannelFunctor rxDmaChannelFunctor_
functor for DMA channel used for reception
Definition: SpiMasterLowLevelDmaBased.hpp:259
void startTransfer(devices::SpiMasterBase &spiMasterBase, const void *writeBuffer, void *readBuffer, size_t size) override
Starts asynchronous transfer.
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:80
void stop() override
Stops low-level SPI master driver.
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:114
bool started_
true if driver is started, false otherwise
Definition: SpiMasterLowLevelDmaBased.hpp:280
TxDmaChannelFunctor txDmaChannelFunctor_
functor for DMA channel used for transmission
Definition: SpiMasterLowLevelDmaBased.hpp:262
SpiMasterLowLevelDmaBased & owner_
reference to owner SpiMasterLowLevelDmaBased object
Definition: SpiMasterLowLevelDmaBased.hpp:214
void transferErrorEvent(size_t transactionsLeft) override
"Transfer error" event
Definition: STM32-SPIv1-SpiMasterLowLevelDmaBased.cpp:152
DmaChannelHandle txDmaChannelHandle_
handle of DMA channel used for transmission
Definition: SpiMasterLowLevelDmaBased.hpp:256
uint8_t txDmaRequest_
request identifier for DMA channel used for transmission
Definition: SpiMasterLowLevelDmaBased.hpp:277
Definition: DmaChannelFunctor.hpp:29
DmaChannelFunctorCommon class header for DMA in STM32.
constexpr TxDmaChannelFunctor(SpiMasterLowLevelDmaBased &owner)
TxDmaChannelFunctor's constructor.
Definition: SpiMasterLowLevelDmaBased.hpp:195
constexpr RxDmaChannelFunctor(SpiMasterLowLevelDmaBased &owner)
RxDmaChannelFunctor's constructor.
Definition: SpiMasterLowLevelDmaBased.hpp:154
uint16_t txDummyData_
dummy data that will be sent if write buffer of transfer is nullptr
Definition: SpiMasterLowLevelDmaBased.hpp:271
uint16_t rxDummyData_
object used as reception DMA target if read buffer of transfer is nullptr
Definition: SpiMasterLowLevelDmaBased.hpp:268
devices::SpiMasterBase *volatile spiMasterBase_
pointer to SpiMasterBase object associated with this one
Definition: SpiMasterLowLevelDmaBased.hpp:265
bool isTransferInProgress() const
Definition: SpiMasterLowLevelDmaBased.hpp:238
uint8_t wordLength_
selected word length, bits, [4; 16] or [minSpiWordLength; maxSpiWordLength]
Definition: SpiMasterLowLevelDmaBased.hpp:283
Definition: SpiMasterLowLevelDmaBased.hpp:36
uint8_t rxDmaRequest_
request identifier for DMA channel used for reception
Definition: SpiMasterLowLevelDmaBased.hpp:274