STM32: I2C - pin mode

The default pin mode shall be set as part of the pinamp_pinout, and
as defined in tables of PeripheralPins.c, but this is currently
over-written by a call to pin_mode(pin, PullNone); from
mbed_pinmap_common.c, so we need a set the mode again here, including
OpenDrain config as needed for I2C.
pull/3665/head
Laurent MEUNIER 2017-01-23 11:54:30 +01:00
parent 21bc5af3c2
commit 5317ea5bb6
1 changed files with 10 additions and 10 deletions

View File

@ -259,8 +259,8 @@ void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
// Configure I2C pins
pinmap_pinout(sda, PinMap_I2C_SDA);
pinmap_pinout(scl, PinMap_I2C_SCL);
pin_mode(sda, PullUp);
pin_mode(scl, PullUp);
pin_mode(sda, OpenDrainPullUp);
pin_mode(scl, OpenDrainPullUp);
obj_s->event_i2cIRQ = I2C1_EV_IRQn;
obj_s->error_i2cIRQ = I2C1_ER_IRQn;
}
@ -273,8 +273,8 @@ void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
// Configure I2C pins
pinmap_pinout(sda, PinMap_I2C_SDA);
pinmap_pinout(scl, PinMap_I2C_SCL);
pin_mode(sda, PullUp);
pin_mode(scl, PullUp);
pin_mode(sda, OpenDrainPullUp);
pin_mode(scl, OpenDrainPullUp);
obj_s->event_i2cIRQ = I2C2_EV_IRQn;
obj_s->error_i2cIRQ = I2C2_ER_IRQn;
}
@ -287,8 +287,8 @@ void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
// Configure I2C pins
pinmap_pinout(sda, PinMap_I2C_SDA);
pinmap_pinout(scl, PinMap_I2C_SCL);
pin_mode(sda, PullUp);
pin_mode(scl, PullUp);
pin_mode(sda, OpenDrainPullUp);
pin_mode(scl, OpenDrainPullUp);
obj_s->event_i2cIRQ = I2C3_EV_IRQn;
obj_s->error_i2cIRQ = I2C3_ER_IRQn;
}
@ -301,8 +301,8 @@ void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
// Configure I2C pins
pinmap_pinout(sda, PinMap_I2C_SDA);
pinmap_pinout(scl, PinMap_I2C_SCL);
pin_mode(sda, PullUp);
pin_mode(scl, PullUp);
pin_mode(sda, OpenDrainPullUp);
pin_mode(scl, OpenDrainPullUp);
obj_s->event_i2cIRQ = I2C4_EV_IRQn;
obj_s->error_i2cIRQ = I2C4_ER_IRQn;
}
@ -315,8 +315,8 @@ void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
// Configure I2C pins
pinmap_pinout(sda, PinMap_I2C_SDA);
pinmap_pinout(scl, PinMap_I2C_SCL);
pin_mode(sda, PullUp);
pin_mode(scl, PullUp);
pin_mode(sda, OpenDrainPullUp);
pin_mode(scl, OpenDrainPullUp);
obj_s->event_i2cIRQ = FMPI2C1_EV_IRQn;
obj_s->error_i2cIRQ = FMPI2C1_ER_IRQn;
}