user_twis.h 1009 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef __USER_TWIS_H__
  2. #define __USER_TWIS_H__
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "define.h"
  6. #include "nrf_drv_gpiote.h"
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. typedef void (*i2c_data_func)(bool is_wr,int count);
  11. typedef struct{
  12. bool init_stat;
  13. uint8_t addr;
  14. int wr_len;
  15. uint8_t *wr_data;
  16. int rd_len;
  17. uint8_t *rd_data;
  18. i2c_data_func func;
  19. }i2c_slave_work;
  20. #define I2C_SLAVE_WORK_DEFAULT_CONFIG \
  21. { \
  22. .init_stat=false, \
  23. .addr=0, \
  24. .wr_len=0, \
  25. .wr_data=NULL, \
  26. .rd_len=0, \
  27. .rd_data=NULL, \
  28. }
  29. void user_twis_init(void);
  30. void user_twis_uninit(void);
  31. void set_user_twis_addr(uint8_t addr);
  32. void set_user_twis_rd(uint8_t *data,int len);
  33. void set_user_twis_wr(uint8_t *data,int len);
  34. void set_user_twis_data_func(i2c_data_func func);
  35. #ifdef __cplusplus
  36. }
  37. #endif
  38. #endif //__USER_TWIS_H__