#ifndef ssd1306_H #define ssd1306_H #define OLED_CS_Pin GPIO_PIN_0 #define OLED_CS_GPIO_Port GPIOA #define OLED_RESET_Pin GPIO_PIN_1 #define OLED_RESET_GPIO_Port GPIOA #define OLED_DC_Pin GPIO_PIN_2 #define OLED_DC_GPIO_Port GPIOA #define SSD_RESET OLED_RESET_GPIO_Port,OLED_RESET_Pin #define SSD_A0 OLED_DC_GPIO_Port,OLED_DC_Pin #define SSD_CS OLED_CS_GPIO_Port,OLED_CS_Pin #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