RS41ng/src/hal/i2c.h

35 wiersze
862 B
C

#ifndef __HAL_I2C_H
#define __HAL_I2C_H
#define I2C_PORT I2C2
#define I2C_PORT_RCC_PERIPH RCC_APB1Periph_I2C2
#define I2C_GPIO GPIOB
// PB10: I2C2_SCL/USART3_TX
#define I2C_PIN_SCL GPIO_Pin_10
// PB11: I2C2_SDA/USART3_RX
#define I2C_PIN_SDA GPIO_Pin_11
#include "hal.h"
typedef struct _i2c_port i2c_port;
extern i2c_port DEFAULT_I2C_PORT;
#ifdef __cplusplus
extern "C" {
#endif
void i2c_init(uint32_t clock_speed);
void i2c_uninit();
int i2c_read_bytes(struct _i2c_port *port, uint8_t address, uint8_t reg, uint8_t size, uint8_t *data);
int i2c_read_byte(struct _i2c_port *port, uint8_t address, uint8_t reg, uint8_t *data);
int i2c_write_bytes(struct _i2c_port *port, uint8_t address, uint8_t reg, uint8_t size, uint8_t *data);
int i2c_write_byte(struct _i2c_port *port, uint8_t address, uint8_t reg, uint8_t data);
#ifdef __cplusplus
};
#endif
#endif