Hello,
I am trying to learn bluetooth using nrf52840 USB dongle. I have created an application from sample beacon and i would like to use I2C to implement my own driver about a sensor.
I have succesfully configured and bind the node in the device tree.
According to same examples in net, i notice that they enable CONFIG_I2C_1=y
This option cannot be set in my application, due to there are missing depedencies I2C_ESP32. I cant understand why this depedency is needed.
I appreciate if you could help me a little bit about my issue.
bool initialize_sht21_driver(void)
{
sht21_dev = DEVICE_DT_GET(DT_NODELABEL(i2c1));
bool ret = device_is_ready(sht21_dev);
if(ret)
{
printk("device is ready for use %d\n", ret);
}
else
{
printk("device is NOT ready for use %d\n", ret);
return false;
}
sht21_dev = device_get_binding(DEVICE_DT_NAME(DT_NODELABEL(i2c1)));
if(sht21_dev == NULL)
{
printk("device get binding returns NULL!!\n");
return false;
}
ret = i2c_configure(sht21_dev, I2C_SPEED_SET(I2C_SPEED_STANDARD));
if(ret != 0)
{
printk("i2c configuration issue!!\n");
}
return true;
}
############################################################################
void readTemperature(void)
{
struct i2c_msg msgs[1];
msgs[0].buf = &dst;
msgs[0].len = 1U;
msgs[0].flags = I2C_MSG_WRITE | I2C_MSG_STOP;
int error = i2c_transfer(sht21_dev, &msgs[0], 1, SHT21_ADDR);
if(error == 0)
{
printk("i2c transfer ok!\n");
}
else
{
printk("i2c transfer error!\n");
}
}