#pragma once #include "spi.h" #include "display_gfx.h" #define ST7565_WIDTH 128 #define ST7565_HEIGHT 64 #define ST7565_BUFFER_SIZE ST7565_WIDTH *ST7565_HEIGHT / 8 #define CMD_DISPLAY_OFF 0xAE #define CMD_DISPLAY_ON 0xAF #define CMD_SET_DISP_START_LINE 0x40 #define CMD_SET_PAGE 0xB0 #define CMD_SET_COLUMN_UPPER 0x10 #define CMD_SET_COLUMN_LOWER 0x00 #define CMD_SET_ADC_NORMAL 0xA0 #define CMD_SET_ADC_REVERSE 0xA1 #define CMD_SET_DISP_NORMAL 0xA6 #define CMD_SET_DISP_REVERSE 0xA7 #define CMD_SET_ALLPTS_NORMAL 0xA4 #define CMD_SET_ALLPTS_ON 0xA5 #define CMD_SET_BIAS_9 0xA2 #define CMD_SET_BIAS_7 0xA3 #define CMD_RMW 0xE0 #define CMD_RMW_CLEAR 0xEE #define CMD_INTERNAL_RESET 0xE2 #define CMD_SET_COM_NORMAL 0xC0 #define CMD_SET_COM_REVERSE 0xC8 #define CMD_SET_POWER_CONTROL 0x28 #define CMD_SET_RESISTOR_RATIO 0x20 #define CMD_SET_VOLUME_FIRST 0x81 #define CMD_SET_VOLUME_SECOND 0 #define CMD_SET_STATIC_OFF 0xAC #define CMD_SET_STATIC_ON 0xAD #define CMD_SET_STATIC_REG 0x0 #define CMD_SET_BOOSTER_FIRST 0xF8 #define CMD_SET_BOOSTER_234 0 #define CMD_SET_BOOSTER_5 1 #define CMD_SET_BOOSTER_6 3 #define CMD_NOP 0xE3 #define CMD_TEST 0xF0 typedef struct { SPI_HandleTypeDef *hspi; GPIO_TypeDef *cs_port; // ST7565_CS_GPIO_Port GPIO_TypeDef *a0_port; // ST7565_A0_GPIO_Port GPIO_TypeDef *rst_port; // ST7565_RST_GPIO_Port uint16_t cs_pin; // ST7565_CS_Pin uint16_t a0_pin; // ST7565_A0_Pin uint16_t rst_pin; // ST7565_RST_Pin } st7565_handle_t; void ST7565_Init(st7565_handle_t *hdisp, GFX_display_t *disp); void ST7565_DisplayAll(st7565_handle_t *hdisp);