drv_lcd_spi.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Copyright (c) 2006-2023, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2023-03-24 spaceman the first version
  9. */
  10. #ifndef __DRV_LCD_SPI_H__
  11. #define __DRV_LCD_SPI_H__
  12. #include <rtthread.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #define LCD_DEVICE(dev) (struct drv_lcd_device*)(dev)
  17. struct drv_lcd_device
  18. {
  19. struct rt_device parent;
  20. rt_device_t lcd_spi_dev;
  21. struct rt_device_graphic_info lcd_info;
  22. struct rt_semaphore lcd_lock;
  23. /* 0:front_buf is being used 1: back_buf is being used*/
  24. rt_uint8_t cur_buf;
  25. rt_uint8_t *front_buf;
  26. rt_uint8_t *back_buf;
  27. };
  28. void lcd_writebuff(uint16_t *databuff, uint16_t datasize);
  29. void lcd_setaddress(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
  30. void lcd_clear(uint32_t color);
  31. void lcd_clearrect(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint32_t color);
  32. void lcd_copybuffer(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t *databuff);
  33. void lcd_drawpoint(uint16_t x, uint16_t y, uint32_t color);
  34. void lcd_drawline(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint32_t color);
  35. void lcd_drawline_v(uint16_t x, uint16_t y, uint16_t height, uint32_t color);
  36. void lcd_drawline_h(uint16_t x, uint16_t y, uint16_t width, uint32_t color);
  37. #ifdef __cplusplus
  38. }
  39. #endif
  40. #endif /* __DRV_LCD_SPI_H__ */