【涂鸦T5】6. lvgl显示光感数值
本章主要是把之前的项目都结合起来
bh1750光感,引脚还是不变,不过由于touch用了i2c0,所以需要更改下光感的i2c为i2c1
增加宏定义配置光感的引脚
#include "tkl_i2c.h"
#include "tkl_pinmux.h"
#include "tal_cli.h"
#ifndef EXAMPLE_I2C_SCL_PIN
#define EXAMPLE_I2C_SCL_PIN TUYA_GPIO_NUM_7
#endif#ifndef EXAMPLE_I2C_SDA_PIN
#define EXAMPLE_I2C_SDA_PIN TUYA_GPIO_NUM_6
#endif#define TASK_GPIO_PRIORITY THREAD_PRIO_2
#define TASK_GPIO_SIZE 4096#define I2C_SENSOR_BH1750 0
// #define I2C_SENSOR_SHT4X 1#define I2C_EXAMPLE_SENSOR_TYPE I2C_SENSOR_BH1750// static THREAD_HANDLE sg_i2c_handle;uint16_t light = 0;
char str_light[50];void init_i2c(void)
{TUYA_IIC_BASE_CFG_T cfg;OPERATE_RET op_ret = OPRT_OK;tkl_io_pinmux_config(EXAMPLE_I2C_SCL_PIN, TUYA_IIC1_SCL);tkl_io_pinmux_config(EXAMPLE_I2C_SDA_PIN, TUYA_IIC1_SDA);/*i2c init*/cfg.role = TUYA_IIC_MODE_MASTER;cfg.speed = TUYA_IIC_BUS_SPEED_100K;cfg.addr_width = TUYA_IIC_ADDRESS_7BIT;op_ret = tkl_i2c_init(TUYA_I2C_NUM_1, &cfg);if (OPRT_OK != op_ret) {PR_ERR("i2c init fail, err<%d>!", op_ret);}}
void user_main(void)
{OPERATE_RET rt = OPRT_OK;// 1. set lvgl/*hardware register*/board_register_hardware();lv_vendor_init(DISPLAY_NAME);// lv_demo_widgets();lv_demo_01_show_pic();lv_vendor_start();// 2. init i2cOPERATE_RET op_ret = OPRT_OK;init_i2c();int a = 0;for(;;){tal_system_sleep(1000);light = 0;memset(str_light, 0, 50);op_ret = OPRT_OK;extern OPERATE_RET bh1750_read_light(int port, uint16_t *light);op_ret = bh1750_read_light(TUYA_I2C_NUM_1, &light);if (op_ret != OPRT_OK) {PR_ERR("bh1750 read fail, err<%d>!", op_ret);continue;}sprintf(str_light, "%d.%d", light / 1000, light % 1000);PR_INFO("%d bh1750 light:%s\n", a, str_light);lv_label_set_text(guider_ui.screen_label_1, str_light);a++;// lv_refr_now(lv_disp_get_default());// PR_INFO("bh1750 light:%d.%d\n", light / 1000, light % 1000);}return;
}
lvgl就直接增加一个label,可以看到读取完数据后,直接通过lv_label_set_text函数将亮度显示出来