自定义博客皮肤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的博客

嵌入式开发

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

原创 TCP/IP协议族

TCP/IP协议族(也称为TCP/IP协议栈)是当今互联网通信的基石,它将网络通信抽象为四层模型(应用层、传输层、网际层、网络接口层),相较于理论化的OSI七层模型更简洁实用。📌 注:ARP通常被划归网络接口层,但其功能涉及IP到MAC的映射(网际层与数据链路层的桥梁)。💡 关键区别:OSI将会话层/表示层独立(如加密、压缩),而TCP/IP将其合并至应用层。测试端口)、设计分布式系统的基础——它定义了互联网的“通用语言”。⚙️ 掌握TCP/IP协议栈是理解网络通信、排查故障(如。(确保双方收发能力正常

2025-06-02 22:38:12 1134

原创 计算机网络的五层模型介绍

计算机网络的五层模型是为了教学清晰度而提出的折中方案,它融合了 OSI 模型的概念结构化和 TCP/IP 模型的实用简洁性。

2025-06-02 22:19:01 746

原创 协议数据单元、对等层、协议栈

协议栈是分层协议的具体实现集合,运行在单台设备上。协议栈中的每一层都有其特定的PDU(如帧、包、段)。PDU 是层间传递和层内处理的数据单元,包含了本层的控制信息(头部)和上层传递下来的数据(有效载荷)。当设备A通过协议栈发送数据时:数据在A的栈中自上而下传递,每层添加自己的头部(封装),形成该层的PDU。物理层将最终的比特流发送出去。设备B接收到比特流,在其协议栈中自下而上传递,每层解析并移除自己的头部(解封装),提取出上层的PDU。

2025-06-02 21:29:39 743

原创 当今互联网的核心协议族是TCP/IP模型,而不是OSI模型

当今互联网赖以运行的实际协议标准是TCP/IP协议族。OSI模型是一种有价值的理论参考模型和教学工具,有助于理解网络的分层概念和功能,但并未成为互联网的部署标准。我们通常使用4层TCP/IP模型(应用层、传输层、网络层、网络接口层)来描述互联网协议栈,并与OSI的7层模型进行大致的功能映射以辅助理解,但核心实践始终是TCP/IP协议。

2025-06-02 17:53:00 709

原创 计算机网络的分类

计算机网络的分类可以从多个维度进行,主要依据其覆盖范围、拓扑结构、传输技术、数据交换方式和所有权等。:从电路交换(电话)到分组交换(互联网)的变革逻辑。:根据需求选择合适拓扑(如工厂自动化需冗余环网)。:LAN问题查交换机,WAN问题查路由协议。(核心层→汇聚层→接入层)。:现代企业网通常采用。

2025-06-02 17:25:31 450

原创 电路交换、报文交换和分组交换

特性电路交换报文交换分组交换连接方式面向连接 (需建立专用路径)无连接 (每个报文独立路由)通常无连接 (每个分组独立路由),也可面向连接 (虚电路)传输单位比特流 (连续)报文 (整个数据块)分组/包 (数据分割后的小块)资源占用独占路径 (低利用率)共享链路 (中利用率)共享链路 (高利用率 - 统计复用)延迟特性建立连接后延迟小且稳定延迟大且不稳定 (取决于报文大小和网络)延迟可变 (通常比报文交换小且稳定)节点存储很少 (仅需缓存少量比特)需要大缓存 (存储整个报文)

2025-06-02 16:50:16 517

原创 在某些嵌入式系统中选择周期性任务调度而非引入FreeRTOS等实时操作系统(RTOS)的原因分析

选择周期性任务调度的核心逻辑在于**“以最小复杂度满足需求”“够用即可”(KISS原则)“成本-效益”**权衡。

2025-05-29 21:48:29 488

原创 常见通信协议SPI、IIC(I2C)、UART和CAN的介绍

主设备发起通信,发送从机地址和读写位。数据通过开漏输出结构传输,需上拉电阻。主设备控制时钟(SCK),通过SS引脚使能从设备。数据在时钟边沿同步传输,支持全双工同时收发。数据帧包含ID、数据域及CRC校验。高速设备如Flash存储器、LCD显示屏、传感器(如陀螺仪)。双方独立时钟,通过起始位同步。数据逐位传输,校验位可检测错误。汽车电子(ECU通信)、工业自动化(PLC控制)、医疗设备。低速外设如温度传感器、EEPROM、RTC时钟模块。设备间简单通信,如调试串口(USB转TTL)。

2025-05-29 21:33:54 456

原创 stm32f1xx_hal.c文件

【代码】stm32f1xx_hal.c文件。

2025-05-28 10:42:13 252

原创 无边框透明.txt小说阅读器——牛马摸鱼神器

透明度调节:用户可以通过左右箭头键轻松调节窗口的透明度,使其更好地融入桌面环境。无标题栏设计:窗口没有传统的标题栏,用户可以通过点击并拖动窗口的任意部分来移动窗口。文件打开功能:支持打开文本文件,并显示文件内容。滚动功能:用户可以通过上下箭头键滚动文本内容。窗口大小调整:用户可以通过拖动右下角的手柄来调整窗口的大小。全屏置顶:窗口始终保持在最前面,方便用户在阅读时进行其他操作。简洁界面:采用深色背景和白色文字,提供舒适的阅读体验。退出快捷键:按下Escape键可以关闭窗口。启动程序。

2025-05-05 01:03:09 405

原创 射击网页游戏

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

2025-04-23 16:47:23 432

原创 酷炫登录页面

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

2025-04-22 20:55:27 714

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

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

2025-04-21 10:42:04 413

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

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

2025-04-14 11:35:03 389

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

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

2025-04-14 10:56:34 459

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

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

2025-04-14 10:31:34 321

原创 选项卡视图(Tabview)

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

2025-04-12 15:35:24 409

原创 图片部件介绍

/ 显示对勾符号。

2025-04-11 15:22:43 574

原创 加载器部件

加载器(Spinner)用于表示。

2025-04-10 17:03:18 258

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

回调函数必须为。

2025-04-10 15:47:00 588 4

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

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

2025-04-10 11:47:42 661

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

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

2025-04-10 11:18:47 373

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

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

2025-04-03 12:01:13 801

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

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

2025-04-03 11:44:40 514

原创 LVGL中部件的类型

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

2025-04-03 11:05:44 428

原创 状态枚举和部件枚举

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

2025-04-02 15:28:11 240

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

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

2025-04-02 15:17:38 349

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

调色板宏(预定义 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 876

原创 LVGL的部件详解

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

2025-04-01 20:58:10 1222

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

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

2025-04-01 20:25:29 1432

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

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

2025-04-01 20:11:54 512

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

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

2025-04-01 20:02:24 365 3

原创 所有的对齐方式

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

2025-04-01 15:12:03 394

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

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

2025-04-01 14:18:01 580

原创 DMA2D功能与应用详解

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

2025-03-31 16:45:05 462

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

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

2025-03-31 14:46:39 1208

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

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

2025-03-27 18:01:07 523

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

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

2025-03-27 17:52:47 902

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

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

2025-03-27 17:40:32 762

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

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

2025-03-27 17:23:05 954

stm32f1xx-hal.c文件

stm32f1xx_hal.c文件; 来自正点原子例程。

2025-05-28

无边框透明.txt小说阅读器-牛马摸鱼神器

特点介绍: 透明度调节:用户可以通过左右箭头键轻松调节窗口的透明度,使其更好地融入桌面环境。 无标题栏设计:窗口没有传统的标题栏,用户可以通过点击并拖动窗口的任意部分来移动窗口。 文件打开功能:支持打开文本文件,并显示文件内容。 滚动功能:用户可以通过上下箭头键滚动文本内容。 窗口大小调整:用户可以通过拖动右下角的手柄来调整窗口的大小。 全屏置顶:窗口始终保持在最前面,方便用户在阅读时进行其他操作。 简洁界面:采用深色背景和白色文字,提供舒适的阅读体验。 退出快捷键:按下 Escape 键可以关闭窗口。 用法介绍: 启动程序:运行程序后,会显示一个带有“打开文件”按钮的窗口。 打开文件:点击“打开文件”按钮,选择一个文本文件,文件内容将会显示在窗口中。 调节透明度: 按下 Left 箭头键可以降低窗口的透明度。 按下 Right 箭头键可以增加窗口的透明度。 移动窗口:点击并拖动窗口的任意部分,可以移动窗口的位置。 滚动文本: 按下 Up 箭头键可以向上滚动文本。 按下 Down 箭头键可以向下滚动文本。 调整窗口大小:拖动窗口右下角的手柄,可以调整窗口的大小。 退出程序:按下 Escape 键可以关闭窗口。 通过这些功能,用户可以在不影响其他操作的情况下,舒适地阅读文本内容。

2025-05-05

文件搜索工具,使用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关注的人

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