ST7305_U8g2.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include <Arduino.h>
  3. #include <SPI.h>
  4. #include <U8g2lib.h>
  5. class ST7305_U8g2 {
  6. private:
  7. int _sck;
  8. int _mosi;
  9. int _dc;
  10. int _cs;
  11. int _rst;
  12. SPIClass *_spi = nullptr;
  13. U8G2 u8g2_wrapper;
  14. uint8_t *_my_buf = nullptr;
  15. void _cmd(uint8_t cmd);
  16. void _data(const uint8_t *data, size_t len);
  17. void _cmd_data(uint8_t cmd, const uint8_t *data, size_t len);
  18. static uint8_t u8x8_d_st7305_custom(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr);
  19. static uint8_t u8x8_byte_custom(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr);
  20. public:
  21. ST7305_U8g2(int sck = 11, int mosi = 12, int dc = 5, int cs = 40, int rst = 41);
  22. ~ST7305_U8g2();
  23. // tile_buf_height 0 means full-buffer mode, about 15 KB RAM for 300x400.
  24. // A smaller value can be used with firstPage()/nextPage(), but this demo uses full-buffer mode.
  25. void begin(uint8_t tile_buf_height = 0, const u8g2_cb_t *rotation = U8G2_R0);
  26. void reset();
  27. void fullInit();
  28. U8G2 *getU8g2()
  29. {
  30. return &u8g2_wrapper;
  31. }
  32. };