finished drivers

ssd1306 and sh1106 are ready
This commit is contained in:
2022-06-18 19:10:48 +02:00
parent 55f54a2d4a
commit e01ec3e367
6 changed files with 143 additions and 24 deletions

View File

@@ -43,6 +43,39 @@ void SSD1306_Init(OLED_HandleTypeDef *hOled)
display = SSD1306_DISPLAYOFF;
oled_SendCommand(hOled, &display, 1);
}
void SSD1306_display_all(OLED_HandleTypeDef *hOled)
{
uint8_t config[] = {
SSD1306_PAGEADDR, 0x00, 0x07, //cmd, start_page, end_page
SSD1306_COLUMNADDR, 0x00, hOled->Width - 1 //cmd, start_col, end_col
};
oled_SendCommand(hOled, config, sizeof(config));
oled_SendData(hOled, hOled->Buffer, hOled->BufSize);
}
OLED_SendStatus_t SSD1306_display_page(OLED_HandleTypeDef *hOled)
{
static uint8_t page = 0;
uint8_t config[] = {
SSD1306_PAGEADDR, page, page,
SSD1306_COLUMNADDR, 0x00, hOled->Width - 1
};
oled_SendCommand(hOled, config, sizeof(config));
SSD1306_SendData(hOled->Buffer + (page * hOled->Width), hOled->Width);
if (++page > 7)
{
page = 0;
return SENDALL;
}
else
{
return SENDPAGE;
}
}

View File

@@ -38,5 +38,6 @@
#define SSD1306_ACTIVATE_SCROLL 0x2F ///< Start scroll
#define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3 ///< Set scroll range
void SSD1306_Init(OLED_HandleTypeDef *hOled);
void SSD1306_Init(OLED_HandleTypeDef *hOled);
void SSD1306_display_all(OLED_HandleTypeDef *hOled);
OLED_SendStatus_t SSD1306_display_page(OLED_HandleTypeDef *hOled);