i2c.h


1
#ifndef _I2C_H
2
#define _I2C_H
3
4
#define I2C1_OPEN
5
//#define I2C2_OPEN
6
7
#define I2C_SCL_SPEED       (200000)    // SCL in Hz
8
#define I2C_OWN_ADDR        (0x00)      // use 0x00 for master
9
10
/**
11
 * @brief Definition for I2C1
12
 */  
13
#if defined  I2C1_OPEN
14
  #define Open_I2C                        I2C1
15
  #define Open_I2C_CLK                    RCC_APB1Periph_I2C1
16
  
17
  #define Open_I2C_SCL_PIN                GPIO_Pin_6
18
  #define Open_I2C_SCL_GPIO_PORT          GPIOB
19
  #define Open_I2C_SCL_GPIO_CLK           RCC_AHB1Periph_GPIOB
20
  #define Open_I2C_SCL_SOURCE             GPIO_PinSource6
21
  #define Open_I2C_SCL_AF                 GPIO_AF_I2C1
22
  
23
  #define Open_I2C_SDA_PIN                GPIO_Pin_9
24
  #define Open_I2C_SDA_GPIO_PORT          GPIOB
25
  #define Open_I2C_SDA_GPIO_CLK           RCC_AHB1Periph_GPIOB
26
  #define Open_I2C_SDA_SOURCE             GPIO_PinSource9
27
  #define Open_I2C_SDA_AF                 GPIO_AF_I2C1
28
  
29
  #define Open_I2C_IRQn                   I2C1_EV_IRQn
30
  #define I2Cx_IRQHANDLER                 I2C1_EV_IRQHandler
31
32
#elif defined I2C2_OPEN
33
  #define Open_I2C                        I2C2
34
  #define Open_I2C_CLK                    RCC_APB1Periph_I2C2
35
36
  #define Open_I2C_SCL_PIN                GPIO_Pin_10
37
  #define Open_I2C_SCL_GPIO_PORT          GPIOB
38
  #define Open_I2C_SCL_GPIO_CLK           RCC_AHB1Periph_GPIOB
39
  #define Open_I2C_SCL_SOURCE             GPIO_PinSource10
40
  #define Open_I2C_SCL_AF                 GPIO_AF_I2C2
41
42
  #define Open_I2C_SDA_PIN                GPIO_Pin_11
43
  #define Open_I2C_SDA_GPIO_PORT          GPIOB
44
  #define Open_I2C_SDA_GPIO_CLK           RCC_AHB1Periph_GPIOB
45
  #define Open_I2C_SDA_SOURCE             GPIO_PinSource11
46
  #define Open_I2C_SDA_AF                 GPIO_AF_I2C2
47
48
  #define Open_I2C_IRQn                   I2C2_EV_IRQn
49
  #define I2Cx_IRQHANDLER                 I2C2_EV_IRQHandler
50
51
#else
52
  #error "Please select the I2C-Device to be used (in i2c.h)"
53
#endif      
54
55
void I2C_BusInit(void);
56
int  I2C_ReadTransfer(uint8_t dev_addr, uint8_t *buffer, int cnt, uint32_t ptr, uint8_t ptrlen);
57
int  I2C_WriteTransfer(uint8_t dev_addr, uint8_t *buffer, int cnt, uint32_t ptr, uint8_t ptrlen);
58
59
#endif /*_I2C_H*/