i2c.h 826 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #ifndef I2C_H
  3. #define I2C_H
  4. #include "stm8s.h"
  5. #define F_MASTER_MHZ 16UL
  6. #define F_MASTER_HZ 16000000UL
  7. //100 кГц
  8. #define F_I2C_HZ 100000UL
  9. //Результат выполнения операции с i2c
  10. typedef enum {
  11. I2C_SUCCESS = 0,
  12. I2C_TIMEOUT,
  13. I2C_ERROR
  14. } t_i2c_status;
  15. // Инициализация I2C интерфейса
  16. extern void i2c_master_init(void);
  17. // Запись регистра slave-устройства
  18. extern t_i2c_status i2c_wr_reg(uint8_t address, uint8_t reg_addr, \
  19. const uint8_t * data, uint8_t length);
  20. // Чтение регистра slave-устройства
  21. extern t_i2c_status i2c_rd_reg(uint8_t address, uint8_t reg_addr, \
  22. uint8_t * data, uint8_t length);
  23. #endif // I2C_H