ssd1306.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef __SSD1306_H__
  2. #define __SSD1306_H__
  3. #include <driver/spi_master.h>
  4. #include "fonts.h"
  5. esp_err_t oled_ssd1306_init();
  6. #define READ_BIT I2C_MASTER_READ /*!< I2C master read */
  7. #define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */
  8. #define ACK_VAL 0x0 /*!< I2C ack value */
  9. #define NACK_VAL 0x1 /*!< I2C nack value */
  10. // Fundamental Command (page 28)
  11. #define DISPLAY_LINE_START 0x40
  12. #define CONTRAST_CONTROL 0x81
  13. #define DISABLE_ENTIRE_DISPLAY 0xA4
  14. #define DISPLAY_ON_REG02 0xA5
  15. #define NORMAL_DISPLAY 0xA6
  16. #define DISPLAY_INVERSE 0xA7
  17. #define DISPLAY_RESET 0xAE
  18. #define DISPLAY_ON 0xAF
  19. // Addressing Setting (page 30)
  20. #define MEM_ADDR_MODE 0x20
  21. #define LOWER_COL_START_ADDR 0x00
  22. #define HIGHER_COL_START_ADDR 0x10
  23. #define PAGE_START_ADDR 0xB0
  24. // Hardware Config (page 31)
  25. #define DISPLAY_START_LINE 0x40
  26. #define SEGMENT_REMAP 0xA0
  27. #define MULTIPLEX_RATIO 0xA8
  28. #define COM_OUTPUT_SCAN_DIR 0xC0
  29. #define DISPLAY_OFFSET 0xD3
  30. #define COM_PINS_HARDWARE_CONFIG 0xDA
  31. // Timing & Driving Scheme (page 32)
  32. #define DISPLAY_CLK_RATIO 0xD5
  33. #define PRE_CHARGE_PER 0xD9
  34. #define VCOMH_DESELECT_LEVEL 0xDB
  35. #define NOOPERATION 0xE3
  36. // Charge Pump (page 60)
  37. #define CHARGE_PUMP_SET 0x8D
  38. // Scrolling
  39. #define DEACTIVATE_SCROLL 0x2E
  40. #define ACTIVATE_SCROLL 0x2F
  41. #define VERTICAL_AND_RIGHT_HOR_SCROLL 0x29
  42. #define DUMMY_BYTE 0x00
  43. #define SIX_FRAMES_PER_SEC 0x00
  44. #define VERTICAL_OFFSET_ONE 0x01
  45. typedef enum {
  46. SSD1306_COLOR_BLACK = 0x00, /*!< Black color, no pixel */
  47. SSD1306_COLOR_WHITE = 0x01 /*!< Pixel is set. Color depends on LCD */
  48. } SSD1306_COLOR_t;
  49. #define SSD1306_WIDTH 128
  50. #define SSD1306_HEIGHT 64
  51. /**
  52. * @brief Calculates string length and height in units of pixels depending on string and font used
  53. * @param *str: String to be checked for length and height
  54. * @param *SizeStruct: Pointer to empty @ref FONTS_SIZE_t structure where informations will be saved
  55. * @param *Font: Pointer to @ref FontDef_t font used for calculations
  56. * @retval Pointer to string used for length and height
  57. */
  58. char* FONTS_GetStringSize(char* str, FONTS_SIZE_t* SizeStruct, FontDef_t* Font);
  59. #endif