您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

94 行
2.4 KiB

  1. /*
  2. * Author: LoBo (loboris@gmail.com, loboris.github)
  3. *
  4. * Module supporting SPI ePaper displays
  5. *
  6. * HIGH SPEED LOW LEVEL DISPLAY FUNCTIONS
  7. * USING DIRECT or DMA SPI TRANSFER MODEs
  8. *
  9. */
  10. #ifndef _EPDSPI_H_
  11. #define _EPDSPI_H_
  12. #include <stdint.h>
  13. #include "spi_master_lobo.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define EPD_DISPLAY_WIDTH 296
  18. #define EPD_DISPLAY_HEIGHT 128
  19. #define SCK_Pin ((gpio_num_t)18)
  20. #define MOSI_Pin ((gpio_num_t)23)
  21. //#define MISO_Pin 19
  22. #define DC_Pin ((gpio_num_t)17)//26
  23. #define BUSY_Pin ((gpio_num_t)4)//32
  24. #define RST_Pin ((gpio_num_t)16)//27
  25. #define CS_Pin ((gpio_num_t)5)
  26. // ePaper display can be powered from GPIO
  27. // if powered directly from Vcc, set this to 0
  28. #define POWER_Pin ((gpio_num_t)22)
  29. #define DC_VAL (1 << DC_Pin)
  30. #define EPD_CS_0 gpio_set_level(CS_Pin, 0)
  31. #define EPD_CS_1 gpio_set_level(CS_Pin, 1)
  32. #define isEPD_CS gpio_get_level(CS_Pin)
  33. #define EPD_RST_0 gpio_set_level(RST_Pin, 0)
  34. #define EPD_RST_1 gpio_set_level(RST_Pin, 1)
  35. #define isEPD_RST gpio_get_level(RST_Pin)
  36. #define EPD_DC_0 gpio_set_level(DC_Pin, 0)
  37. #define EPD_DC_1 gpio_set_level(DC_Pin, 1)
  38. #define isEPD_BUSY gpio_get_level(BUSY_Pin)
  39. #define EPD_BUSY_LEVEL 0
  40. // ==================================================
  41. // Define which spi bus to use VSPI_HOST or HSPI_HOST
  42. #define SPI_BUS VSPI_HOST
  43. // ==================================================
  44. extern spi_lobo_device_handle_t disp_spi;
  45. extern uint8_t *gs_disp_buffer;
  46. extern uint8_t *disp_buffer;
  47. extern uint8_t *gs_drawBuff;
  48. extern uint8_t *drawBuff;
  49. extern int _width;
  50. extern int _height;
  51. extern uint16_t gs_used_shades;
  52. extern uint8_t _gs;
  53. extern uint8_t *LUT_part;
  54. extern uint8_t LUTDefault_fastest[31];
  55. extern uint8_t LUTDefault_part[31];
  56. extern uint8_t LUT_gs[31];
  57. extern uint8_t LUTDefault_full[31];
  58. extern uint8_t lvl_buf[16];
  59. extern uint8_t lvl_buf_jpg[16];
  60. void EPD_wait(uint32_t ms);
  61. void EPD_DisplaySetFull(uint8_t val);
  62. void EPD_DisplaySetPart(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd, uint8_t val);
  63. void EPD_DisplayClearFull();
  64. void EPD_DisplayClearPart();
  65. void EPD_DisplayFull(uint8_t *DisBuffer);
  66. void EPD_DisplayPart(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd, uint8_t *DisBuffer);
  67. void EPD_gsUpdate(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd, uint8_t gs);
  68. void EPD_Update(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd);
  69. void EPD_UpdateScreen();
  70. void EPD_Cls();
  71. void EPD_PowerOn();
  72. void EPD_PowerOff();
  73. #ifdef __cplusplus
  74. }
  75. #endif
  76. #endif