Skip to content

Commit 8347901

Browse files
committed
Add support for hardwire I2C2 on blackpill F401
1 parent d05a128 commit 8347901

File tree

4 files changed

+17
-8
lines changed

4 files changed

+17
-8
lines changed

STM32F4/cores/maple/libmaple/gpio_def.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ typedef enum {
243243
GPIO_AFMODE_USART4_6 = 8,
244244
GPIO_AFMODE_CAN1_2 = 9,
245245
GPIO_AFMODE_TIM12_14 = 9,
246+
GPIO_AFMODE_I2C2_3 = 9,
246247
GPIO_AFMODE_OTG_FS = 10,
247248
GPIO_AFMODE_ETH = 11,
248249
GPIO_AFMODE_FSMC = 12,

STM32F4/cores/maple/libmaple/i2c.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ i2c_dev i2c_dev1 = {
5555
/** I2C2 device */
5656
i2c_dev i2c_dev2 = {
5757
.regs = I2C2_BASE,
58-
.sda_pin = PB11,
59-
.scl_pin = PB10,
58+
// .sda_pin = PB3,
59+
//.scl_pin = PB10,
60+
.sda_pin = BOARD_I2C2_SDA_PIN,
61+
.scl_pin = BOARD_I2C2_SCL_PIN,
6062
.clk_id = RCC_I2C2,
6163
.ev_nvic_line = NVIC_I2C2_EV,
6264
.er_nvic_line = NVIC_I2C2_ER,
@@ -206,7 +208,13 @@ void i2c_master_enable(i2c_dev *dev, uint32 flags) {
206208
delay_us(2);
207209
gpio_set_af_mode(dev->scl_pin, GPIO_AFMODE_I2C1_3);
208210
delay_us(2);
209-
gpio_set_af_mode(dev->sda_pin, GPIO_AFMODE_I2C1_3);
211+
if ((dev->sda_pin == PB3) || (dev->sda_pin == PB4)) {
212+
gpio_set_af_mode(dev->sda_pin, GPIO_AFMODE_I2C2_3);
213+
}
214+
else {
215+
gpio_set_af_mode(dev->sda_pin, GPIO_AFMODE_I2C1_3);
216+
}
217+
210218

211219
i2c_init(dev);
212220

STM32F4/platform.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ tools.stlink_upload.cmd=stlink_upload
121121
tools.stlink_upload.cmd.windows=stlink_upload.bat
122122
tools.stlink_upload.path.windows={runtime.hardware.path}/tools/win
123123
tools.stlink_upload.path.macosx={runtime.hardware.path}/tools/macosx
124-
tools.stlink_upload.path.linux={runtime.hardware.path}/tools/linux
124+
tools.stlink_upload.path.linux={runtime.hardware.path}/tools/linux64
125125
tools.stlink_upload.path.linux64={runtime.hardware.path}/tools/linux64
126126
tools.stlink_upload.upload.params.verbose=-d
127127
tools.stlink_upload.upload.params.quiet=
@@ -132,7 +132,7 @@ tools.hid_upload.cmd=hid_upload
132132
tools.hid_upload.cmd.windows=hid_upload.bat
133133
tools.hid_upload.path.windows={runtime.hardware.path}/tools/win
134134
tools.hid_upload.path.macosx={runtime.hardware.path}/tools/macosx
135-
tools.hid_upload.path.linux={runtime.hardware.path}/tools/linux
135+
tools.hid_upload.path.linux={runtime.hardware.path}/tools/linux64
136136
tools.hid_upload.path.linux64={runtime.hardware.path}/tools/linux64
137137
tools.hid_upload.upload.params.verbose=-d
138138
tools.hid_upload.upload.params.quiet=n

STM32F4/variants/blackpill_f401/blackpill_f401.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,11 @@
5252
//#define BOARD_USART6_TX_PIN PA11 // USB_DM
5353
//#define BOARD_USART6_RX_PIN PA12 // USB_DP
5454

55-
#define BOARD_NR_I2C 1
55+
#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
58+
#define BOARD_I2C2_SCL_PIN PB10
59+
#define BOARD_I2C2_SDA_PIN PB3
6060

6161
#define BOARD_NR_SPI 3
6262
#define BOARD_SPI1_NSS_PIN PA4

0 commit comments

Comments
 (0)