Mongoose_Arduino_RadioHead/src/STM32ArduinoCompat/HardwareSPI.h

39 lines
934 B
C++

// ArduinoCompat/HardwareSPI.h
// STM32 implementattion of Arduino compatible SPI class
#ifndef _HardwareSPI_h
#define _HardwareSPI_h
#include <stdint.h>
typedef enum SPIFrequency {
SPI_21_0MHZ = 0, /**< 21 MHz */
SPI_10_5MHZ = 1, /**< 10.5 MHz */
SPI_5_25MHZ = 2, /**< 5.25 MHz */
SPI_2_625MHZ = 3, /**< 2.625 MHz */
SPI_1_3125MHZ = 4, /**< 1.3125 MHz */
SPI_656_25KHZ = 5, /**< 656.25 KHz */
SPI_328_125KHZ = 6, /**< 328.125 KHz */
} SPIFrequency;
#define SPI_MODE0 0x00
#define SPI_MODE1 0x04
#define SPI_MODE2 0x08
#define SPI_MODE3 0x0C
class HardwareSPI
{
public:
HardwareSPI(uint32_t spiPortNumber); // Only port SPI1 is currently supported
void begin(SPIFrequency frequency, uint32_t bitOrder, uint32_t mode);
void end(void);
uint8_t transfer(uint8_t data);
private:
uint32_t _spiPortNumber; // Not used yet.
};
extern HardwareSPI SPI;
#endif