Skip to content

Commit 1b227db

Browse files
committed
fix(wire): support only 7 bits addressing mode
Fixes #2468. Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent 1cec35e commit 1b227db

File tree

3 files changed

+4
-6
lines changed

3 files changed

+4
-6
lines changed

libraries/Wire/src/Wire.cpp

Lines changed: 1 addition & 1 deletion
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));

libraries/Wire/src/utility/twi.c

Lines changed: 2 additions & 3 deletions
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;

libraries/Wire/src/utility/twi.h

Lines changed: 1 addition & 2 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy