首页 > 其他分享 >ESP32 IDF 使用时出现的问题

ESP32 IDF 使用时出现的问题

时间:2024-09-07 20:54:08浏览次数:12  
标签:get ESP32 event lv ui 使用 IDF guider screen

1.  ESP32 IDF 的文件直接复制的话,清除构建后,再次编译会报错。主要是因为managed_components文件下安装的组件,需要删了再次安装就没事了。

2. 头文件下有红波浪线的问题:

3.  编译的时候一直报错 #include "esp_event.h"

即使屏蔽掉了,后面的头文件也报错。

原来是因为 CMakeLists.txt 的原因:

idf_component_register(SRCS ${srcs}
                   INCLUDE_DIRS  ${include_dirs}
                   REQUIRES lvgl)

把 REQUIRES lvgl 删掉就行了。

4. 移植CST816T触摸屏时,出现下面的问题:

跳转到 esp_lcd_touch_new_i2c_cst816s 文件下,把ESP_RETURN_ON_FALSE(io, ESP_ERR_INVALID_ARG, TAG, "Invalid io"); 注释掉即可。

5.LVGL怎么动态显示数据,我使用的是GUI guider ,在generate文件下找到项目初始化的.c文件:

static void screen_2_event_handler (lv_event_t *e)
{
	lv_event_code_t code = lv_event_get_code(e);

	switch (code) {
	case LV_EVENT_GESTURE:
	{
		lv_dir_t dir = lv_indev_get_gesture_dir(lv_indev_get_act());
		switch(dir) {
			case LV_DIR_BOTTOM:
			{
				lv_indev_wait_release(lv_indev_get_act());
				ui_load_scr_animation(&guider_ui, &guider_ui.screen, guider_ui.screen_del, &guider_ui.screen_2_del, setup_scr_screen, LV_SCR_LOAD_ANIM_MOVE_BOTTOM, 200, 200, false, true);
				lv_timer_pause(timer1);	// 暂停定时器,否则会报错
				break;
			}
		}
		break;
	}
	default:
		break;
	}
}
void events_init_screen_2(lv_ui *ui)
{
	lv_obj_add_event_cb(ui->screen_2, screen_2_event_handler, LV_EVENT_ALL, ui);

	timer1 = lv_timer_create(updata_mainlable, 500, NULL); // 创建一个0.5秒(500毫秒)的定时器,绑定到回调函数 timer_callback
}

就在生成的代码里面加上两句就行:

timer1 = lv_timer_create(updata_mainlable, 500, NULL);  //每隔0.5秒更换一次数据

lv_timer_pause(timer1);   // 多界面切换一定要有,否则会一直重启

再回到对应界面的 setup_src_xxxx.c 文件下,添加回调函数,函数内容根据自己来改:

void updata_mainlable(lv_timer_t *timer){   
	  
      lv_arc_set_value(guider_ui.screen_2_arc_1, adc_voltage_value);    

	}

下面是最初生成的代码,把这个地方的数据 “10” ,换成自己变量即可,同时 ui->screen_2_arc_1 改成 guider_ui.screen_2_arc_1

	lv_arc_set_value(ui->screen_2_arc_1, 10); 

最后在gui_guider.h文件中声明一下创建的函数。

6.获取每日天气信息,出现以下错误:

E (14029) esp-tls-mbedtls: mbedtls_ssl_setup returned -0x7F00
E (14029) esp-tls: create_ssl_handle failed
E (14029) esp-tls: Failed to open new connection
E (14039) transport_base: Failed to open a new connection
E (14049) HTTP_CLIENT: Connection failed, sock < 0
E (14049) example: Error perform http request ESP_ERR_HTTP_CONNECT

首先使能debug功能:

显示下面两个问题:

 mbedtls: ssl_tls.c:1393 alloc(16717 bytes) failed
inflateInit2 err! err=-4
decompress failed:-4
  1. 内存不足

    • 系统或进程可用内存不足。
    • 有其他进程占用了大量内存。

因为我用的是ESP32 C3的模组,内存只有4MB。

    xTaskCreate(get_dwather_task, "get_dwather_task", 8192, NULL, 5, NULL);     // 一次性任务   获取每日天气信息

    // xTaskCreate(get_rtweather_task, "get_rtweather_task", 8192, NULL, 5, NULL); // 一次性任务   获取实时天气信息

    // xTaskCreate(get_airq_task, "get_airq_task", 8192, NULL, 5, NULL);    

      // 获取滑块的当前值

      current_liangdu_Value = lv_slider_get_value(guider_ui.screen_2_slider_1);

