diff --git a/inc/ssd1306.h b/inc/ssd1306.h new file mode 100644 --- /dev/null +++ b/inc/ssd1306.h @@ -0,0 +1,44 @@ +#ifndef ssd1306_H +#define ssd1306_H + + +#define OLED_CS_Pin GPIO_PIN_4 +#define OLED_CS_GPIO_Port GPIOB +#define OLED_RESET_Pin GPIO_PIN_6 +#define OLED_RESET_GPIO_Port GPIOB +#define OLED_DC_Pin GPIO_PIN_7 +#define OLED_DC_GPIO_Port GPIOB + + + +#define SSD_RESET GPIOB,GPIO_PIN_6 +#define SSD_A0 GPIOB,GPIO_PIN_7 +#define SSD_CS GPIOB,GPIO_PIN_4 + +#define SSD_Reset_Low() HAL_GPIO_WritePin(SSD_RESET, 0) +#define SSD_Reset_High() HAL_GPIO_WritePin(SSD_RESET, 1) +#define SSD_A0_Low() HAL_GPIO_WritePin(SSD_A0, 0) +#define SSD_A0_High() HAL_GPIO_WritePin(SSD_A0, 1) +#define SSD_CS_Low() HAL_GPIO_WritePin(SSD_CS, 0) +#define SSD_CS_High() HAL_GPIO_WritePin(SSD_CS, 1) + + +// EMZ FIXME this won't really work +#define SPI_SendByte(data) HAL_SPI_Transmit(spi_get(), &data, 1, 100) +//#define SPI_SendByte(data) +#define SPI_Wait() + +//#define SPI_SendByte(data) SPI_I2S_SendData(SPI1,data) +//#define SPI_Wait() while(!(SPI1->SR&SPI_FLAG_TXE));while(SPI1->SR&SPI_FLAG_BSY); + +void ssd1306_init(void); +void ssd1306_drawchar(char ascii, unsigned char row, unsigned char xPos); +void ssd1306_drawcharbig(char ascii, unsigned char row, unsigned char xPos); +void ssd1306_drawstring(const char *dataPtr, unsigned char row, unsigned char xPos); +void ssd1306_drawstringbig(const char *dataPtr, unsigned char row, unsigned char xPos); +void ssd1306_drawlogo(); +void ssd1306_clearscreen(); + +#endif + +// vim:softtabstop=4 shiftwidth=4 expandtab