Loading...
Searching...
No Matches
spi.h
1
8
9
10#ifndef _SPI_H
11#define _SPI_H
12
13#include "stm32f439xx.h"
14#include <stdint.h>
15
23
35
40typedef enum {
41 MODE8,
42 MODE16
44
49typedef struct SPI {
51 SPI_TypeDef *interface;
52 GPIO_TypeDef *port;
53 unsigned long cs;
54 void (*send)(struct SPI *, uint16_t);
55 void (*receive)(struct SPI *, volatile uint16_t *);
56 uint16_t (*transmit)(struct SPI *, uint16_t);
57} SPI;
58
59void SPI_init(SPI *, DeviceType, SPI_TypeDef *, DataFormat, GPIO_TypeDef *, unsigned long);
60void SPI_send(SPI *, uint16_t);
61void SPI_receive(SPI *, volatile uint16_t *);
62uint16_t SPI_transmit(SPI *, uint16_t);
63
65#endif
uint16_t SPI_transmit(SPI *, uint16_t)
Instance method to communicate a SPI transaction with slave device.
Definition spi.c:52
void SPI_init(SPI *, DeviceType, SPI_TypeDef *, DataFormat, GPIO_TypeDef *, unsigned long)
Initialiser for an SPI device interface.
Definition spi.c:32
DataFormat
Data format enum Describes the format of dataframes sent on the SPI data bus.
Definition spi.h:40
DeviceType
Device type enum Describes the type of peripheral implementing an SPI interface.
Definition spi.h:28
@ COMM_LORA
LoRa module.
Definition spi.h:33
@ SENSOR_GYRO
Gyroscope.
Definition spi.h:30
@ MEMORY_FLASH
Flash memory.
Definition spi.h:32
@ SENSOR_ACCEL
Accelerometer.
Definition spi.h:29
@ SENSOR_BARO
Barometer.
Definition spi.h:31
Struct definition for SPI interface. Provides the interface for API consumers to interact with the SP...
Definition spi.h:49
void(* send)(struct SPI *, uint16_t)
SPI send method.
Definition spi.h:54
DeviceType device
Enum specifier for device type.
Definition spi.h:50
uint16_t(* transmit)(struct SPI *, uint16_t)
SPI transmit method.
Definition spi.h:56
GPIO_TypeDef * port
Pointer to GPIO port struct.
Definition spi.h:52
unsigned long cs
Device chip select address.
Definition spi.h:53
void(* receive)(struct SPI *, volatile uint16_t *)
SPI receive method.
Definition spi.h:55
SPI_TypeDef * interface
Pointer to SPI interface struct.
Definition spi.h:51