LCDGFX LCD display driver  1.1.5
This library is developed to control SSD1306/SSD1325/SSD1327/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
lcd_ssd1306.h
Go to the documentation of this file.
1 /*
2  MIT License
3 
4  Copyright 2019-2022 (C) Alexey Dynda
5 
6  Permission is hereby granted, free of charge, to any person obtaining a copy
7  of this software and associated documentation files (the "Software"), to deal
8  in the Software without restriction, including without limitation the rights
9  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  copies of the Software, and to permit persons to whom the Software is
11  furnished to do so, subject to the following conditions:
12 
13  The above copyright notice and this permission notice shall be included in all
14  copies or substantial portions of the Software.
15 
16  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22  SOFTWARE.
23 */
24 /* !!! THIS FILE IS AUTO GENERATED !!! */
29 #pragma once
30 
31 #include "lcd_hal/io.h"
32 #include "v2/lcd/lcd_common.h"
33 #include "v2/lcd/base/display.h"
34 
43 template <typename I> class InterfaceSSD1306: public I
44 {
45 public:
53  template <typename... Args>
54  InterfaceSSD1306(NanoDisplayBase<InterfaceSSD1306<I>> &base, int8_t dc, Args &&... data)
55  : I(data...)
56  , m_dc(dc)
57  , m_base(base)
58  {
59  }
60 
77 
84  void nextBlock();
85 
89  void endBlock();
90 
95  void setDataMode(uint8_t mode);
96 
101  void commandStart();
102 
108  void setStartLine(uint8_t line);
109 
113  uint8_t getStartLine();
114 
119  void normalMode();
120 
125  void invertMode();
126 
131  void setContrast(uint8_t contrast);
132 
136  void displayOff();
137 
141  void displayOn();
142 
152  void flipHorizontal(uint8_t mode);
153 
163  void flipVertical(uint8_t mode);
164 
165 private:
166  int8_t m_dc = -1;
168  uint8_t m_startLine = 0;
169 };
173 template <typename I> class DisplaySSD1306: public NanoDisplayOps<NanoDisplayOps1<I>, I>
174 {
175 public:
182  DisplaySSD1306(I &intf, int8_t rstPin)
183  : NanoDisplayOps<NanoDisplayOps1<I>, I>(intf)
184  , m_rstPin(rstPin)
185  {
186  }
187 
188 protected:
189  int8_t m_rstPin;
190 
194  void beginDisplay();
195 
199  void endDisplay();
200 };
201 
205 template <typename I> class DisplaySSD1306_64x32: public DisplaySSD1306<I>
206 {
207 public:
214  DisplaySSD1306_64x32(I &intf, int8_t rstPin)
215  : DisplaySSD1306<I>(intf, rstPin)
216  {
217  }
218 
219 protected:
223  void beginController();
224 
228  void endController();
229 };
233 class DisplaySSD1306_64x32_SPI: public DisplaySSD1306_64x32<InterfaceSSD1306<PlatformSpi>>
234 {
235 public:
243  explicit DisplaySSD1306_64x32_SPI(int8_t rstPin, const SPlatformSpiConfig &config = {-1, {-1}, -1, 0, -1, -1})
244  : DisplaySSD1306_64x32(m_spi, rstPin)
245  , m_spi(*this, config.dc,
247  config.busId, {config.cs}, config.dc, config.frequency ?: 10000000, config.scl, config.sda})
248  {
249  }
250 
254  void begin() override;
255 
259  void end() override;
260 
261 private:
263 };
264 
269 template <typename I> class DisplaySSD1306_64x32_CustomSPI: public DisplaySSD1306_64x32<InterfaceSSD1306<I>>
270 {
271 public:
280  template <typename... Args>
281  DisplaySSD1306_64x32_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
282  : DisplaySSD1306_64x32<InterfaceSSD1306<I>>(m_spi, rstPin)
283  , m_spi(*this, dcPin, data...)
284  {
285  }
286 
290  void begin() override
291  {
292  m_spi.begin();
293  DisplaySSD1306_64x32<InterfaceSSD1306<I>>::beginController();
294  }
295 
299  void end() override
300  {
302  m_spi.end();
303  }
304 
305 private:
306  InterfaceSSD1306<I> m_spi;
307 };
311 class DisplaySSD1306_64x32_I2C: public DisplaySSD1306_64x32<InterfaceSSD1306<PlatformI2c>>
312 {
313 public:
321  explicit DisplaySSD1306_64x32_I2C(int8_t rstPin, const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0})
322  : DisplaySSD1306_64x32(m_i2c, rstPin)
323  , m_i2c(*this, -1,
324  SPlatformI2cConfig{config.busId, static_cast<uint8_t>(config.addr ?: 0x3C), config.scl, config.sda,
325  config.frequency ?: 400000})
326  {
327  }
328 
332  void begin() override;
333 
337  void end() override;
338 
339 private:
341 };
342 
347 template <typename I> class DisplaySSD1306_64x32_CustomI2C: public DisplaySSD1306_64x32<InterfaceSSD1306<I>>
348 {
349 public:
357  template <typename... Args>
358  DisplaySSD1306_64x32_CustomI2C(int8_t rstPin, Args &&... data)
359  : DisplaySSD1306_64x32<InterfaceSSD1306<I>>(m_i2c, rstPin)
360  , m_i2c(*this, -1, data...)
361  {
362  }
363 
367  void begin() override
368  {
369  m_i2c.begin();
370  DisplaySSD1306_64x32<InterfaceSSD1306<I>>::beginController();
371  }
372 
376  void end() override
377  {
379  m_i2c.end();
380  }
381 
382 private:
383  InterfaceSSD1306<I> m_i2c;
384 };
390 template <typename I> class DisplaySSD1306_64x32_Custom: public DisplaySSD1306_64x32<InterfaceSSD1306<I>>
391 {
392 public:
405  template <typename... Args>
406  DisplaySSD1306_64x32_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
407  : DisplaySSD1306_64x32<InterfaceSSD1306<I>>(m_custom, rstPin)
408  , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
409  {
410  }
411 
415  void begin() override
416  {
417  m_custom.begin();
418  DisplaySSD1306_64x32<InterfaceSSD1306<I>>::beginController();
419  }
420 
424  void end() override
425  {
427  m_custom.end();
428  }
429 
430 private:
431  InterfaceSSD1306<I> m_custom;
432 };
436 template <typename I> class DisplaySSD1306_64x48: public DisplaySSD1306<I>
437 {
438 public:
445  DisplaySSD1306_64x48(I &intf, int8_t rstPin)
446  : DisplaySSD1306<I>(intf, rstPin)
447  {
448  }
449 
450 protected:
454  void beginController();
455 
459  void endController();
460 };
464 class DisplaySSD1306_64x48_SPI: public DisplaySSD1306_64x48<InterfaceSSD1306<PlatformSpi>>
465 {
466 public:
474  explicit DisplaySSD1306_64x48_SPI(int8_t rstPin, const SPlatformSpiConfig &config = {-1, {-1}, -1, 0, -1, -1})
475  : DisplaySSD1306_64x48(m_spi, rstPin)
476  , m_spi(*this, config.dc,
478  config.busId, {config.cs}, config.dc, config.frequency ?: 10000000, config.scl, config.sda})
479  {
480  }
481 
485  void begin() override;
486 
490  void end() override;
491 
492 private:
494 };
495 
500 template <typename I> class DisplaySSD1306_64x48_CustomSPI: public DisplaySSD1306_64x48<InterfaceSSD1306<I>>
501 {
502 public:
511  template <typename... Args>
512  DisplaySSD1306_64x48_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
513  : DisplaySSD1306_64x48<InterfaceSSD1306<I>>(m_spi, rstPin)
514  , m_spi(*this, dcPin, data...)
515  {
516  }
517 
521  void begin() override
522  {
523  m_spi.begin();
524  DisplaySSD1306_64x48<InterfaceSSD1306<I>>::beginController();
525  }
526 
530  void end() override
531  {
533  m_spi.end();
534  }
535 
536 private:
537  InterfaceSSD1306<I> m_spi;
538 };
542 class DisplaySSD1306_64x48_I2C: public DisplaySSD1306_64x48<InterfaceSSD1306<PlatformI2c>>
543 {
544 public:
552  explicit DisplaySSD1306_64x48_I2C(int8_t rstPin, const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0})
553  : DisplaySSD1306_64x48(m_i2c, rstPin)
554  , m_i2c(*this, -1,
555  SPlatformI2cConfig{config.busId, static_cast<uint8_t>(config.addr ?: 0x3C), config.scl, config.sda,
556  config.frequency ?: 400000})
557  {
558  }
559 
563  void begin() override;
564 
568  void end() override;
569 
570 private:
572 };
573 
578 template <typename I> class DisplaySSD1306_64x48_CustomI2C: public DisplaySSD1306_64x48<InterfaceSSD1306<I>>
579 {
580 public:
588  template <typename... Args>
589  DisplaySSD1306_64x48_CustomI2C(int8_t rstPin, Args &&... data)
590  : DisplaySSD1306_64x48<InterfaceSSD1306<I>>(m_i2c, rstPin)
591  , m_i2c(*this, -1, data...)
592  {
593  }
594 
598  void begin() override
599  {
600  m_i2c.begin();
601  DisplaySSD1306_64x48<InterfaceSSD1306<I>>::beginController();
602  }
603 
607  void end() override
608  {
610  m_i2c.end();
611  }
612 
613 private:
614  InterfaceSSD1306<I> m_i2c;
615 };
621 template <typename I> class DisplaySSD1306_64x48_Custom: public DisplaySSD1306_64x48<InterfaceSSD1306<I>>
622 {
623 public:
636  template <typename... Args>
637  DisplaySSD1306_64x48_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
638  : DisplaySSD1306_64x48<InterfaceSSD1306<I>>(m_custom, rstPin)
639  , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
640  {
641  }
642 
646  void begin() override
647  {
648  m_custom.begin();
649  DisplaySSD1306_64x48<InterfaceSSD1306<I>>::beginController();
650  }
651 
655  void end() override
656  {
658  m_custom.end();
659  }
660 
661 private:
662  InterfaceSSD1306<I> m_custom;
663 };
667 template <typename I> class DisplaySSD1306_128x32: public DisplaySSD1306<I>
668 {
669 public:
676  DisplaySSD1306_128x32(I &intf, int8_t rstPin)
677  : DisplaySSD1306<I>(intf, rstPin)
678  {
679  }
680 
681 protected:
685  void beginController();
686 
690  void endController();
691 };
695 class DisplaySSD1306_128x32_SPI: public DisplaySSD1306_128x32<InterfaceSSD1306<PlatformSpi>>
696 {
697 public:
705  explicit DisplaySSD1306_128x32_SPI(int8_t rstPin, const SPlatformSpiConfig &config = {-1, {-1}, -1, 0, -1, -1})
706  : DisplaySSD1306_128x32(m_spi, rstPin)
707  , m_spi(*this, config.dc,
709  config.busId, {config.cs}, config.dc, config.frequency ?: 10000000, config.scl, config.sda})
710  {
711  }
712 
716  void begin() override;
717 
721  void end() override;
722 
723 private:
725 };
726 
731 template <typename I> class DisplaySSD1306_128x32_CustomSPI: public DisplaySSD1306_128x32<InterfaceSSD1306<I>>
732 {
733 public:
742  template <typename... Args>
743  DisplaySSD1306_128x32_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
744  : DisplaySSD1306_128x32<InterfaceSSD1306<I>>(m_spi, rstPin)
745  , m_spi(*this, dcPin, data...)
746  {
747  }
748 
752  void begin() override
753  {
754  m_spi.begin();
755  DisplaySSD1306_128x32<InterfaceSSD1306<I>>::beginController();
756  }
757 
761  void end() override
762  {
764  m_spi.end();
765  }
766 
767 private:
768  InterfaceSSD1306<I> m_spi;
769 };
773 class DisplaySSD1306_128x32_I2C: public DisplaySSD1306_128x32<InterfaceSSD1306<PlatformI2c>>
774 {
775 public:
783  explicit DisplaySSD1306_128x32_I2C(int8_t rstPin, const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0})
784  : DisplaySSD1306_128x32(m_i2c, rstPin)
785  , m_i2c(*this, -1,
786  SPlatformI2cConfig{config.busId, static_cast<uint8_t>(config.addr ?: 0x3C), config.scl, config.sda,
787  config.frequency ?: 400000})
788  {
789  }
790 
794  void begin() override;
795 
799  void end() override;
800 
801 private:
803 };
804 
809 template <typename I> class DisplaySSD1306_128x32_CustomI2C: public DisplaySSD1306_128x32<InterfaceSSD1306<I>>
810 {
811 public:
819  template <typename... Args>
820  DisplaySSD1306_128x32_CustomI2C(int8_t rstPin, Args &&... data)
821  : DisplaySSD1306_128x32<InterfaceSSD1306<I>>(m_i2c, rstPin)
822  , m_i2c(*this, -1, data...)
823  {
824  }
825 
829  void begin() override
830  {
831  m_i2c.begin();
832  DisplaySSD1306_128x32<InterfaceSSD1306<I>>::beginController();
833  }
834 
838  void end() override
839  {
841  m_i2c.end();
842  }
843 
844 private:
845  InterfaceSSD1306<I> m_i2c;
846 };
852 template <typename I> class DisplaySSD1306_128x32_Custom: public DisplaySSD1306_128x32<InterfaceSSD1306<I>>
853 {
854 public:
867  template <typename... Args>
868  DisplaySSD1306_128x32_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
869  : DisplaySSD1306_128x32<InterfaceSSD1306<I>>(m_custom, rstPin)
870  , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
871  {
872  }
873 
877  void begin() override
878  {
879  m_custom.begin();
880  DisplaySSD1306_128x32<InterfaceSSD1306<I>>::beginController();
881  }
882 
886  void end() override
887  {
889  m_custom.end();
890  }
891 
892 private:
893  InterfaceSSD1306<I> m_custom;
894 };
898 template <typename I> class DisplaySSD1306_128x64: public DisplaySSD1306<I>
899 {
900 public:
907  DisplaySSD1306_128x64(I &intf, int8_t rstPin)
908  : DisplaySSD1306<I>(intf, rstPin)
909  {
910  }
911 
912 protected:
916  void beginController();
917 
921  void endController();
922 };
926 class DisplaySSD1306_128x64_SPI: public DisplaySSD1306_128x64<InterfaceSSD1306<PlatformSpi>>
927 {
928 public:
936  explicit DisplaySSD1306_128x64_SPI(int8_t rstPin, const SPlatformSpiConfig &config = {-1, {-1}, -1, 0, -1, -1})
937  : DisplaySSD1306_128x64(m_spi, rstPin)
938  , m_spi(*this, config.dc,
940  config.busId, {config.cs}, config.dc, config.frequency ?: 10000000, config.scl, config.sda})
941  {
942  }
943 
947  void begin() override;
948 
952  void end() override;
953 
954 private:
956 };
957 
962 template <typename I> class DisplaySSD1306_128x64_CustomSPI: public DisplaySSD1306_128x64<InterfaceSSD1306<I>>
963 {
964 public:
973  template <typename... Args>
974  DisplaySSD1306_128x64_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
975  : DisplaySSD1306_128x64<InterfaceSSD1306<I>>(m_spi, rstPin)
976  , m_spi(*this, dcPin, data...)
977  {
978  }
979 
983  void begin() override
984  {
985  m_spi.begin();
986  DisplaySSD1306_128x64<InterfaceSSD1306<I>>::beginController();
987  }
988 
992  void end() override
993  {
995  m_spi.end();
996  }
997 
998 private:
999  InterfaceSSD1306<I> m_spi;
1000 };
1004 class DisplaySSD1306_128x64_I2C: public DisplaySSD1306_128x64<InterfaceSSD1306<PlatformI2c>>
1005 {
1006 public:
1014  explicit DisplaySSD1306_128x64_I2C(int8_t rstPin, const SPlatformI2cConfig &config = {-1, 0x3C, -1, -1, 0})
1015  : DisplaySSD1306_128x64(m_i2c, rstPin)
1016  , m_i2c(*this, -1,
1017  SPlatformI2cConfig{config.busId, static_cast<uint8_t>(config.addr ?: 0x3C), config.scl, config.sda,
1018  config.frequency ?: 400000})
1019  {
1020  }
1021 
1025  void begin() override;
1026 
1030  void end() override;
1031 
1032 private:
1034 };
1035 
1040 template <typename I> class DisplaySSD1306_128x64_CustomI2C: public DisplaySSD1306_128x64<InterfaceSSD1306<I>>
1041 {
1042 public:
1050  template <typename... Args>
1051  DisplaySSD1306_128x64_CustomI2C(int8_t rstPin, Args &&... data)
1052  : DisplaySSD1306_128x64<InterfaceSSD1306<I>>(m_i2c, rstPin)
1053  , m_i2c(*this, -1, data...)
1054  {
1055  }
1056 
1060  void begin() override
1061  {
1062  m_i2c.begin();
1063  DisplaySSD1306_128x64<InterfaceSSD1306<I>>::beginController();
1064  }
1065 
1069  void end() override
1070  {
1072  m_i2c.end();
1073  }
1074 
1075 private:
1076  InterfaceSSD1306<I> m_i2c;
1077 };
1083 template <typename I> class DisplaySSD1306_128x64_Custom: public DisplaySSD1306_128x64<InterfaceSSD1306<I>>
1084 {
1085 public:
1098  template <typename... Args>
1099  DisplaySSD1306_128x64_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
1100  : DisplaySSD1306_128x64<InterfaceSSD1306<I>>(m_custom, rstPin)
1101  , m_custom(*this, dcPin, frequency = frequency ? frequency : 3000000, data...)
1102  {
1103  }
1104 
1108  void begin() override
1109  {
1110  m_custom.begin();
1111  DisplaySSD1306_128x64<InterfaceSSD1306<I>>::beginController();
1112  }
1113 
1117  void end() override
1118  {
1120  m_custom.end();
1121  }
1122 
1123 private:
1124  InterfaceSSD1306<I> m_custom;
1125 };
1126 #include "lcd_ssd1306.inl"
1127 
DisplaySSD1306_64x32_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 64x32 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:281
DisplaySSD1306_128x32_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 128x32 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
Definition: lcd_ssd1306.h:868
void setStartLine(uint8_t line)
Definition: lcd_ssd1306.inl:83
uint8_t lcduint_t
Definition: canvas_types.h:79
DisplaySSD1306_64x48_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 64x48 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:512
DisplaySSD1306_128x64(I &intf, int8_t rstPin)
Definition: lcd_ssd1306.h:907
DisplaySSD1306_128x64_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 128x64 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:974
void flipVertical(uint8_t mode)
performs vertical flip
DisplaySSD1306(I &intf, int8_t rstPin)
Definition: lcd_ssd1306.h:182
DisplaySSD1306_64x48_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 64x48 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
Definition: lcd_ssd1306.h:637
DisplaySSD1306_64x48_CustomI2C(int8_t rstPin, Args &&... data)
Inits 64x48 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:589
DisplaySSD1306_64x32_SPI(int8_t rstPin, const SPlatformSpiConfig &config={-1, {-1}, -1, 0, -1, -1})
Inits 64x32 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:243
DisplaySSD1306_128x64_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 128x64 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
Definition: lcd_ssd1306.h:1099
DisplaySSD1306_128x32_I2C(int8_t rstPin, const SPlatformI2cConfig &config={-1, 0x3C, -1, -1, 0})
Inits 128x32 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:783
DisplaySSD1306_64x32_CustomI2C(int8_t rstPin, Args &&... data)
Inits 64x32 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:358
DisplaySSD1306_128x32_CustomSPI(int8_t rstPin, int8_t dcPin, Args &&... data)
Inits 128x32 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:743
uint8_t getStartLine()
Definition: lcd_ssd1306.inl:91
InterfaceSSD1306(NanoDisplayBase< InterfaceSSD1306< I >> &base, int8_t dc, Args &&... data)
Definition: lcd_ssd1306.h:54
int8_t m_rstPin
indicates hardware reset pin used, -1 if it is not required
Definition: lcd_ssd1306.h:189
void startBlock(lcduint_t x, lcduint_t y, lcduint_t w)
Sets block in RAM of lcd display controller to write data to.
Definition: lcd_ssd1306.inl:35
DisplaySSD1306_128x64_SPI(int8_t rstPin, const SPlatformSpiConfig &config={-1, {-1}, -1, 0, -1, -1})
Inits 128x64 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:936
DisplaySSD1306_64x48(I &intf, int8_t rstPin)
Definition: lcd_ssd1306.h:445
void flipHorizontal(uint8_t mode)
performs horizontal flip
DisplaySSD1306_128x32_SPI(int8_t rstPin, const SPlatformSpiConfig &config={-1, {-1}, -1, 0, -1, -1})
Inits 128x32 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:705
DisplaySSD1306_64x32(I &intf, int8_t rstPin)
Definition: lcd_ssd1306.h:214
DisplaySSD1306_128x32_CustomI2C(int8_t rstPin, Args &&... data)
Inits 128x32 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:820
void setDataMode(uint8_t mode)
Definition: lcd_ssd1306.inl:66
DisplaySSD1306_64x48_SPI(int8_t rstPin, const SPlatformSpiConfig &config={-1, {-1}, -1, 0, -1, -1})
Inits 64x48 lcd display over spi (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:474
DisplaySSD1306_128x64_CustomI2C(int8_t rstPin, Args &&... data)
Inits 128x64 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:1051
void setContrast(uint8_t contrast)
DisplaySSD1306_128x32(I &intf, int8_t rstPin)
Definition: lcd_ssd1306.h:676
DisplaySSD1306_128x64_I2C(int8_t rstPin, const SPlatformI2cConfig &config={-1, 0x3C, -1, -1, 0})
Inits 128x64 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:1014
DisplaySSD1306_64x32_I2C(int8_t rstPin, const SPlatformI2cConfig &config={-1, 0x3C, -1, -1, 0})
Inits 64x32 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:321
DisplaySSD1306_64x48_I2C(int8_t rstPin, const SPlatformI2cConfig &config={-1, 0x3C, -1, -1, 0})
Inits 64x48 lcd display over i2c (based on SSD1306 controller): 1-bit mode.
Definition: lcd_ssd1306.h:552
DisplaySSD1306_64x32_Custom(int8_t rstPin, int8_t dcPin, uint32_t frequency, Args &&... data)
Inits 64x32 lcd display over custom interface (based on SSD1306 controller): 1-bit mode...
Definition: lcd_ssd1306.h:406