From a3e0ad82e2d861aee19c6a89613fefe05d9608a9 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sun, 11 Apr 2021 20:34:42 +0100 Subject: [PATCH] More I2C changes. --- I2C3.cpp | 8 ++++---- I2C3.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/I2C3.cpp b/I2C3.cpp index 397c834..77979cc 100644 --- a/I2C3.cpp +++ b/I2C3.cpp @@ -89,7 +89,7 @@ uint8_t CI2C3::write(uint8_t addr, const uint8_t* data, uint16_t length) size = MAX_NBYTES_SIZE; else size = length; - configureDataTransfer(size); + configureDataTransfer(size, addr); // Start Writing Data while (length > 0U) { @@ -108,7 +108,7 @@ uint8_t CI2C3::write(uint8_t addr, const uint8_t* data, uint16_t length) size = MAX_NBYTES_SIZE; else size = length; - configureDataTransfer(size); + configureDataTransfer(size, addr); } } @@ -136,7 +136,7 @@ bool CI2C3::waitISRFlagsSet(uint32_t flags) return true; } -void CI2C3::configureDataTransfer(uint8_t size) +void CI2C3::configureDataTransfer(uint8_t size, uint8_t addr) { I2C3->CR2 &= ~(I2C_CR2_SADD | I2C_CR2_NBYTES | @@ -145,7 +145,7 @@ void CI2C3::configureDataTransfer(uint8_t size) (I2C_CR2_RD_WRN & (uint32_t)(I2C_Generate_Start_Write >> (31U - I2C_CR2_RD_WRN_Pos))) | I2C_CR2_START | I2C_CR2_STOP); - I2C3->CR2 |= (uint32_t)(((uint32_t)m_addr & I2C_CR2_SADD) | + I2C3->CR2 |= (uint32_t)(((uint32_t)addr & I2C_CR2_SADD) | (((uint32_t)size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | (uint32_t)I2C_CR2_RELOAD | (uint32_t)I2C_Generate_Start_Write); diff --git a/I2C3.h b/I2C3.h index b9e84fa..c130070 100644 --- a/I2C3.h +++ b/I2C3.h @@ -39,7 +39,7 @@ public: private: bool waitISRFlagsSet(uint32_t flags); - void configureDataTransfer(uint8_t size); + void configureDataTransfer(uint8_t size, uint8_t addr); }; #endif