PER Firmware
Loading...
Searching...
No Matches
spi.c File Reference

PER Serial Peripheral Interface Device driver for STM32F4 and STM32F7. More...

Functions

bool PHAL_SPI_init (SPI_InitConfig_t *cfg)
 Initilize SPI peripheral with the configuired structure.
 
bool PHAL_SPI_transfer_noDMA (SPI_InitConfig_t *spi, const uint8_t *out_data, uint32_t txlen, uint32_t rxlen, uint8_t *in_data)
 SPI handle.
 
bool PHAL_SPI_transfer (SPI_InitConfig_t *spi, const uint8_t *out_data, const uint32_t data_len, const uint8_t *in_data)
 Transfer data_len bytes from out_data to SPI device and place MISO data in in_data This function just starts the DMA transfer,.
 
bool PHAL_SPI_busy (SPI_InitConfig_t *cfg)
 Check for current SPI transaction to complete.
 
void PHAL_SPI_ForceReset (SPI_InitConfig_t *spi)
 
void DMA2_Stream3_IRQHandler ()
 
uint8_t PHAL_SPI_readByte (SPI_InitConfig_t *spi, uint8_t address, bool skipDummy)
 Blocking function to read a single byte from a SPI device. Useful for Initilization functions that just need to read a single byte in a blocking function.
 
uint8_t PHAL_SPI_writeByte (SPI_InitConfig_t *spi, uint8_t address, uint8_t writeDat)
 Blocking function to write a single byte to a SPI device. Useful for Initilization functions that just need to write a single byte in a blocking function.
 

Variables

uint32_t APB2ClockRateHz
 
uint32_t APB1ClockRateHz
 

Detailed Description

PER Serial Peripheral Interface Device driver for STM32F4 and STM32F7.

Author
Aditya Anand (anand.nosp@m.89@p.nosp@m.urdue.nosp@m..edu) - Port of L4 HAL by Adam Busch (busch.nosp@m.8@pu.nosp@m.rdue..nosp@m.edu)
Version
0.1
Date
2023-12-4

Function Documentation

◆ PHAL_SPI_busy()

bool PHAL_SPI_busy ( SPI_InitConfig_t * cfg)

Check for current SPI transaction to complete.

Parameters
cfgSpi config
Returns
true
false

◆ PHAL_SPI_init()

bool PHAL_SPI_init ( SPI_InitConfig_t * handle)

Initilize SPI peripheral with the configuired structure.

Parameters
handleSPI handle to configure.
Returns
true
false

◆ PHAL_SPI_readByte()

uint8_t PHAL_SPI_readByte ( SPI_InitConfig_t * spi,
uint8_t address,
bool skipDummy )

Blocking function to read a single byte from a SPI device. Useful for Initilization functions that just need to read a single byte in a blocking function.

Parameters
spiSpi handle
addressAddress of data to read
skipDummyReturn the 3rd byte read instead of the 2nd byte

◆ PHAL_SPI_transfer()

bool PHAL_SPI_transfer ( SPI_InitConfig_t * spi,
const uint8_t * out_data,
const uint32_t data_len,
const uint8_t * in_data )

Transfer data_len bytes from out_data to SPI device and place MISO data in in_data This function just starts the DMA transfer,.

Parameters
spiSPI handle
out_dataAddress of data buffer to put on MOSI line
data_lenNumber of SPI packets to send
in_dataAddress of data buffer to put data coming in MISO line
Returns
true Able to start DMA transaction
false Unable to start DMA transaction

◆ PHAL_SPI_transfer_noDMA()

bool PHAL_SPI_transfer_noDMA ( SPI_InitConfig_t * spi,
const uint8_t * out_data,
uint32_t txlen,
uint32_t rxlen,
uint8_t * in_data )

SPI handle.

Parameters
spiSPI handle
out_dataAddress of data buffer to put on MOSI line
txlenNumber of SPI Packets to Send
rxlenNumber of SPI Packets to Receive
in_dataAddress of data buffer to put data coming in MISO line
Returns
true Successfully completed non-DMA SPI transaction
false Unable to complete non-DMA SPI transaction

◆ PHAL_SPI_writeByte()

uint8_t PHAL_SPI_writeByte ( SPI_InitConfig_t * spi,
uint8_t address,
uint8_t writeDat )

Blocking function to write a single byte to a SPI device. Useful for Initilization functions that just need to write a single byte in a blocking function.

Parameters
spiSpi handle
addressAddress of data to read
writeDatData to write to address