随笔分类 -  单片机

摘要:此笔记主要是记录在 LVGL 中使用图片的几种方式,以及使用过程中遇到的问题。最近在 ARM linux 中使用 LVGL 时,发现加载图片变得很卡,一开始还好,当连续加载的图片变多后,特别是动画的过程中直接无法看,折腾了一会直接懵逼了,尝试了各种办法都没搞定,后来发现是我没有好好看文档,导致的问题 阅读全文
posted @ 2023-01-12 10:15 浇筑菜鸟 阅读(9925) 评论(3) 推荐(1)
摘要:一、概述 以前的传感器是用过中断的方式进行计数的,现在已经有 I2C 通行的颜色传感器,不在需要我们像之前那样,通过计数的方式获取数据,直接通过I2C读取即可。当然有通过串口的方式获取采集数据的,串口使用就比较简单了,此笔记只针对 I2C 通信的模块。 我在某宝上随意购买了一个 TCS34725 的 阅读全文
posted @ 2023-01-06 11:38 浇筑菜鸟 阅读(2999) 评论(0) 推荐(1)
摘要:一、概述 这里主要是记录 ESP32 中进行 I2C 通行的基本程序,也可以说是 I2C 总线驱动程序,当然这里只是作为主模式,从模式我还没需要这个需求,以后有机会贴上。此笔记的主要目的是防止以后写 I2C 通信时,忘记代码而记录的,需要的小伙伴可以收藏一下。 I2C 通信原理 在了解程序之前需要先 阅读全文
posted @ 2023-01-06 09:28 浇筑菜鸟 阅读(954) 评论(0) 推荐(1)
摘要:一、线程创建函数 | 函数 | void xTaskCreate ( pdTASK_CODE pvTaskCode, const portCHAR * const pcNane, unsigned portSHORT usStackDepth, void *pvParameters, unsigne 阅读全文
posted @ 2022-10-27 16:38 浇筑菜鸟 阅读(1280) 评论(0) 推荐(0)
摘要:一、无法跳转 问题现象: 打开ESP32工程头文件提示波浪线不跳转,如下图所示: 解决办法: 删除工程中.vsccode文件夹下的所有文件 VSCode 中打开命令行搜索 ESP-IDF 找到`添加 vscode 配置文件夹 **注意:**初次使用时,可能需要耐心往下翻一下。 完成后 .vscode 阅读全文
posted @ 2022-10-27 14:31 浇筑菜鸟 阅读(2487) 评论(0) 推荐(0)
摘要:LVGL 8.0 以后好像取消了自定义任务模块,想要使用多线程只能使用系统的线程。 一、定时器结构体 typedef struct _lv_timer_t { uint32_t period; // 定时器运行的频率 uint32_t last_run; // 定时器上次运行的时间 lv_timer 阅读全文
posted @ 2022-10-27 08:57 浇筑菜鸟 阅读(6553) 评论(0) 推荐(0)
摘要:一、LVGL 内置字体 LVGL有几种不同大小的内置字体,可以通过 LV_FONT_MONTSERRAT_X 定义在 lv_conf.h 中启用。 普通字体 包含所有ASCII字符,度数符号(U + 00B0),项目符号(U + 2022)和内置符号,可以根据自己的需要选择定义 如下所示: #def 阅读全文
posted @ 2022-10-26 16:50 浇筑菜鸟 阅读(3257) 评论(0) 推荐(0)
摘要:一、图片存储 我们可以将图像存储在两个位置 作为内部存储器(RAM或ROM)中的变量 作为文件 图片以文件的形式存储在文件系中(比如SD),需要打开LVGL的文件操作的功能(打开,读取,关闭等)。虽然以文件的形式存储时,在绘制图形之前必须将其读取到RAM中,不像变量那样对资源友好,但是更容易替换,而 阅读全文
posted @ 2022-10-26 15:30 浇筑菜鸟 阅读(5885) 评论(1) 推荐(3)
摘要:一、案例测试 这里我使用LVGL的版本是8.3.3 运行案例 lvgl_examples\scroll\lv_example_scroll_6 效果如下所示 二、现象 这里先描述一下现象,当我们使用 SCROLL控件实现滚动功能,这个有点像以前的手机进入功能界面时的循环切换,但是这里的切换存在边界, 阅读全文
posted @ 2022-10-26 11:39 浇筑菜鸟 阅读(11112) 评论(0) 推荐(1)
摘要:一、连接WIFI 在进行时间同步之前,先连接WIFI #include "wifi.h" #include <string.h> #include <stdlib.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #includ 阅读全文
posted @ 2022-10-26 09:59 浇筑菜鸟 阅读(1045) 评论(0) 推荐(1)
摘要:一、注册天气获取账号 我使用的知心天气,没有获取天气账号的小伙伴可以去注册一下,知心天气官网:https://www.seniverse.com/ 取得天气获取的API后,可以直接在浏览器中访问测试一下,如下图所示: 这里我就不赘述了,稍微花点信息就可以明白天气是怎么获取的了。 二、天气信息 获取到 阅读全文
posted @ 2022-10-26 09:37 浇筑菜鸟 阅读(2051) 评论(0) 推荐(1)
摘要:问题 超出父界面不隐藏问题,即时使用了lv_obj_set_style_clip_corner()函数,也不起作用,如下图所示: 即使使用lv_obj_set_style_clip_corner(view, true, 0) 函数设置子对象超出部分隐藏,也会出现这样的问题。为啥会出现这样的原因,我也 阅读全文
posted @ 2022-10-17 10:55 浇筑菜鸟 阅读(1013) 评论(0) 推荐(0)
摘要:当你编译程序,发现 app partition is too small for binary 错误的时候,就涉及到 ESP32 分区表的内容了。 一、基本概念 在了解分区之前,先了解一下以下概率,便于 ESPe32 分区的理解 缓存(cache) 缓存是指可以进行高速数据交换的存储器,它先于内存与 阅读全文
posted @ 2022-10-14 15:23 浇筑菜鸟 阅读(3486) 评论(0) 推荐(1)
摘要:一、完成LVGL移植 在使用LVGL提供的测试案例时,需要先移植LVGL,不明白的小伙伴看我之前的笔记 esp-idf 移植 lvgl8.3.3 。 移植完成后的项目文件如下图所示 二、添加需要的测试案例 在项目的 components 文件下创建 lvgl_examples,并导入需要测试的案例, 阅读全文
posted @ 2022-10-13 08:40 浇筑菜鸟 阅读(2583) 评论(0) 推荐(1)
摘要:一、启动日志 在 lv_conf.h 中将 LV_USE_LOG 设置为 1,如下图所示: 二、日志级别 在文件 lvgl/src/misc/lv_log.h 中定义了日志等级,等级是从小到大,所以 LV_LOG_LEVEL_USER 的等级最高 #define LV_LOG_LEVEL_TRACE 阅读全文
posted @ 2022-10-11 13:53 浇筑菜鸟 阅读(3247) 评论(0) 推荐(0)
摘要:一、准备材料 开发板:esp32s3 idf版本:4.4.2 lvgl:8.3.3 **注意:**lvgl不要选择master分支,编译失败时不好确定问题。 二、创建idf项目 方式一 通过 VSCode 创建项目 在命令面板中搜索 esp-idf new,开始创建项目 项目配置信息 选择需要的模板 阅读全文
posted @ 2022-10-08 16:42 浇筑菜鸟 阅读(7149) 评论(0) 推荐(1)
摘要:一、开发板 ESP32-S3-DevKitC-1 管脚布局 由于这个程序控制比较简单,就不赘述了,直接看程序。 二、程序 #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/ledc.h" #defin 阅读全文
posted @ 2022-09-29 10:17 浇筑菜鸟 阅读(348) 评论(0) 推荐(1)
摘要:一、准备工具 首先需要安装好 VSCode 软件和 esp-idf 环境。 安装 VSCode VSCode 安装比较简单,我就不赘述了,进入官网下载一键安装即可 VSCode官网:https://code.visualstudio.com/ 安装 esp-idf 详细过程看我之前的笔记esp-id 阅读全文
posted @ 2022-09-28 11:05 浇筑菜鸟 阅读(5406) 评论(3) 推荐(2)
摘要:esp32的开发有两种环境,分别是 Arduino 和 esp32-idf。 Arduino 是在 esp32-idf 基础上进行封装的,虽然使用起来比较方便,但是能自由更改的就变少了,适合新手使用。 esp32-idf 开发难度会大一些,但是可操作空间也会大一些。 一、准备材料 硬件: 一款 ES 阅读全文
posted @ 2022-09-28 08:28 浇筑菜鸟 阅读(6866) 评论(7) 推荐(2)
摘要:一、使用例程 二、使用方式 函数的详细说明请看 lv_keyboard.h 文件 创建对象 lv_obj_t * lv_keyboard_create(lv_obj_t * parent); lv_obj_t * kb = lv_keyboard_create(lv_scr_act()); 设置模式 阅读全文
posted @ 2022-09-23 08:15 浇筑菜鸟 阅读(6312) 评论(1) 推荐(0)