libyggdrasil  v1.0.0
spi.h File Reference

SPI abstraction implementation for Midgard. More...

#include <c/common/types.h>
#include <stm32f7xx_hal.h>
Include dependency graph for spi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  spi_t
 SPI handle type. More...
 

Enumerations

enum  SPIMode { SPIMode_0 = 0b00, SPIMode_1 = 0b01, SPIMode_2 = 0b10, SPIMode_3 = 0b11 }
 SPI modes. More...
 

Functions

C_LINKAGE bool yggdrasil_SPI_Init (spi_t spi)
 SPI initialization. More...
 
C_LINKAGE bool yggdrasil_SPI_Deinit (spi_t spi)
 SPI deinitialization. More...
 
C_LINKAGE void yggdrasil_SPI_Write (spi_t spi, void *data, size_t size)
 SPI write. More...
 
C_LINKAGE void yggdrasil_SPI_Read (spi_t spi, void *data, size_t size)
 SPI read. More...
 
C_LINKAGE void yggdrasil_SPI_SetMode (spi_t spi, enum SPIMode mode)
 Set the spi mode (CPOL and CPHA) More...
 

Detailed Description

SPI abstraction implementation for Midgard.

Author
Fabian Weber, Nikolaij Saegesser

Enumeration Type Documentation

◆ SPIMode

enum SPIMode

SPI modes.

Enumerator
SPIMode_0 

CPOL = 0 | CPHA = 0.

SPIMode_1 

CPOL = 0 | CPHA = 1.

SPIMode_2 

CPOL = 1 | CPHA = 0.

SPIMode_3 

CPOL = 1 | CPHA = 1.

Function Documentation

◆ yggdrasil_SPI_Deinit()

C_LINKAGE bool yggdrasil_SPI_Deinit ( spi_t  spi)

SPI deinitialization.

Parameters
spiSPI handel
Returns
Success

◆ yggdrasil_SPI_Init()

C_LINKAGE bool yggdrasil_SPI_Init ( spi_t  spi)

SPI initialization.

Parameters
spiSPI handel
Returns
Success

◆ yggdrasil_SPI_Read()

C_LINKAGE void yggdrasil_SPI_Read ( spi_t  spi,
void *  data,
size_t  size 
)

SPI read.

Parameters
spiSPI handle
[out]dataReceived data
sizeSize of the data to receive

◆ yggdrasil_SPI_SetMode()

C_LINKAGE void yggdrasil_SPI_SetMode ( spi_t  spi,
enum SPIMode  mode 
)

Set the spi mode (CPOL and CPHA)

Parameters
spiSPI handle
modeSPI mode
Note
This function wait until the SPI is not busy anymore and then the mode change will take place

◆ yggdrasil_SPI_Write()

C_LINKAGE void yggdrasil_SPI_Write ( spi_t  spi,
void *  data,
size_t  size 
)

SPI write.

Parameters
spiSPI handle
dataData to transmit
sizeSize of the data to transmit