自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wanghao312的博客

嵌入式开发

  • 博客(317)
  • 收藏
  • 关注

原创 射击网页游戏

以下是完整的、可直接运行的最终版代码主要功能说明:直接复制全部代码保存为.html文件,用现代浏览器打开即可体验完整游戏。玩家需要灵活运用两种强化道具来应对不断增强的敌人攻势,挑战更高分数!

2025-04-23 16:47:23 368

原创 酷炫登录页面

以下是一个结合了动态背景、粒子效果和动画的酷炫登录页面,使用HTML5+CSS3+JavaScript实现:主要特色功能:使用方式:所有视觉效果均为纯代码实现,无需任何外部资源。适合作为科技感网站登录页,可通过修改CSS变量调整主色调和动画参数。

2025-04-22 20:55:27 693

原创 基于增量PID的电机速度控制仿真

纯软件仿真:无需硬件即可运行测试真实物理模拟:包含惯性、摩擦力和测量延迟可视化输出:实时显示控制状态参数可调:方便测试不同控制效果本代码为学习PID控制算法提供了完整的仿真环境,通过调整参数可以直观观察控制效果差异。测量周期的精确性传感器噪声处理执行器输出限制系统安全保护机制。

2025-04-21 10:42:04 381

原创 lv_event_get_user_data()函数也不是非用不可

这是一个小思考,下面这两种方法都可以,都能运行!编程就是条条大路通罗马,有很多方法可以实现同一个功能。在大多数情况下,,确实不需要通过传递指针,直接访问外部对象即可。这样可以简化代码,避免不必要的参数传递。下面以lv_btnuser_data。

2025-04-14 11:35:03 356

原创 lv_event_get_user_data()函数介绍和用法

以下是关于 LVGL 8.2 中 lv_event_get_user_data()euser_dataevoid*

2025-04-14 10:56:34 360

原创 窗口部件(lv_win)的 API 函数详解及用法说明

