VSF Documented
vsf_spi.h
Go to the documentation of this file.
1#ifndef __VSF_SPI_H__
2#define __VSF_SPI_H__
3
4#include "hal/vsf_hal_cfg.h"
5#include "../../__device.h"
7
9 SPI_EN = 0x0040,
10 SPI_NSS_SET = 0x0100,
11
14
18
21
24
25 SPI_NSS_SOFT = 0x0200,
28
31
34};
35
36typedef enum {
40
41typedef enum {
51
52typedef enum {
53 SPI_IT_TXE = 0x0080,
54 SPI_IT_RXNE = 0x0040,
55 SPI_IT_ERR = 0x0020,
57
58typedef enum {
62
63typedef enum {
64 SPI1_CLK_EN = 0x1000,
66
67 SPI2_CLK_EN = 0x4000,
69
70 SPI1_GPIO_CLEAR = 0x000FFFFFU,
71 SPI1_GPIO_MODE = 0xB4B00000U,
72
73 SPI2_GPIO_CLEAR = 0x000FFFFFU,
74 SPI2_GPIO_MODE = 0x4B400000U,
76
77struct vsf_spi_status_t {
86};
87
90};
91
92struct vsf_spi_t {
100};
101
103
106extern vsf_err_t vsf_spi_init(vsf_spi_t *spi_obj, vsf_spi_cfg_t *cfg_ptr);
107extern uintalu_t vsf_spi_polarity_set(vsf_spi_t *spi_obj, uintalu_t polarity);
109extern fsm_rt_t vsf_spi_exchange(vsf_spi_t *spi_obj, uintalu_t output, void *input);
110extern fsm_rt_t vsf_spi_request_exchange(vsf_spi_t *spi_obj, void *output, void *input, uint_fast32_t size);
111
112#endif
vsf_err_t
Definition __type.h:42
vsf_spi_mode_t
Definition spi.h:33
uint_fast8_t uintalu_t
Definition type.h:88
#define SPI_COUNT
Definition device.h:57
unsigned uint32_t
Definition stdint.h:9
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_hal_driver.h:203
Definition vsf_template_spi.h:495
spi configuration for api
Definition vsf_template_spi.h:525
Definition vsf_template_spi.h:484
uint8_t SPI_BSY
Definition vsf_spi.h:85
uint8_t SPI_UDR
Definition vsf_spi.h:81
uint8_t SPI_CRCERR
Definition vsf_spi.h:82
uint8_t SPI_RXNE
Definition vsf_spi.h:78
uint8_t SPI_OVR
Definition vsf_spi.h:84
uint8_t SPI_CHSIDE
Definition vsf_spi.h:80
uint8_t SPI_TXE
Definition vsf_spi.h:79
uint8_t SPI_MODF
Definition vsf_spi.h:83
Definition vsf_template_spi.h:541
uint32_t data_size
Definition vsf_spi.h:96
uint8_t * input
Definition vsf_spi.h:95
SPI_TypeDef * hspi
Definition vsf_spi.h:93
uint8_t * output
Definition vsf_spi.h:94
bool data_exchange
Definition vsf_spi.h:99
uint32_t rx_count
Definition vsf_spi.h:97
uint32_t tx_count
Definition vsf_spi.h:98
fsm_rt_t
Definition vsf_fsm.h:315
uint32_t size
Definition vsf_memfs.h:50
vsf_spi_status_t vsf_spi_get_status(vsf_spi_t *spi_obj)
Definition vsf_spi.c:13
en_spi_clk_gpio_t
Definition vsf_spi.h:63
@ SPI2_GPIO_CLEAR
Definition vsf_spi.h:73
@ SPI1_GPIO_CLK_EN
Definition vsf_spi.h:65
@ SPI1_GPIO_MODE
Definition vsf_spi.h:71
@ SPI2_CLK_EN
Definition vsf_spi.h:67
@ SPI2_GPIO_CLK_EN
Definition vsf_spi.h:68
@ SPI1_GPIO_CLEAR
Definition vsf_spi.h:70
@ SPI1_CLK_EN
Definition vsf_spi.h:64
@ SPI2_GPIO_MODE
Definition vsf_spi.h:74
vsf_spi_capability_t vsf_spi_get_capability(void)
Definition vsf_spi.c:31
em_spi_clock_div_t
Definition vsf_spi.h:41
@ SPI_BAUDRATEPRESCALER_2
Definition vsf_spi.h:42
@ SPI_BAUDRATEPRESCALER_128
Definition vsf_spi.h:48
@ SPI_BAUDRATEPRESCALER_256
Definition vsf_spi.h:49
@ SPI_BAUDRATEPRESCALER_8
Definition vsf_spi.h:44
@ SPI_BAUDRATEPRESCALER_64
Definition vsf_spi.h:47
@ SPI_BAUDRATEPRESCALER_32
Definition vsf_spi.h:46
@ SPI_BAUDRATEPRESCALER_4
Definition vsf_spi.h:43
@ SPI_BAUDRATEPRESCALER_16
Definition vsf_spi.h:45
em_spi_data_size_t
Definition vsf_spi.h:36
@ VSF_SPI_DATASIZE_8BIT
Definition vsf_spi.h:37
@ VSF_SPI_DATASIZE_16BIT
Definition vsf_spi.h:38
uintalu_t vsf_spi_polarity_set(vsf_spi_t *spi_obj, uintalu_t polarity)
Definition vsf_spi.c:93
em_spi_it_t
Definition vsf_spi.h:52
@ SPI_IT_RXNE
Definition vsf_spi.h:54
@ SPI_IT_ERR
Definition vsf_spi.h:55
@ SPI_IT_TXE
Definition vsf_spi.h:53
vsf_spi_t vsf_spi[SPI_COUNT]
Definition vsf_spi.c:3
@ SPI_NSS_SET
Definition vsf_spi.h:10
@ SPI_CRCCALCULATION_ENABLE
Definition vsf_spi.h:33
@ SPI_DIRECTION_2LINES
Definition vsf_spi.h:15
@ SPI_CRCCALCULATION_DISABLE
Definition vsf_spi.h:32
@ SPI_NSS_HARD_OUTPUT
Definition vsf_spi.h:27
@ SPI_POLARITY_HIGH
Definition vsf_spi.h:20
@ SPI_DIRECTION_2LINES_RXONLY
Definition vsf_spi.h:16
@ SPI_FIRSTBIT_LSB
Definition vsf_spi.h:30
@ SPI_NSS_HARD_INPUT
Definition vsf_spi.h:26
@ SPI_FIRSTBIT_MSB
Definition vsf_spi.h:29
@ SPI_PHASE_1EDGE
Definition vsf_spi.h:22
@ SPI_EN
Definition vsf_spi.h:9
@ SPI_POLARITY_LOW
Definition vsf_spi.h:19
@ SPI_PHASE_2EDGE
Definition vsf_spi.h:23
@ SPI_MODE_SLAVE
Definition vsf_spi.h:12
@ SPI_MODE_MASTER
Definition vsf_spi.h:13
@ SPI_DIRECTION_1LINE
Definition vsf_spi.h:17
@ SPI_NSS_SOFT
Definition vsf_spi.h:25
uintalu_t vsf_spi_polarity_get(vsf_spi_t *spi_obj)
Definition vsf_spi.c:108
em_spi_sr_t
Definition vsf_spi.h:58
@ SPI_SR_RXNE_IS_TRUE
Definition vsf_spi.h:60
@ SPI_SR_TXE_IS_TRUE
Definition vsf_spi.h:59
fsm_rt_t vsf_spi_request_exchange(vsf_spi_t *spi_obj, void *output, void *input, uint_fast32_t size)
Definition vsf_spi.c:150
fsm_rt_t vsf_spi_exchange(vsf_spi_t *spi_obj, uintalu_t output, void *input)
Definition vsf_spi.c:120
#define vsf_spi_init(__SPI,...)
Definition vsf_template_spi.h:1050