More I2C changes.

This commit is contained in:
Jonathan Naylor 2021-04-11 20:34:42 +01:00
parent 4aa30664b9
commit a3e0ad82e2
2 changed files with 5 additions and 5 deletions

View File

@ -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);

2
I2C3.h
View File

@ -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