
/*
 * spiInterface.h
 *
 *  Created on: 10 Feb 2018
 *      Author: Mike
 */

#pragma once

extern void ssd1306spiInit(void);

extern void ssd1306fastSPIwrite(uint8_t d);

extern void ssd1306commandSPIwrite(uint8_t c);

extern void ssd1306resetDisplay(void);

extern void ssd1306SendDisplay(uint8_t * buff, uint8_t len);
// Peripherial Clock 84MHz SPI1                                SPI1        SPI2/3
#define SPI_BaudRatePrescaler_2         ((uint16_t)0x0000) //  42 MHz      21 MHZ
#define SPI_BaudRatePrescaler_4         ((uint16_t)0x0008) //  21 MHz      10.5 MHz
#define SPI_BaudRatePrescaler_8         ((uint16_t)0x0010) //  10.5 MHz    5.25 MHz
#define SPI_BaudRatePrescaler_16        ((uint16_t)0x0018) //  5.25 MHz    2.626 MHz
#define SPI_BaudRatePrescaler_32        ((uint16_t)0x0020) //  2.626 MHz   1.3125 MHz
#define SPI_BaudRatePrescaler_64        ((uint16_t)0x0028) //  1.3125 MHz  656.25 KHz
#define SPI_BaudRatePrescaler_128       ((uint16_t)0x0030) //  656.25 KHz  328.125 KHz
#define SPI_BaudRatePrescaler_256       ((uint16_t)0x0038) //  328.125 KHz 164.06 KHz


#define SPI_CS_PIN 6
#define SPI_CS_GPIO GPIOB

#define SPI_CD_PIN 7
#define SPI_CD_GPIO GPIOB

#define SPI_RESET_PIN 8
#define SPI_RESET_GPIO GPIOB


