Initial commit
This commit is contained in:
46
src/i2c.c
Normal file
46
src/i2c.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* @file i2c.c
|
||||
* @author marisa (marisa@fwmari.net)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-05-06
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
|
||||
#include "i2c.h"
|
||||
|
||||
i2c_master_bus_handle_t m_handle = NULL;
|
||||
|
||||
static bool busInitialized = false;
|
||||
|
||||
i2c_master_bus_handle_t i2cInitMasterBus(uint8_t sda, uint8_t scl) {
|
||||
i2c_master_bus_config_t i2cMasterConfig = {
|
||||
.clk_source = I2C_CLK_SRC_DEFAULT,
|
||||
.i2c_port = I2C_NUM_0,
|
||||
.scl_io_num = scl,
|
||||
.sda_io_num = sda,
|
||||
.glitch_ignore_cnt = 7,
|
||||
.flags.enable_internal_pullup = true,
|
||||
};
|
||||
|
||||
ESP_ERROR_CHECK(i2c_new_master_bus(&i2cMasterConfig, &m_handle));
|
||||
busInitialized = true;
|
||||
return m_handle;
|
||||
}
|
||||
|
||||
i2c_master_dev_handle_t i2cInitDevice(uint8_t addr, uint32_t speed) {
|
||||
assert(busInitialized);
|
||||
|
||||
i2c_device_config_t deviceCfg = {
|
||||
.dev_addr_length = I2C_ADDR_BIT_LEN_7,
|
||||
.device_address = addr,
|
||||
.scl_speed_hz = speed,
|
||||
};
|
||||
|
||||
i2c_master_dev_handle_t devHandle;
|
||||
ESP_ERROR_CHECK(i2c_master_bus_add_device(m_handle, &deviceCfg, &devHandle));
|
||||
|
||||
return devHandle;
|
||||
}
|
||||
Reference in New Issue
Block a user