stm32: i2c-v2: drop overly restrictive helpers.
* didn't follow naming conventions * overly restricted to single byte register style commands. Will be replaced by freeform transfer functions
This commit is contained in:
parent
1edcc1b7da
commit
fb3b5e08f3
@ -427,10 +427,6 @@ void i2c_enable_rxdma(uint32_t i2c);
|
|||||||
void i2c_disable_rxdma(uint32_t i2c);
|
void i2c_disable_rxdma(uint32_t i2c);
|
||||||
void i2c_enable_txdma(uint32_t i2c);
|
void i2c_enable_txdma(uint32_t i2c);
|
||||||
void i2c_disable_txdma(uint32_t i2c);
|
void i2c_disable_txdma(uint32_t i2c);
|
||||||
void write_i2c(uint32_t i2c, uint8_t i2c_addr, uint8_t reg,
|
|
||||||
uint8_t size, uint8_t *data);
|
|
||||||
void read_i2c(uint32_t i2c, uint8_t i2c_addr, uint8_t reg,
|
|
||||||
uint8_t size, uint8_t *data);
|
|
||||||
|
|
||||||
END_DECLS
|
END_DECLS
|
||||||
|
|
||||||
|
@ -375,79 +375,4 @@ void i2c_disable_txdma(uint32_t i2c)
|
|||||||
I2C_CR1(i2c) &= ~I2C_CR1_TXDMAEN;
|
I2C_CR1(i2c) &= ~I2C_CR1_TXDMAEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_i2c(uint32_t i2c, uint8_t i2c_addr, uint8_t reg, uint8_t size,
|
|
||||||
uint8_t *data)
|
|
||||||
{
|
|
||||||
int wait;
|
|
||||||
int i;
|
|
||||||
while (i2c_busy(i2c) == 1);
|
|
||||||
while (i2c_is_start(i2c) == 1);
|
|
||||||
/*Setting transfer properties*/
|
|
||||||
i2c_set_bytes_to_transfer(i2c, size + 1);
|
|
||||||
i2c_set_7bit_address(i2c, (i2c_addr & 0x7F));
|
|
||||||
i2c_set_write_transfer_dir(i2c);
|
|
||||||
i2c_enable_autoend(i2c);
|
|
||||||
/*start transfer*/
|
|
||||||
i2c_send_start(i2c);
|
|
||||||
|
|
||||||
wait = true;
|
|
||||||
while (wait) {
|
|
||||||
if (i2c_transmit_int_status(i2c)) {
|
|
||||||
wait = false;
|
|
||||||
}
|
|
||||||
while (i2c_nack(i2c));
|
|
||||||
}
|
|
||||||
|
|
||||||
i2c_send_data(i2c, reg);
|
|
||||||
for (i = 0; i < size; i++) {
|
|
||||||
wait = true;
|
|
||||||
while (wait) {
|
|
||||||
if (i2c_transmit_int_status(i2c)) {
|
|
||||||
wait = false;
|
|
||||||
}
|
|
||||||
while (i2c_nack(i2c));
|
|
||||||
}
|
|
||||||
i2c_send_data(i2c, data[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void read_i2c(uint32_t i2c, uint8_t i2c_addr, uint8_t reg, uint8_t size,
|
|
||||||
uint8_t *data)
|
|
||||||
{
|
|
||||||
int wait;
|
|
||||||
int i;
|
|
||||||
while (i2c_busy(i2c) == 1);
|
|
||||||
while (i2c_is_start(i2c) == 1);
|
|
||||||
/*Setting transfer properties*/
|
|
||||||
i2c_set_bytes_to_transfer(i2c, 1);
|
|
||||||
i2c_set_7bit_address(i2c, i2c_addr);
|
|
||||||
i2c_set_write_transfer_dir(i2c);
|
|
||||||
i2c_disable_autoend(i2c);
|
|
||||||
/*start transfer*/
|
|
||||||
i2c_send_start(i2c);
|
|
||||||
|
|
||||||
wait = true;
|
|
||||||
while (wait) {
|
|
||||||
if (i2c_transmit_int_status(i2c)) {
|
|
||||||
wait = false;
|
|
||||||
}
|
|
||||||
while (i2c_nack(i2c)); /* Some error */
|
|
||||||
}
|
|
||||||
i2c_send_data(i2c, reg);
|
|
||||||
|
|
||||||
while (i2c_is_start(i2c) == 1);
|
|
||||||
/*Setting transfer properties*/
|
|
||||||
i2c_set_bytes_to_transfer(i2c, size);
|
|
||||||
i2c_set_7bit_address(i2c, i2c_addr);
|
|
||||||
i2c_set_read_transfer_dir(i2c);
|
|
||||||
i2c_enable_autoend(i2c);
|
|
||||||
/*start transfer*/
|
|
||||||
i2c_send_start(i2c);
|
|
||||||
|
|
||||||
for (i = 0; i < size; i++) {
|
|
||||||
while (i2c_received_data(i2c) == 0);
|
|
||||||
data[i] = i2c_get_data(i2c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user