luat_i2c.h 932 B

1234567891011121314151617181920212223242526
  1. #ifndef LUAT_I2C_H
  2. #define LUAT_I2C_H
  3. #include "luat_base.h"
  4. typedef struct luat_ei2c {
  5. int sda;
  6. int scl;
  7. unsigned char addr;
  8. } luat_ei2c;//软件i2c
  9. #define LUAT_EI2C_TYPE "EI2C*"
  10. #define toei2c(L) ((luat_ei2c *)luaL_checkudata(L, 1, LUAT_EI2C_TYPE))
  11. int luat_i2c_exist(int id);
  12. int luat_i2c_setup(int id, int speed, int slaveaddr);
  13. int luat_i2c_close(int id);
  14. int luat_i2c_send(int id, int addr, void* buff, size_t len, uint8_t stop);
  15. int luat_i2c_recv(int id, int addr, void* buff, size_t len);
  16. int luat_i2c_write_reg(int id, int addr, int reg, uint16_t value, uint8_t stop);
  17. int luat_i2c_read_reg(int id, int addr, int reg, uint16_t* value);
  18. int luat_i2c_transfer(int id, int addr, uint8_t *reg, size_t reg_len, uint8_t *buff, size_t len);
  19. int luat_i2c_no_block_transfer(int id, int addr, uint8_t is_read, uint8_t *reg, size_t reg_len, uint8_t *buff, size_t len, uint16_t Toms, void *CB, void *pParam);
  20. #endif