- 博客(163)
- 收藏
- 关注
原创 ESP32- 项目应用1 智能手表之更新时间 #3
WiFi 主要有两种模式:STA 和 AP 模式。AP 模式即无线接入点,是我们常说的手机热点,被其他设备连接;STA 模式即 Station,是连接热点的设备。另外,ESP32S3 可支持 STA 和 AP两种模式共存,就像手机那样可以开热点,也可以连接其他热点。WiFi 库支持配置及监控 ESP32S3 Wi-Fi 连网功能。支持配置:①:Station 模式(即 STA 模式或 WiFi 客户端模式),此时 ESP32 S3 连接到接入点 (AP)。
2025-07-24 17:34:54
862
原创 ESP32- 项目应用1 智能手表 之更新天气#4
摘要: 心知天气(Seniverse)为开发者提供全球实时天气数据的API服务,支持RESTful接口,涵盖实况天气、预报、生活指数等数据。适合智能家居、物联网设备等场景,提供免费版(每日1000次调用)。ESP32可通过HTTPS请求获取天气数据,需配置私钥并处理HTTP事件回调,注意绕过SSL证书验证。支持多语言和天气图标下载,错误代码便于调试。
2025-07-24 17:34:20
949
原创 ESP32- 项目应用1 智能手表 # 2 之wifi通讯
摘要: 本文介绍了轻量级TCP/IP协议栈lwIP及其在嵌入式系统中的应用。lwIP专为资源受限设备设计,支持8位和32位处理器,仅需约40KB ROM和十几KB RAM即可运行。文章详细阐述了TCP/IP四层架构(应用层、传输层、网络层、网络接口层)及其与OSI模型的差异,重点说明lwIP实现了前三层功能,而网络接口层需依赖硬件实现。针对ESP32-S3芯片,文章解析了其WiFi MAC内核功能,包括支持802.11协议和多模式网络操作。最后介绍了lwIP提供的三种编程接口(RAW、NETCONN、Soc
2025-07-10 17:05:19
1020
原创 ESP32- 项目应用1 智能手表 #1 之界面绘制
lv_meter 是 LVGL v8 引入的一种图形控件,用于创建仪表盘样式的用户界面元素,它可以模拟像速度表、电压表、温度表这类模拟表盘。它通过可视化刻度、指针、颜色弧线等来展示数值信息,是一种非常直观的数据展示控件。这里有全部介绍-LVGL -meter的应用RTC(实时时钟)是指安装在电子设备或实现其功能的 IC(集成电路)上的时钟。当您在数字电路中称其为“时钟”时,您可能会想到周期信号,但在英语中,clock 也意味着“时钟”。那为什么我们需要一个单独的 RTC?
2025-07-10 16:20:25
334
原创 ESP32-使用VSCODE 各种问题总结汇总
摘要:本文记录了三个常见ESP-IDF开发问题的解决方案。1) launch.json中${config:idf.customExtraPaths}变量解析失败,需手动设置PATH环境变量路径;2) VSCode无法识别ESP-IDF命令,需在launch.json中正确配置miDebuggerPath路径;3) IRAM_ATTR报错问题,需包含esp_system.h或esp_attr.h头文件。所有路径配置需根据实际安装位置调整。
2025-07-08 21:42:57
225
原创 ESP32- 开发笔记- 软件开发 7 lvgl的移植到ESP32
摘要 本文介绍了LVGL图形库的获取与使用流程。首先说明LVGL源码可通过GitHub仓库或CSDN资源下载,详细描述了文件夹结构及功能。重点讲解了新建LVGL代码的实现步骤,包括显示设备初始化、缓冲区配置、显示驱动注册等关键操作。文章提供了lvgl_demo.c的完整代码示例,涵盖显示设备初始化函数lv_port_disp_init()、刷新回调函数lvgl_disp_flush_cb()、输入设备初始化等内容,并展示了多任务环境下LVGL计时器处理的方法。最后还包含触摸屏状态检测和坐标获取的实现代码。
2025-07-08 11:31:19
422
原创 Linux 基础入门操作 第十四章 .U-Boot 编译 1
U-Boot是一款开源的通用引导加载程序,支持多种嵌入式操作系统和处理器架构。它具有硬件初始化、操作系统引导、环境变量管理、网络启动等功能,广泛应用于Linux系统的内核加载、参数传递和设备树处理。U-Boot源码结构清晰,包含arch、board、cmd、drivers等目录,分别对应处理器架构支持、开发板定制、命令实现和设备驱动。其灵活性和强大的调试功能使其成为嵌入式开发中的重要工具,可通过GitHub获取源代码并参考官方文档进行配置和使用。
2025-07-04 14:58:49
825
原创 第三章 基于rtthread标准库的串口和shell应用
STM32F429IGT6串口通信配置与应用 摘要:本文介绍了STM32F429IGT6的串口功能配置,该芯片最多支持8路串口,具有分数波特率发生器等特性。通过CubeMX工具配置USART1作为RT-Thread系统的调试口,详细说明了硬件连接(PA9/PA10)、时钟使能、波特率设置等步骤。文章还展示了如何构建工程环境,包括添加usart.c文件、配置Kconfig以及重建MDK5工程。最后介绍了RT-Thread内置的FinSH调试工具,通过shell命令可以查看系统状态、线程信息等,为嵌入式开发提供
2025-07-04 14:58:08
665
原创 Linux 基础入门操作 第十三章 嵌入式数据库介绍2
本文介绍了SQLite数据库的C/C++编程接口。SQLite最初只有5个核心API,现已扩展到150多个,但大多数是专用接口。文章首先说明如何安装SQLite开发库(libsqlite3-dev),以及在Makefile和CMake项目中添加SQLite库的方法。 重点介绍了4个关键API:sqlite3_open()用于打开数据库连接;sqlite3_prepare_v2()将SQL语句编译为预处理对象;sqlite3_step()执行预处理语句并获取结果;sqlite3_column_*()系列函数用
2025-07-01 08:30:00
1015
原创 第二章 基于rtthread标准库的GPIO口应用
本文详细介绍了基于STM32F4xx硬件平台的RT-Thread系统配置过程。首先通过CubeMX工具配置系统时钟和GPIO口(包括输入口、LED口及其他IO口),并展示了相关配置截图。然后将自动生成的SystemClock_Config函数从main.c移植到board.c文件中。最后修改main.c文件实现按键控制功能:通过KEY0按键切换LED0状态,KEY1按键切换LED1状态。整个配置过程涵盖了硬件初始化、时钟设置和基本GPIO控制功能实现。
2025-06-30 08:54:33
303
原创 第一章 基于rtthread标准库工程创建
摘要:本文详细介绍了基于STM32F429芯片的工程移植与配置过程。首先准备工程代码并复制到指定目录,然后修改MDK5模板,包括调整芯片型号、下载器设置和自动复位功能。接着使用STM32CubeMX生成引脚配置,并通过env工具关闭不必要的片上资源。随后修改board文件夹和linker_scripts中的配置文件。最后在env环境下重新生成工程,成功编译并生成MDK5工程文件。整个过程包含了从工程准备到最终生成的完整步骤,为STM32F429开发提供了详细指导。
2025-06-30 08:53:59
431
原创 Linux 基础入门操作 第十三章 嵌入式数据库介绍1
索引(Index)是数据库中提高查询效率的重要机制之一,SQLite 也支持使用索引来优化数据查询。索引是数据库系统为加快数据检索而建立的一种数据结构,本质上类似于书本的“目录”或图书馆的“卡片索引”。它记录了某列或某几列的值与对应数据所在位置的映射关系,能够极大加快查找速度。索引是“加速查询的工具”,合理使用能显著提升数据库性能,但过多或滥用索引则可能适得其反。视图(View)是 SQL(包括 SQLite)中的一种非常实用的数据库对象,它本质上是一个虚拟表,其数据来自一个或多个真实表的查询结果。
2025-06-09 10:23:44
637
原创 rt-thread-标准版应用——STM32项目构建- SCons
本文介绍了基于RT-Thread操作系统的STM32F429项目构建过程,主要涵盖以下内容:所需开发软件环境:KEIL开发工具、STM32CubeMX配置工具、RT-Thread Env环境和RT-Thread 4.0.2源码包。使用STM32CubeMX配置时钟和IO口,并解决KEIL工程构建时的启动文件缺失问题。利用SCons构建系统组织项目:从RT-Thread示例中获取模板文件修改工程配置适配STM32F429芯片调整SCons构建脚本路径和编译选项最终成功构建项
2025-06-09 10:21:50
742
原创 LVGL- Calendar 日历控件
lv_calendar 是 LVGL 库中的一个标准日历控件,支持显示公历月份、日期选择、日期高亮、当前日期标识、月份切换等功能。用户可以通过点击选择日期,并支持回调事件获取所选日期。控件提供多种高亮功能,用于标记节假日或提醒事项,并支持自定义颜色。当前日期可通过 today_date 属性高亮显示。月份切换支持箭头或下拉方式,且控件样式可通过 LV_PART_* 接口高度定制,与 LVGL 样式系统无缝集成,适应不同 UI 风格需求。
2025-05-17 20:48:54
776
原创 LVGL- 圆弧形状控件
ARC 是 LVGL 中用于显示圆弧形状的控件,广泛应用于需要可视化表示数值或状态的场景。其主要功能包括设置开始与结束角度、支持顺时针或逆时针方向、可拖动的控制点、显示当前值的数值标签以及样式设置(颜色、宽度、背景、动画等)。通过相关函数,可以创建和设置 ARC 控件,包括数值范围、角度范围、旋转角度和模式设置(正常、反向、对称模式)。应用场景包括音量调节旋钮,通过拖动旋钮改变值,并实时更新显示。ARC 控件提供了丰富的自定义选项,适用于多种交互式界面设计需求。
2025-05-17 20:48:11
928
原创 STM32 之网口应用 之基础通讯
STM32F407 微控制器集成了以太网 MAC 控制器,支持 10/100 Mbps 网络通信,但需外接 PHY 芯片(如 LAN8720)实现物理层通信。通过 RMII 接口连接 PHY 和 STM32F407,并使用 MCO 输出 50MHz 时钟。配置步骤包括初始化 GPIO 引脚、设置以太网 MAC 控制器、输出时钟,并加载 LWIP 协议栈以实现 TCP/IP 通信。典型应用包括 TCP/UDP 通信、远程控制、嵌入式 Web 服务器及 Modbus-TCP、MQTT 等协议实现。
2025-05-14 23:05:02
817
原创 STM32 片上资源之串口
本文介绍了STM32F4系列微控制器的串口资源及其应用。STM32F407系列最多包含6个USART/UART接口,支持多种通信模式和协议,如全双工异步通信、LIN协议、IrDA SIR ENDEC规范等。文章详细讲解了串口的主要寄存器、波特率计算方法以及常用的工作模式(轮询、中断、DMA)。此外,还提供了串口通信的物理层标准(如RS-232、RS-422、RS-485)和协议核心参数(如波特率、数据位、停止位、校验位)。最后,文章通过示例代码展示了如何配置和使用STM32F4的USART1进行串口通信。
2025-05-14 22:30:06
1560
原创 ESP32- 开发笔记- 软件开发 6 蓝牙协议栈 2
ESP-Bluedroid 是基于 Android 蓝牙协议栈 Bluedroid 的修改版, 支持经典蓝牙和低功耗蓝牙。由两层组成:蓝牙上层 (BTU): 实现核心协议(L2CAP、GATT、SMP 等)。蓝牙传输控制器层 (BTC): 提供应用层 API, 并管理配置文件。使用场景: 推荐用于同时需要经典蓝牙和蓝牙低能耗的应用。
2025-05-13 09:00:00
691
原创 ESP32- 开发笔记- 软件开发 6 蓝牙协议栈 3
GAP 层的全称为通用访问规范 (Generic Access Profile, GAP),定义了低功耗蓝牙设备之间的连接行为以及设备在连接中所扮演的角色。GAP 状态与角色GAP 中共定义了三种设备的连接状态以及五种不同的设备角色,如下空闲 (Idle)此时设备无角色,处于就绪状态 (Standby)设备发现 (Device Discovery)广播者 (Advertiser)扫描者 (Scanner)连接发起者 (Initiator)连接 (Connection)
2025-05-13 08:00:00
1516
原创 lvgl- lv_bar
lv_bar 是 LVGL 中的滑块条控件,用于显示从最小值到最大值之间的数值状态,支持水平或垂直方向。它有三种模式:默认模式(LV_BAR_MODE_NORMAL)从起点填充,常用于进度条、音量等;对称模式(LV_BAR_MODE_SYMMETRICAL)从中间向两侧填充,适合显示正负数;范围模式(LV_BAR_MODE_RANGE)显示值区间,适用于温度、亮度等范围值。控件分为主控件部分(背景)和指示控件部分(前景),可分别设置颜色、边框等属性。常见函数包括 lv_bar_create() 创建控件、l
2025-05-12 09:00:00
1105
原创 LVGL-lv_tileview
LVGL的lv_tileview是一个用于创建多页面视图的容器控件,支持通过滑动手势或动画切换页面。它可以将多个子页面排列在二维网格中,类似于手机主屏的滑动切换效果。每个页面(tile)是一个标准的lv_obj_t对象,可以添加按钮、图表、图像等子控件。lv_tileview支持方向控制,页面切换时会自动吸附,不会停留在中间。常见的应用场景包括主页分页、数据仪表盘、相册浏览、多页设置菜单、导航界面以及数字输入键盘等。使用时需注意不能嵌套在另一个滚动容器中,且页面较多时应控制内容复杂度以避免内存压力。主要功能
2025-05-12 08:00:00
1100
原创 lvgl-messagebox
MessageBox(消息框)是 LVGL 提供的一个图形组件,用于向用户显示提示信息,并提供按钮让用户进行选择或确认操作。它通常包含一个标题、消息文本和一组按钮,例如 “确认”、“取消” 等。消息框可以在用户操作关键节点时弹出,提示信息或询问用户意图,是常见的 GUI 控件之一。
2025-05-09 10:45:00
1073
原创 LVGL- 按钮矩阵控件
lv_btnmatrix 是 LVGL(Light and Versatile Graphics Library) v8 中提供的一个非常实用的控件,用于创建带有多个按钮的矩阵布局。它常用于实现虚拟键盘、数字键盘、操作面板、选择菜单等场景,特别适用于嵌入式设备、触摸屏等界面。
2025-05-09 09:00:00
854
原创 ESP32- 开发笔记- 软件开发 6 蓝牙协议栈 1
ESP32 是一款支持蓝牙功能的强大微控制器,ESP-IDF (Espressif IoT Development Framework) 提供了完整的蓝牙开发支持。
2025-05-07 23:29:22
1148
原创 LVGL -meter的应用
lv_meter 是 LVGL v8 引入的一种图形控件,用于创建仪表盘样式的用户界面元素,它可以模拟像速度表、电压表、温度表这类模拟表盘。它通过可视化刻度、指针、颜色弧线等来展示数值信息,是一种非常直观的数据展示控件。支持多个 刻度刻度表(scale)每个刻度表可以有多个 刻度(tick)每个刻度可以添加多个 指针(needle/arc/image)支持多种类型的指针:线针、弧线、图像可以设置 最小值/最大值 和 角度范围动态更新数据值,模拟实时仪表在逻辑上,lv_meter 由三个核心部分组成:刻度盘(
2025-05-07 23:28:59
1499
原创 ESP32- 开发笔记- 软件开发 5 -I2C
ESP32 的 I²C(Inter-Integrated Circuit)总线是一个非常常用的串行通信接口,广泛用于与各种外围设备(如传感器、显示屏、EEPROM 等)进行通信。
2025-05-06 10:45:00
1030
原创 freertos应用-任务创建
vTaskDelay(100 / portTICK_PERIOD_MS) 是一个常用的延时函数调用,用于让当前任务进入阻塞状态(Blocked State)一定时间后再继续执行。
2025-05-06 09:30:00
834
原创 ESP32- 开发笔记- 软件开发 4 -基本操作 串口 1
ESP32是一款强大的微控制器,广泛应用于物联网(IoT)和嵌入式系统中。它支持多种通信协议,其中串口通信是最常用的一种。以下是关于ESP32串口通信的详细介绍。串口通信是通过串行数据传输的方式进行设备间的通信,常见于与计算机、传感器、模块等的连接。ESP32支持多个串口,通常称为UART(通用异步收发传输器)。
2025-05-05 10:30:00
1233
原创 ESP32- 开发笔记- 软件开发 4 -中断 串口 2
功能:启用接收中断需要完全控制中断行为高性能或低延迟需求#include "soc/uart_periph.h" // 获取UART中断号// 必须手动清除中断标志!// 自定义处理逻辑...// 1. UART基础配置(同上)// 2. 安装驱动(不自动创建队列)// 3. 注册自定义ISRuart_periph_signal[UART_NUM_1].irq, // 中断源ESP_INTR_FLAG_IRAM, // 在IRAM中运行。
2025-05-05 09:30:00
1210
原创 LVGL -文本显示 英文、中文
在 LVGL 中,文本控件(Label)是一种基本的 UI 组件,用于显示文本信息。文本控件可以用于各种场景,如显示状态信息、提示消息、标题等。在图形用户界面(GUI)开发中,文本是传达信息和指导用户的重要组成部分。为了有效地展示文本,以下是与文本相关的几个关键方面,包括文本的种类、排版、样式、对齐、以及在 LVGL 中如何处理文本的基本知识。
2025-05-03 12:42:16
1475
原创 LVGL -滑动条
滑动条允许用户在一个预定义的数值范围内选择一个特定的值。它通常由一个轨道(track)和一个滑块(thumb)组成。用户可以通过点击或拖动滑块来调整数值。
2025-05-03 11:45:42
578
原创 LVGL -按键基本操作-创建、风格和回调 上
创建// 创建一个按钮设定大小 lv_obj_set_size()// 设置按钮大小为 100x50`对齐 lv_obj_align()// 将按钮居中为按钮(或其他对象)添加事件回调函数。
2025-04-30 22:44:14
1108
原创 LVGL -按键的图标创建 下
LVGL 提供了一个很方便的 图标字体 系统,它使用了 lv_label 来显示文本或图标。你可以选择 Font Awesome 或其他图标字体,并将其直接嵌入应用中。LVGL 内建图标字体(如 LV_SYMBOL_*)是可以改变大小的。通过调整 lv_label 的样式和字体大小,可以轻松改变图标的显示大小。
2025-04-30 22:43:42
856
原创 ESP32- 开发笔记- 软件开发 4 - GPIO 口
正常开发推荐使用 GPIO 2, 4, 5, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33 这些口,比较安全按键中断常用下降沿(NEGEDGE)。中断回调要短小、快速,不能长时间占用CPU。可以通过信号量或消息队列,把中断事件传给主任务中慢慢处理。
2025-04-29 22:53:02
1062
原创 LVGL -窗口操作
LVGL 中的“窗口”虽然不是传统桌面操作系统中的窗口(比如带有标题栏、可移动的窗口),但它通过 对象系统(object system) 提供了强大的 GUI 构建能力。
2025-04-29 22:52:25
663
原创 ESP32- 开发笔记- 软件开发 3 - 时钟
XTAL32K_CLK 的时钟源可以是连接到 32K_XP 和 32K_XN 管脚的 32 kHz 晶振,也可以是外部电路生成的 32 kHz 时钟信号。如果使用外部电路生成的时钟信号,该信号必须连接到 32K_XN 管脚,并且在 32K_XP 管脚和地之间连接一个 1 nF 的电容。此 RC 振荡器产生约 150 kHz 的时钟信号输出,标识为 RC_SLOW_CLK。RC 振荡器可产生约 8.5 MHz 的时钟信号输出,标识为 RC_FAST_CLK。外部时钟源, 通常40MHz 主时钟源,精度高。
2025-04-28 10:19:56
1194
原创 嵌入式人工智能应用-第三章 opencv操作8 图像特征之 Haar 特征
Haar-like 特征最早是由 Papageorgiou 等应用于人脸表示,Viola 和 Jones 在此基础上,使用 3 种类型 4种形式的特征。Haar 特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。边缘特征(Edge Features)比如:一个白色矩形和一个相邻的黑色矩形。用于检测亮度突然变化的位置,例如眼睛的上下边缘。2.线条特征(Line Features):比如:白-黑-白 三个矩形排列,用来检测图像中的线条结构。
2025-04-24 10:43:04
1292
原创 Linux 基础入门操作 - 第5章 基础文件操作 下
目录流(DIR*) 是一个表示“打开的目录”的数据结构,就像文件流 FILE* 表示打开的文件一样。它是操作系统用来迭代目录中内容的内部结构。你可以把它想象成“一个可以一条一条读取目录中条目的句柄”。
2025-04-24 09:52:25
463
原创 ESP32- 开发笔记- 软件开发 1 -ESP32-C3 软件平台选择
ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S 和 ESP32-C 系列 SoC。它基于 C/C++ 语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序。ESP-IDF 目前已服务支持数以亿计的物联网设备,并已开发构建了多种物联网产品,例如照明、消费电子大小家电、支付终端、工控等各类物联网设备。
2025-04-23 08:29:27
1252
人脸识别需要用的图形库-LFW(Labeled Faces in the Wild)
2025-04-22
电子电路设计中STM32L051C8T6应用于药物检测测试板的原理图解析
2025-03-31
chineseocr-lite.tar.gz 中文识别模型
2025-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人