以下是 LVGL 8.2 版本中窗口部件(lv_win。

2025-04-14 10:31:34 287

原创 选项卡视图(Tabview)

在 LVGL 8.2 中,选项卡视图(Tabview)是一个容器类部件,用于创建多标签页面布局。获取 Tabview 的内容容器(用于自定义布局)。删除所有标签页(保留 Tabview 容器)。添加新标签页,返回页面容器对象(获取当前活动标签页的索引。切换到指定索引的标签页。

2025-04-12 15:35:24 338

原创 图片部件介绍

/ 显示对勾符号。

2025-04-11 15:22:43 555

原创 加载器部件

加载器(Spinner)用于表示。

2025-04-10 17:03:18 225

原创 lv_obj_add_event_cb()事件回调函数介绍

回调函数必须为。

2025-04-10 15:47:00 374

原创 LVGL按钮部件相关函数和用法

以下是 LVGL 8.2 版本中关于的详细函数说明及用法,所有代码均适配 LVGL 8.2 API。

2025-04-10 11:47:42 560

原创 LVGL标签部件相关函数与用法

在LVGL 8.2中,标签部件(lv_label)是用于显示文本的基础组件,支持多种文本格式和样式设置。parent。

2025-04-10 11:18:47 330

原创 函数幂等性设计范式详解

幂等性(Idempotence)是指一个操作无论执行多少次,产生的效果都与单次执行一致。在嵌入式开发中,幂等性设计能确保关键函数(如硬件初始化、资源分配等)被意外多次调用时,系统仍能保持稳定。函数幂等性设计是嵌入式开发的基石级技能。通过状态跟踪、原子操作、硬件验证等方法的合理组合,开发者可以构建出能够抵御意外调用、电源波动、电磁干扰等现实挑战的健壮系统。正如航空电子领域的经验所证明:每一个看似冗余的检查,终将在某个关键时刻成为系统的救命稻草。

2025-04-03 12:01:13 779

原创 lv_obj和 lv_screen 是构建用户界面的核心基础对象

在 LVGL 8.2 中,lv_obj和lv_screenlv_objlv_objlv_objlv_screenlv_screenlv_objlv_screen通过结合二者,可以高效构建复杂的交互界面。

2025-04-03 11:44:40 486

原创 LVGL中部件的类型

如需具体用法,建议查阅 LVGL 8.2 的官方文档或示例代码。

2025-04-03 11:05:44 379

原创 状态枚举和部件枚举

通过这些枚举值,LVGL 实现了高度灵活的样式系统和交互状态管理。:为控件的不同部分(如滑块背景、旋钮)设置独立样式。:根据控件状态(如按下、聚焦)显示不同样式。:描述控件的交互状态(支持按位组合。运算无效),用于精细化样式设计。:定义控件的子组件(按位组合。运算),用于动态样式控制。在 LVGL 样式中,通过。

2025-04-02 15:28:11 221

原创 LVGL 样式对象的生命周期管理--样式

必须保证样式对象生命周期:通过static、全局变量或堆内存优先使用静态声明:简单安全,适合大多数场景避免悬空指针:永远不要传递局部样式对象的地址给 LVGL。

2025-04-02 15:17:38 319

原创 样式相关函数及其参数、功能和使用场景

调色板宏(预定义 16 种颜色):LV_PALETTE_RED, LV_PALETTE_BLUE, LV_PALETTE_GREEN, ... // 共 16 种lv_palette_main(LV_PALETTE_BLUE) // 获取主色调lv_palette_lighten(LV_PALETTE_BLUE, 2) // 调亮lv_palette_darken(LV_PALETTE_BLUE, 2) // 调暗。

2025-04-02 15:01:59 838

原创 LVGL的部件详解

* 圆弧部件:用于创建圆弧形进度条或旋钮控件 */1。

2025-04-01 20:58:10 1143

原创 LVGL配置文件lv_conf.h详解

基础设置宏名称功能说明典型值示例颜色深度(1/8/16/32位)32(ARGB8888)LV_DPI_DEF默认DPI值(影响控件默认尺寸)130使用自定义系统时间戳(代替LVGL内部计时)1。

2025-04-01 20:25:29 1207

原创 LVGL 8.2 版本中常用库函数的分类说明

目录)和文档(https://docs.lvgl.io/8.2/)深入学习特定模块。以上覆盖了 LVGL 8.2 中约 90% 的常用场景。

2025-04-01 20:11:54 467

原创 LVGL 中父子对象的联动关系

✅子对象坐标相对于父对象,移动父对象会带动子对象。✅子对象默认可以超出父对象边界(需主动裁剪才会隐藏)。⚠️ 父子关系主要影响坐标系统和生命周期管理,不自动限制子对象大小/位置。

2025-04-01 20:02:24 284

原创 所有的对齐方式

掌握这些对齐方式可以高效实现复杂界面布局!如果需要更灵活的布局,建议结合 LVGL 的。若需相对于另一个对象对齐(而非父容器),使用。如果父容器大小变化(如屏幕旋转),需调用。对齐的参考点是父容器的对应位置。LVGL 支持百分比单位(需配置。)定义了控件的对齐方式。

2025-04-01 15:12:03 335

原创 LVGL最基本的构建一个按钮的函数介绍

获取当前活跃的屏幕对象(Screen Object)。LVGL 支持配置单位系统(如百分比、毫米),需通过。创建一个开关控件(Switch Widget)。含义:对齐后的水平偏移量(正值向右,负值向左)。含义:对齐后的垂直偏移量(正值向下,负值向上)。如果父容器大小变化(如旋转屏幕),可结合。含义:对象的宽度(单位:像素)。含义:对象的高度(单位:像素)。将对象对齐到父容器或指定位置。含义:要调整大小的目标对象。含义:要对齐的目标对象。父容器可以是屏幕、面板(设置对象的宽度和高度。

2025-04-01 14:18:01 520

原创 DMA2D功能与应用详解

DMA2D(Direct Memory Access 2D,二维直接内存访问控制器)是嵌入式系统中用于高效处理图形操作(如数据传输、填充、混合等)的硬件模块,常见于STMicroelectronics的STM32系列微控制器。通过DMA2D,开发者能显著优化图形性能,尤其在高复杂度或实时性要求高的场景中表现突出。

2025-03-31 16:45:05 390

原创 关于智能手表是否支持eSIM通信对功能影响

支持eSIM的智能手表可通过内置的嵌入式SIM卡直接连接蜂窝网络,无需依赖手机即可独立完成接打电话、收发短信、联网获取数据等操作。搭载eSIM的智能手表通常具备更强的硬件性能(如独立处理器、更大存储空间)和操作系统支持,可独立运行第三方应用。若需进一步了解具体型号的eSIM支持情况,可参考各品牌官网或运营商政策(如中国联通、中国移动的一号双终端业务)。此类手表通常仅支持基础功能(如心率监测、计步),复杂应用(如地图、支付)需依赖手机端同步数据。

2025-03-31 14:46:39 797

原创 FreeRTOS内存管理算法选择方法

即可选择 FreeRTOS 的内存管理算法。无需宏定义切换,但需注意不同算法的适用场景和额外配置要求。在 FreeRTOS 中,内存管理算法的选择并非通过宏定义直接切换,而是通过。FreeRTOS 提供了 5 种内存管理实现(文件加入工程,并配置。

2025-03-27 18:01:07 486

原创 基于队列(Queue)机制改进或构建而来的通信方法介绍

通过这种层级化的设计,FreeRTOS在保持队列核心机制的同时,为不同场景提供了最优的通信抽象。

2025-03-27 17:52:47 890

原创 FreeRTOS的Tickless低功耗模式的实现原理

值得庆幸的是:FreeRTOS 的低功耗 Tickless 模式机制已经处理好了这些难点。可以在本该空闲任务执行的期间,让MCU进入相应的低功耗模式;当其他任务准备运行的时候,唤醒MCU退出低功耗模式。2、任何中断均可唤醒MCU,若滴答定时器频繁中断则会影响低功耗的效果,可以关掉滴答定时器中断吗?解决方案:将滴答定时器的中断周期修改为低功耗运行时间,这样不就两全其美了!1、进入低功耗之后,多久唤醒?为了可以降低功耗,又不影响系统运行,该如何做?退出低功耗后,需补上系统时钟节拍数。一、低功耗机制的核心原理。

2025-03-27 17:40:32 701

原创 Tickless 低功耗模式,可以通过关闭外设更加省电

如果要进入其他模式,更加节能,需要修改底层代码,这个是可能存在冲突的,不要瞎改。如果想要更加节能,可以在下面两个函数中关闭更多没用到的外设,这样更安全。FreeRTOS 的 Tickless 低功耗模式与 STM32 硬件低功耗模式的结合需要谨慎处理,直接修改底层代码进入更深层次的低功耗模式(如停止模式)可能存在风险,而通过 configPRE_SLEEP_PROCESSING。停止模式会关闭主时钟(如 HSE/HSI),唤醒后需手动切换回 PLL,若未正确初始化时钟,可能导致系统崩溃。

2025-03-27 17:23:05 936

原创 Tickless 低功耗模式相关函数

是一种在系统空闲时暂停定时器中断(SysTick)的技术,允许微控制器(MCU)进入深度睡眠状态以降低功耗,直到下一个任务就绪或外部事件唤醒。所有唤醒中断(如 GPIO、RTC)必须配置为在低功耗模式下有效,并确保中断标志在唤醒后清除。使用万用表或功耗分析仪测量 MCU 在空闲时的电流,确认进入低功耗状态后电流显著下降。在睡眠前关闭或配置外设为低功耗模式,唤醒后需重新初始化(如 UART、SPI)。硬件定时器的精度影响系统时间修正,需校准时钟源(如 RTC 的时钟偏差)。)确认任务唤醒后调度正常。

2025-03-27 16:51:38 914

原创 软件定时器 API 函数详解

允许在指定时间间隔或单次触发后执行回调函数,由守护任务(Timer Task)统一管理。适用于周期性任务调度或延时操作,无需占用硬件定时器资源。以下是软件定时器相关 API 的全面讲解,涵盖动态/静态创建、启停控制及中断安全操作。通过合理使用软件定时器,可实现精准的周期性任务调度,优化系统资源分配。务必遵循回调函数的设计规范,确保系统的实时性和稳定性。FreeRTOS 的。

2025-03-27 11:40:11 281

原创 匈牙利命名法

ux: 无符号BaseType_t: 表示资源使用峰值xQueue: 队列句柄(类型为QueueHandle_t): void指针类型参数: TickType_t类型的等待时间。

2025-03-27 11:27:27 383

原创 软件定时器(Software Timer):概念、设计意义与应用实例

是 FreeRTOS 中一种基于系统节拍(Tick)的任务调度机制,允许开发者创建。中执行,其行为受以下配置影响(在。软件定时器的回调函数在独立的。,通过回调函数处理具体逻辑。

2025-03-27 11:01:14 443

原创 任务通知相关的 API 函数详解

是一种轻量级的高效通信机制,允许任务之间或中断直接向特定任务发送事件或数据。相比队列、信号量等传统机制,任务通知具有。通过合理使用任务通知,可以在资源受限或性能敏感的场景中显著提升效率,但需注意其适用边界,避免滥用导致代码可维护性下降。(无需额外创建对象),但功能相对受限(如仅支持单向通信)。以下是任务通知相关的 API 函数详解及使用指南。每个通知只能由一个任务接收,无法像队列一样广播给多个任务。需确保发送方持有正确的目标任务句柄(可通过。)不能在中断服务程序(ISR)中调用。任务通知的接收函数(如。

2025-03-26 17:11:19 742

原创 任务通知(Task Notification):概念、设计意义与应用实例

通过直接操作任务的内部状态实现同步和数据传递。是 FreeRTOS 中一种。

2025-03-26 16:46:21 390

原创 事件标志组相关的核心 API 函数

在 FreeRTOS 中,是一种用于任务间同步和事件管理的机制,允许任务等待多个事件的不同位组合(bitwise combinations)。

2025-03-26 16:26:25 733

原创 事件标志组(Event Group):概念、设计意义与应用实例

的形式管理多个事件状态。每个事件对应一个二进制位(bit),任务可以设置、等待或清除这些位,实现灵活的事件触发与响应。传统信号量或队列机制需为每个事件创建独立对象,导致。若仅需向单个任务发送事件标志,可优先使用。,其性能更高(无需创建事件组对象)。是 FreeRTOS 中用于。时,退出时会自动清除。

2025-03-26 16:20:02 819

原创 队列集相关的 API 函数详解

队列集是 FreeRTOS 中管理多事件的高效工具,通过集中监听多个队列或信号量,简化了复杂事件处理逻辑。合理使用队列集可以提升代码可维护性,但需注意事件容量和性能开销。

2025-03-26 11:46:53 519

原创 队列集xQueueSelectFromSet(), 如果同时,有两个队列触发,怎么办?先处理哪一个?

如果需明确区分事件优先级或记录多事件状态,可以使用。在 FreeRTOS 中,当使用。监听多个队列或信号量时,如果。在任务中处理完一个成员后,假设队列集包含两个队列。

2025-03-26 11:40:48 232

文件搜索工具,使用Python编写,然后压成一个.exe文件 该文件可以直接在Windows系统上运行

文件搜索工具,使用Python编写,然后压成一个.exe文件。该文件可以直接在Windows系统上运行。支持文件名称关键词搜索,即使文件名称输入不全也能搜索到。

2023-07-21

C++中引用(&)相关知识

C语言中的指针,和C++中的引用(&),在做函数形参的时候有很多相似的地方,为了方便查阅异同,截取了一部分关于引用的知识。

2023-07-17

用Python写的一个监控自己电脑各项参数的小程序

实时监控自己电脑的运行时间、使用率、内存使用率、CPU速度等参数,后期还可以扩展监控范围。

2023-07-15

python写的笔记本小程序

使用Chat gpt 通过发布命令写成的一个小程序。并且通过pyinstaller功能生成了.exe可执行文件。 后续会将源代码上传。

2023-07-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除