mirror of https://github.com/ARMmbed/mbed-os.git
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
parent
21bc5af3c2
commit
5317ea5bb6
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue