Skip to content

Commit 0935852

Browse files
authored
Merge pull request stm32duino#2493 from fpistm/7bits_only
fix(wire): support only 7 bits addressing mode
2 parents 8032cb5 + 1b227db commit 0935852

File tree

3 files changed

+4
-17
lines changed

3 files changed

+4
-17
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_custom_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-13
Original file line numberDiff line numberDiff line change
@@ -637,25 +637,14 @@ static uint32_t i2c_getTiming(i2c_t *obj, uint32_t frequency)
637637
return ret;
638638
}
639639

640-
/**
641-
* @brief Default init and setup GPIO and I2C peripheral
642-
* @param obj : pointer to i2c_t structure
643-
* @retval none
644-
*/
645-
void i2c_init(i2c_t *obj)
646-
{
647-
i2c_custom_init(obj, 100000, I2C_ADDRESSINGMODE_7BIT, 0x33);
648-
}
649-
650640
/**
651641
* @brief Initialize and setup GPIO and I2C peripheral
652642
* @param obj : pointer to i2c_t structure
653643
* @param timing : one of the i2c_timing_e
654-
* @param addressingMode : I2C_ADDRESSINGMODE_7BIT or I2C_ADDRESSINGMODE_10BIT
655644
* @param ownAddress : device address
656645
* @retval none
657646
*/
658-
void i2c_custom_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)
659648
{
660649
if (obj != NULL) {
661650

@@ -771,7 +760,7 @@ void i2c_custom_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint3
771760
#endif
772761
handle->Init.OwnAddress1 = ownAddress;
773762
handle->Init.OwnAddress2 = 0;
774-
handle->Init.AddressingMode = addressingMode;
763+
handle->Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
775764
handle->Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
776765
handle->Init.GeneralCallMode = (obj->generalCall == 0) ? I2C_GENERALCALL_DISABLE : I2C_GENERALCALL_ENABLE;
777766
handle->Init.NoStretchMode = (obj->NoStretchMode == 0) ? I2C_NOSTRETCH_DISABLE : I2C_NOSTRETCH_ENABLE;

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

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

139139
/* Exported functions ------------------------------------------------------- */
140-
void i2c_init(i2c_t *obj);
141-
void i2c_custom_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode,
142-
uint32_t ownAddress);
140+
void i2c_init(i2c_t *obj, uint32_t timing, uint32_t ownAddress);
143141
void i2c_deinit(i2c_t *obj);
144142
void i2c_setTiming(i2c_t *obj, uint32_t frequency);
145143
i2c_status_e i2c_master_write(i2c_t *obj, uint8_t dev_address, uint8_t *data, uint16_t size);

0 commit comments

Comments
 (0)