add new i2c_master_register_write_word() in i2c_master

This commit is contained in:
Georges Palauqui 2024-06-11 10:11:27 +02:00
parent deb76ac058
commit 87b4c1c72f
No known key found for this signature in database
GPG Key ID: 1E45F544CE4D04A5
2 changed files with 15 additions and 0 deletions

View File

@ -57,3 +57,17 @@ esp_err_t i2c_master_register_write_byte(uint8_t device_address, uint8_t reg_add
return ret;
}
/**
* @brief Write a word to a I2C register
*/
esp_err_t i2c_master_register_write_word(uint8_t device_address, uint8_t reg_addr, uint16_t data)
{
int ret;
uint8_t write_buf[3] = {reg_addr, (data >> 8) & 0xFF, data & 0xFF};
ret = i2c_master_write_to_device(I2C_MASTER_NUM, device_address, write_buf, sizeof(write_buf),
I2C_MASTER_TIMEOUT_MS / portTICK_PERIOD_MS);
return ret;
}

View File

@ -10,5 +10,6 @@ esp_err_t i2c_master_init(void);
esp_err_t i2c_master_delete(void);
esp_err_t i2c_master_register_read(uint8_t device_address, uint8_t reg_addr, uint8_t * data, size_t len);
esp_err_t i2c_master_register_write_byte(uint8_t device_address, uint8_t reg_addr, uint8_t data);
esp_err_t i2c_master_register_write_word(uint8_t device_address, uint8_t reg_addr, uint16_t data);
#endif /* I2C_MASTER_H_ */