From 1cec35ebaeaef5e474239bf744ab4e8f980027b3 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Wed, 21 Aug 2024 11:44:37 +0200 Subject: [PATCH 1/2] chore(wire): remove useless i2c init Signed-off-by: Frederic Pillon --- libraries/Wire/src/Wire.cpp | 2 +- libraries/Wire/src/utility/twi.c | 12 +----------- libraries/Wire/src/utility/twi.h | 3 +-- 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp index c25a915a8b..9728c8849d 100644 --- a/libraries/Wire/src/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -104,7 +104,7 @@ void TwoWire::begin(uint8_t address, bool generalCall, bool NoStretchMode) recoverBus(); // in case I2C bus (device) is stuck after a reset for example - i2c_custom_init(&_i2c, 100000, I2C_ADDRESSINGMODE_7BIT, ownAddress); + i2c_init(&_i2c, 100000, I2C_ADDRESSINGMODE_7BIT, ownAddress); if (_i2c.isMaster == 0) { // i2c_attachSlaveTxEvent(&_i2c, reinterpret_cast(&TwoWire::onRequestService)); diff --git a/libraries/Wire/src/utility/twi.c b/libraries/Wire/src/utility/twi.c index 8cdca94c53..2029ae669c 100644 --- a/libraries/Wire/src/utility/twi.c +++ b/libraries/Wire/src/utility/twi.c @@ -637,16 +637,6 @@ static uint32_t i2c_getTiming(i2c_t *obj, uint32_t frequency) return ret; } -/** - * @brief Default init and setup GPIO and I2C peripheral - * @param obj : pointer to i2c_t structure - * @retval none - */ -void i2c_init(i2c_t *obj) -{ - i2c_custom_init(obj, 100000, I2C_ADDRESSINGMODE_7BIT, 0x33); -} - /** * @brief Initialize and setup GPIO and I2C peripheral * @param obj : pointer to i2c_t structure @@ -655,7 +645,7 @@ void i2c_init(i2c_t *obj) * @param ownAddress : device address * @retval none */ -void i2c_custom_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t ownAddress) +void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t ownAddress) { if (obj != NULL) { diff --git a/libraries/Wire/src/utility/twi.h b/libraries/Wire/src/utility/twi.h index 8fb3dc6b81..b133947048 100644 --- a/libraries/Wire/src/utility/twi.h +++ b/libraries/Wire/src/utility/twi.h @@ -137,8 +137,7 @@ typedef enum { } i2c_status_e; /* Exported functions ------------------------------------------------------- */ -void i2c_init(i2c_t *obj); -void i2c_custom_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, +void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t ownAddress); void i2c_deinit(i2c_t *obj); void i2c_setTiming(i2c_t *obj, uint32_t frequency); From 1b227dbc812163d17bd3f818ff889d049466e228 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Wed, 21 Aug 2024 11:53:04 +0200 Subject: [PATCH 2/2] fix(wire): support only 7 bits addressing mode Fixes #2468. Signed-off-by: Frederic Pillon --- libraries/Wire/src/Wire.cpp | 2 +- libraries/Wire/src/utility/twi.c | 5 ++--- libraries/Wire/src/utility/twi.h | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp index 9728c8849d..1840060aa1 100644 --- a/libraries/Wire/src/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -104,7 +104,7 @@ void TwoWire::begin(uint8_t address, bool generalCall, bool NoStretchMode) recoverBus(); // in case I2C bus (device) is stuck after a reset for example - i2c_init(&_i2c, 100000, I2C_ADDRESSINGMODE_7BIT, ownAddress); + i2c_init(&_i2c, 100000, ownAddress); if (_i2c.isMaster == 0) { // i2c_attachSlaveTxEvent(&_i2c, reinterpret_cast(&TwoWire::onRequestService)); diff --git a/libraries/Wire/src/utility/twi.c b/libraries/Wire/src/utility/twi.c index 2029ae669c..6bdcfec75e 100644 --- a/libraries/Wire/src/utility/twi.c +++ b/libraries/Wire/src/utility/twi.c @@ -641,11 +641,10 @@ static uint32_t i2c_getTiming(i2c_t *obj, uint32_t frequency) * @brief Initialize and setup GPIO and I2C peripheral * @param obj : pointer to i2c_t structure * @param timing : one of the i2c_timing_e - * @param addressingMode : I2C_ADDRESSINGMODE_7BIT or I2C_ADDRESSINGMODE_10BIT * @param ownAddress : device address * @retval none */ -void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t ownAddress) +void i2c_init(i2c_t *obj, uint32_t timing, uint32_t ownAddress) { if (obj != NULL) { @@ -761,7 +760,7 @@ void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, uint32_t own #endif handle->Init.OwnAddress1 = ownAddress; handle->Init.OwnAddress2 = 0; - handle->Init.AddressingMode = addressingMode; + handle->Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; handle->Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; handle->Init.GeneralCallMode = (obj->generalCall == 0) ? I2C_GENERALCALL_DISABLE : I2C_GENERALCALL_ENABLE; handle->Init.NoStretchMode = (obj->NoStretchMode == 0) ? I2C_NOSTRETCH_DISABLE : I2C_NOSTRETCH_ENABLE; diff --git a/libraries/Wire/src/utility/twi.h b/libraries/Wire/src/utility/twi.h index b133947048..dfde7645c2 100644 --- a/libraries/Wire/src/utility/twi.h +++ b/libraries/Wire/src/utility/twi.h @@ -137,8 +137,7 @@ typedef enum { } i2c_status_e; /* Exported functions ------------------------------------------------------- */ -void i2c_init(i2c_t *obj, uint32_t timing, uint32_t addressingMode, - uint32_t ownAddress); +void i2c_init(i2c_t *obj, uint32_t timing, uint32_t ownAddress); void i2c_deinit(i2c_t *obj); void i2c_setTiming(i2c_t *obj, uint32_t frequency); i2c_status_e i2c_master_write(i2c_t *obj, uint8_t dev_address, uint8_t *data, uint16_t size); 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