CST816D.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef _CST816D_H
  2. #define _CST816D_H
  3. #include <Wire.h>
  4. #define I2C_ADDR_CST816D 0x15
  5. //手势
  6. enum GESTURE
  7. {
  8. None = 0x00, //无手势
  9. SlideDown = 0x01, //向下滑动
  10. SlideUp = 0x02, //向上滑动
  11. SlideLeft = 0x03, //向左滑动
  12. SlideRight = 0x04, //向右滑动
  13. SingleTap = 0x05, //单击
  14. DoubleTap = 0x0B, //双击
  15. LongPress = 0x0C //长按
  16. };
  17. /**************************************************************************/
  18. /*!
  19. @brief CST816D I2C CTP controller driver
  20. */
  21. /**************************************************************************/
  22. class CST816D
  23. {
  24. public:
  25. CST816D(int8_t sda_pin = -1, int8_t scl_pin = -1, int8_t rst_pin = -1, int8_t int_pin = -1);
  26. void begin(void);
  27. bool getTouch(uint16_t *x, uint16_t *y, uint8_t *gesture);
  28. private:
  29. int8_t _sda, _scl, _rst, _int;
  30. uint8_t i2c_read(uint8_t addr);
  31. uint8_t i2c_read_continuous(uint8_t addr, uint8_t *data, uint32_t length);
  32. void i2c_write(uint8_t addr, uint8_t data);
  33. uint8_t i2c_write_continuous(uint8_t addr, const uint8_t *data, uint32_t length);
  34. };
  35. #endif