更新时间:2025-12-24 07:16:47下载pdf


#include "tuya_cloud_types.h"
bk_err_t bk_tp_i2c_init(const tp_config_t *config)
{
if(NULL == config)
{
bk_printf("%s, pointer is null!\r\n", __func__);
return BK_FAIL;
}
//兼容硬件I2C的地方
#if 1
bk_printf("swimming clk = %d, sda = %d, max =%d \r\n",tkl_display_ll_tp_config(2),tkl_display_ll_tp_config(3),TUYA_GPIO_NUM_MAX);
//用硬件I2C
if(tkl_display_ll_tp_config(2) == TUYA_GPIO_NUM_MAX && tkl_display_ll_tp_config(3) == TUYA_GPIO_NUM_MAX)
{
bk_printf("swimming hw i2c \r\n");
TUYA_IIC_BASE_CFG_T i2c_cfg = {
.role = TUYA_IIC_MODE_MASTER,
.speed = TUYA_IIC_BUS_SPEED_400K,
.addr_width = TUYA_IIC_ADDRESS_7BIT,
};
//硬件I2C0
bk_err_t ret = bk_i2c_init(0, &i2c_cfg);
if (BK_OK != ret)
{
bk_printf("SWIMMING I2C init err = %d \r\n",ret);
return BK_FAIL;
}
bk_printf("SWIMMING I2C init ok ! \r\n");
}
else
{
i2c_config_t i2c_config = {0};
i2c_config.baud_rate = I2C_BAUD_RATE_100KHZ;
i2c_config.addr_mode = I2C_ADDR_MODE_7BIT;
if (BK_OK != bk_i2c_init(TP_I2C_ID, &i2c_config))
{
bk_printf("%s, I2C%d init fail!\r\n", TP_I2C_ID);
return BK_FAIL;
}
}
#else
i2c_config_t i2c_config = {0};
i2c_config.baud_rate = I2C_BAUD_RATE_100KHZ;
i2c_config.addr_mode = I2C_ADDR_MODE_7BIT;
if (BK_OK != bk_i2c_init(TP_I2C_ID, &i2c_config))
{
bk_printf("%s, I2C%d init fail!\r\n", TP_I2C_ID);
return BK_FAIL;
}
#endif
return BK_OK;
}



该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