15#include "common/phal_G4/phal_G4.h"
19typedef uint32_t ptr_int;
31 GPIO_TypeDef *nss_gpio_port;
32 uint32_t nss_gpio_pin;
42 volatile bool _direct_mode_error;
43 volatile bool _fifo_overrun;
50 const uint8_t *out_data,
51 const uint32_t data_len,
54 const uint8_t *out_data,
63#define SPI1_RXDMA_CONT_CONFIG(rx_addr_, priority_) \
64 {.periph_addr = (uint32_t)&(SPI1->DR), \
65 .mem_addr = (uint32_t)(rx_addr_), \
67 .mem_size = DMA_SIZE_8BIT, \
72 .periph_inc = false, \
73 .mem_to_mem = false, \
74 .priority = (priority_), \
75 .periph_size = DMA_SIZE_8BIT, \
77 .dma_chan_request = 0, \
79 .mux_request = DMA_REQUEST_SPI1_RX, \
82#define SPI1_TXDMA_CONT_CONFIG(tx_addr_, priority_) \
83 {.periph_addr = (uint32_t)&(SPI1->DR), \
84 .mem_addr = (uint32_t)(tx_addr_), \
86 .mem_size = DMA_SIZE_8BIT, \
91 .periph_inc = false, \
92 .mem_to_mem = false, \
93 .priority = (priority_), \
94 .periph_size = DMA_SIZE_8BIT, \
96 .dma_chan_request = 0, \
98 .mux_request = DMA_REQUEST_SPI1_TX, \
102#define SPI2_RXDMA_CONT_CONFIG(rx_addr_, priority_) \
103 {.periph_addr = (uint32_t)&(SPI2->DR), \
104 .mem_addr = (uint32_t)(rx_addr_), \
106 .mem_size = DMA_SIZE_8BIT, \
107 .increment = false, \
111 .periph_inc = false, \
112 .mem_to_mem = false, \
113 .priority = (priority_), \
114 .periph_size = DMA_SIZE_8BIT, \
115 .tx_isr_en = false, \
116 .dma_chan_request = 0, \
118 .mux_request = DMA_REQUEST_SPI2_RX, \
121#define SPI2_TXDMA_CONT_CONFIG(tx_addr_, priority_) \
122 {.periph_addr = (uint32_t)&(SPI2->DR), \
123 .mem_addr = (uint32_t)(tx_addr_), \
125 .mem_size = DMA_SIZE_8BIT, \
126 .increment = false, \
130 .periph_inc = false, \
131 .mem_to_mem = false, \
132 .priority = (priority_), \
133 .periph_size = DMA_SIZE_8BIT, \
135 .dma_chan_request = 0, \
137 .mux_request = DMA_REQUEST_SPI2_TX, \
141#define SPI3_RXDMA_CONT_CONFIG(rx_addr_, priority_) \
142 {.periph_addr = (uint32_t)&(SPI3->DR), \
143 .mem_addr = (uint32_t)(rx_addr_), \
145 .mem_size = DMA_SIZE_8BIT, \
146 .increment = false, \
150 .periph_inc = false, \
151 .mem_to_mem = false, \
152 .priority = (priority_), \
153 .periph_size = DMA_SIZE_8BIT, \
154 .tx_isr_en = false, \
155 .dma_chan_request = 0, \
157 .mux_request = DMA_REQUEST_SPI3_RX, \
160#define SPI3_TXDMA_CONT_CONFIG(tx_addr_, priority_) \
161 {.periph_addr = (uint32_t)&(SPI3->DR), \
162 .mem_addr = (uint32_t)(tx_addr_), \
164 .mem_size = DMA_SIZE_8BIT, \
165 .increment = false, \
169 .periph_inc = false, \
170 .mem_to_mem = false, \
171 .priority = (priority_), \
172 .periph_size = DMA_SIZE_8BIT, \
174 .dma_chan_request = 0, \
176 .mux_request = DMA_REQUEST_SPI3_TX, \
Common defs for the entire firmware repository. Dont let this get too out of control please.
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 jus...
Definition spi.c:440
bool PHAL_SPI_busy(SPI_InitConfig_t *cfg)
Check for current SPI transaction to complete.
Definition spi.c:215
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.
Definition spi.c:87
bool PHAL_SPI_init(SPI_InitConfig_t *handle)
Initilize SPI peripheral with the configuired structure.
Definition spi.c:22
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...
Definition spi.c:153
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 ju...
Definition spi.c:421
GPIO Driver for STM32L432 Devices.
RCC Configuration Driver for STM32F4 Devices.
Configuration entry for SPI initilization.
Definition spi.h:26