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*/
|