Skip to content

Commit 951c1ac

Browse files
committed
Add conditional select of I2C pins.
1 parent 8347901 commit 951c1ac

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

STM32F4/cores/maple/libmaple/i2c.c

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,16 @@
4343
/** I2C1 device */
4444
i2c_dev i2c_dev1 = {
4545
.regs = I2C1_BASE,
46-
.sda_pin = PB7, // PB8
46+
#ifdef BOARD_I2C1_SDA_PIN
47+
.sda_pin = BOARD_I2C1_SDA_PIN,
48+
#else
49+
.sda_pin = PB7,
50+
#endif
51+
#ifdef BOARD_I2C1_SCL_PIN
52+
.scl_pin = BOARD_I2C1_SCL_PIN,
53+
#else
4754
.scl_pin = PB6,
55+
#endif
4856
.clk_id = RCC_I2C1,
4957
.ev_nvic_line = NVIC_I2C1_EV,
5058
.er_nvic_line = NVIC_I2C1_ER,
@@ -55,10 +63,16 @@ i2c_dev i2c_dev1 = {
5563
/** I2C2 device */
5664
i2c_dev i2c_dev2 = {
5765
.regs = I2C2_BASE,
58-
// .sda_pin = PB3,
59-
//.scl_pin = PB10,
60-
.sda_pin = BOARD_I2C2_SDA_PIN,
61-
.scl_pin = BOARD_I2C2_SCL_PIN,
66+
#ifdef BOARD_I2C2_SDA_PIN
67+
.sda_pin = BOARD_I2C2_SDA_PIN,
68+
#else
69+
.sda_pin = PB11,
70+
#endif
71+
#ifdef BOARD_I2C2_SCL_PIN
72+
.scl_pin = BOARD_I2C2_SCL_PIN,
73+
#else
74+
.scl_pin = PB10,
75+
#endif
6276
.clk_id = RCC_I2C2,
6377
.ev_nvic_line = NVIC_I2C2_EV,
6478
.er_nvic_line = NVIC_I2C2_ER,
@@ -208,6 +222,7 @@ void i2c_master_enable(i2c_dev *dev, uint32 flags) {
208222
delay_us(2);
209223
gpio_set_af_mode(dev->scl_pin, GPIO_AFMODE_I2C1_3);
210224
delay_us(2);
225+
/* specific SDA pin remap for I2C2 on F4xx mcu*/
211226
if ((dev->sda_pin == PB3) || (dev->sda_pin == PB4)) {
212227
gpio_set_af_mode(dev->sda_pin, GPIO_AFMODE_I2C2_3);
213228
}

STM32F4/variants/blackpill_f401/blackpill_f401.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
#define BOARD_NR_I2C 2
5656
#define BOARD_I2C1_SCL_PIN PB6
5757
#define BOARD_I2C1_SDA_PIN PB7
58+
#define BOARD_I2C1A_SCL_PIN PB8
59+
#define BOARD_I2C1A_SDA_PIN PB9
5860
#define BOARD_I2C2_SCL_PIN PB10
5961
#define BOARD_I2C2_SDA_PIN PB3
6062

STM32F4/variants/blackpill_f411/blackpill_f411.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,13 @@
5353
//#define BOARD_USART6_TX_PIN PA11 // USB_DM
5454
//#define BOARD_USART6_RX_PIN PA12 // USB_DP
5555

56-
#define BOARD_NR_I2C 1
56+
#define BOARD_NR_I2C 2
5757
#define BOARD_I2C1_SCL_PIN PB6
5858
#define BOARD_I2C1_SDA_PIN PB7
5959
#define BOARD_I2C1A_SCL_PIN PB8
6060
#define BOARD_I2C1A_SDA_PIN PB9
61+
#define BOARD_I2C2_SCL_PIN PB10
62+
#define BOARD_I2C2_SDA_PIN PB3
6163

6264
#define BOARD_NR_SPI 3
6365
#define BOARD_SPI1_NSS_PIN PA4

0 commit comments

Comments
 (0)