fsfw-hal/stm32h7/spi/spiCore.c
2021-06-03 14:38:34 +02:00

57 lines
1.1 KiB
C

#include "spiCore.h"
SPI_HandleTypeDef* spiHandle = NULL;
DMA_HandleTypeDef* hdma_tx = NULL;
DMA_HandleTypeDef* hdma_rx = NULL;
void setDmaHandles(DMA_HandleTypeDef* txHandle, DMA_HandleTypeDef* rxHandle) {
hdma_tx = txHandle;
hdma_rx = rxHandle;
}
void getDmaHandles(DMA_HandleTypeDef** txHandle, DMA_HandleTypeDef** rxHandle) {
*txHandle = hdma_tx;
*rxHandle = hdma_rx;
}
void assignSpiHandle(SPI_HandleTypeDef *spiHandle_) {
if(spiHandle_ == NULL) {
return;
}
spiHandle = spiHandle_;
}
SPI_HandleTypeDef* getSpiHandle() {
return spiHandle;
}
/**
* @brief This function handles DMA Rx interrupt request.
* @param None
* @retval None
*/
void SPIx_DMA_RX_IRQHandler(void)
{
HAL_DMA_IRQHandler(spiHandle->hdmarx);
}
/**
* @brief This function handles DMA Tx interrupt request.
* @param None
* @retval None
*/
void SPIx_DMA_TX_IRQHandler(void)
{
HAL_DMA_IRQHandler(spiHandle->hdmatx);
}
/**
* @brief This function handles SPIx interrupt request.
* @param None
* @retval None
*/
void SPIx_IRQHandler(void)
{
HAL_SPI_IRQHandler(spiHandle);
}