Skip to content

Commit 1b227db

Browse files
committed
fix(wire): support only 7 bits addressing mode
Fixes #2468. Signed-off-by: Frederic Pillon <[email protected]>
1 parent 1cec35e commit 1b227db

File tree

3 files changed

+4
-6
lines changed

3 files changed

+4
-6
lines changed

Diff for: libraries/Wire/src/Wire.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ void TwoWire::begin(uint8_t address, bool generalCall, bool NoStretchMode)
104104

105105
recoverBus(); // in case I2C bus (device) is stuck after a reset for example
106106

107-
i2c_init(&_i2c, 100000, I2C_ADDRESSINGMODE_7BIT, ownAddress);
107+
i2c_init(&_i2c, 100000, ownAddress);
108108

109109
if (_i2c.isMaster == 0) {
110110
// i2c_attachSlaveTxEvent(&_i2c, reinterpret_cast<void(*)(i2c_t*)>(&TwoWire::onRequestService));

Diff for: libraries/Wire/src/utility/twi.c

+2-3
Original file line numberDiff line numberDiff line change
@@ -641,11 +641,10 @@ static uint32_t i2c_getTiming(i2c_t *obj, uint32_t frequency)
641641
* @brief Initialize and setup GPIO and I2C peripheral
642642
* @param obj : pointer to i2c_t structure
643643
* @param timing : one of the i2c_timing_e
644-
* @param addressingMode : I2C_ADDRESSINGMODE_7BIT or I2C_ADDRESSINGMODE_10BIT
645644
* @param ownAddress : device address
646645
* @retval none
647646
*/
648-
void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t ownAddress)
647+
void i2c_init(i2c_t *obj, uint32_t timing, uint32_t ownAddress)
649648
{
650649
if (obj != NULL) {
651650

@@ -761,7 +760,7 @@ void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t own
761760
#endif
762761
handle->Init.OwnAddress1 = ownAddress;
763762
handle->Init.OwnAddress2 = 0;
764-
handle->Init.AddressingMode = addressingMode;
763+
handle->Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
765764
handle->Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
766765
handle->Init.GeneralCallMode = (obj->generalCall == 0) ? I2C_GENERALCALL_DISABLE : I2C_GENERALCALL_ENABLE;
767766
handle->Init.NoStretchMode = (obj->NoStretchMode == 0) ? I2C_NOSTRETCH_DISABLE : I2C_NOSTRETCH_ENABLE;

Diff for: libraries/Wire/src/utility/twi.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,7 @@ typedef enum {
137137
} i2c_status_e;
138138

139139
/* Exported functions ------------------------------------------------------- */
140-
void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode,
141-
uint32_t ownAddress);
140+
void i2c_init(i2c_t *obj, uint32_t timing, uint32_t ownAddress);
142141
void i2c_deinit(i2c_t *obj);
143142
void i2c_setTiming(i2c_t *obj, uint32_t frequency);
144143
i2c_status_e i2c_master_write(i2c_t *obj, uint8_t dev_address, uint8_t *data, uint16_t size);

0 commit comments

Comments
 (0)