123456789101112131415161718192021222324252627282930313233 |
- #pragma once
- #ifndef I2C_H
- #define I2C_H
- #include "stm8s.h"
- #define I2C_FAST 1
- #define F_MASTER_MHZ 16UL
- #define F_MASTER_HZ 16000000UL
- #ifdef I2C_FAST
- //400 кГц
- #define F_I2C_HZ 400000UL
- #else
- //100 кГц
- #define F_I2C_HZ 100000UL
- #endif // I2C_FAST
- //Результат выполнения операции с i2c
- typedef enum {
- I2C_SUCCESS = 0,
- I2C_TIMEOUT,
- I2C_ERROR
- } t_i2c_status;
- // Инициализация I2C интерфейса
- extern void i2c_master_init(void);
- // Запись регистра slave-устройства
- extern t_i2c_status i2c_wr_reg(uint8_t address, uint8_t reg_addr, uint16_t data);
- // Чтение регистра slave-устройства
- extern t_i2c_status i2c_rd_reg(uint8_t address, uint8_t reg_addr, uint16_t * data);
- #endif // I2C_H
|