// 获取拾色器的值

   if (event == LV_EVENT_VALUE_CHANGED) {
        lv_color_t current_color = lv_cpicker_get_color(obj);
        printf("LV_EVENT_VALUE_CHANGED R(%d):G(%d):B(%d)\n", current_color.ch.red, current_color.ch.green, current_color.ch.blue);
    }

标签:get,ESP32,event,lv,ui,使用,IDF,guider,screen
From: https://blog.csdn.net/qq_47858494/article/details/141969468

相关文章

  • 条款04: 确定对象被使用前已被初始化
    1.对象使用之前进行初始化voidTest00(){intx=0;constchar*text="AC-stylestring";doubled;std::cin>>d;}1.使用初始化列表进行初始化2.baseClass的初始化早于derivedClass3.class的成员变量总是以声明的顺序进行初始化,而不是在成员初......
  • 关于CPP——Muduo库的使用
    目录 一、Moduo库是什么1.1Moduo库概念1.2Reactor模式 1.3Moduo库的原理二、Muduo库常见接口2.1 TcpServer类2.2 EventLoop类2.3 TcpConnection类 2.4 TcpClient类2.5 Buffer类 2.6 CountDownLatch类2.7 EventLoopThread类1.防止主线程阻......
  • SpringMVC基于注解使用
    01-拦截器介绍首先在pom.xml里面加入springmvc的依赖创建拦截类在spring-mvc.xml配置拦截器配置创建控制类测试拦截器中处理方法之前的方法介绍拦截器中处理方法之后,渲染之前的方法介绍拦截器中处理方法之后,渲染之后的方法介绍判断拦截器和过滤器先后的执行顺......
  • vue2项目中使用three.js开发三维IT机房
    三维IT机房可以将机房数据可视化,让企业更好的监控和管理IT机柜在前端页面对IT机房进行三维展示当鼠标划入IT机柜的时候,提示当前机柜的详细信息一键显示机房中过热的机柜1.准备一份IT机房模型1-1-建模思路简化模型,能用贴图表现的细节,就用贴图。这样可提高渲染......
  • SpringMVC使用:类型转换&数据格式化&数据验证
    01-类型转换器先在pom.xml里面导入依赖,一个是mvc框架的依赖,一个是junit依赖然后在web.xml里面导入以下配置(配置的详细说明和用法我在前面文章中有写到)创建此测试类的方法用于测试springmvc是具备自动类型转换功能的user属性如下show.jsp内容如下在客户端输入如下数......
  • WGCLOUD【基本使用教程之使用 web ssh】
    WGCLOUD是一款非常优秀的运维监测工具,如果我们已经部署好了WGCLOUD,就可以在主机列表,看到有一个按钮【SSH】,没错,这个就是webssh,点击这个可以在浏览器中,连接到我们的Linux主机,并进行各种命令操作......
  • Java项目使用exe4j生成exe可执行文件在无Java环境Windows电脑运行
    1.准备工作①官网下载exe4j,官网地址:https://www.ej-technologies.com/download/exe4j/files②确保已经安装了JDK,并且配置了环境变量,否则会导致打不开③exe文件在安装目录的bin文件夹下2.直接点下一步3.这里选择JAR打包EXE,点击一步4.需要输入项目名称并指明输......
  • 【Hashcat工具】工具使用
    数字破解a、7位数字破解hashcat64.exe-a3-m0--force25c3e88f81b4853f2a8faacad4c871b6?d?d?d?d?d?d?db、7位小写字母破解hashcat64.exe-a3-m0--force7a47c6db227df60a6d67245d7d8063f3?l?l?l?l?l?l?lc、1-8位数字破解hashcat64.exe-a3-m0--force4488......
  • 【正点原子K210连载】第二十九章 音频录制实验 摘自【正点原子】DNK210使用指南-CanMV
    第二十九章音频录制实验本章将介绍CanMV下的音频录制通过CanMV提供的模块便能快速地实现音频录制。通过本章的学习,读者将学习到CanMV下控制I2S获取音频数和audio模块的使用。本章分为如下几个小节:29.1maix.I2S模块及audio模块介绍29.2硬件设计29.3程序设计29.4运行验证29......
  • 【正点原子K210连载】第三十章 照片拍摄实验 摘自【正点原子】DNK210使用指南-CanMV版
    第三十章照片拍摄实验在前面的章节中,已经了解了如何在CanMV下获取摄像头输出的图像数据并在LCD上进行显示,同时也了解了如何解码文件系统中的图像文件然后在LCD上进行显示,本章将通过照片拍摄实验,介绍如何通过CanMV将摄像头输出的图像数据进行图像编码保存到文件系统中。通过本章的......