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

嵌入式开发

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

原创 基于STM32的WS2812B炫彩灯光控制系统

这个项目是一个高效稳定的WS2812B RGB LED灯带驱动库,专为STM32F103系列微控制器设计。通过PWM和DMA技术实现精确的时序控制,支持多达60个LED灯珠,提供了丰富的灯光效果和灵活的配置选项。该项目以卓越的性能和丰富的灯光效果,为嵌入式开发者提供了开箱即用的WS2812B解决方案。所有代码采用模块化设计,方便移植到各种STM32平台,并通过详尽的注释确保可维护性。(只拍摄了部分效果)

2025-06-24 14:12:35 1077

原创 最坏执行时间分析

在嵌入式软件开发中,尤其是汽车自动门这类安全关键系统(Safety-Critical System)中,是一个至关重要的过程。它用于,确保系统在任何条件下都能满足实时性要求,避免灾难性后果(如车门意外打开/夹伤乘客、系统死锁等)。

2025-06-23 16:16:33 641

原创 每日一练-单链表C++实现

(尾节点指向头节点),在不同场景下各有优势。与数组的连续存储不同,链表的节点在内存中是。的,通过指针链接在一起。注意:单链表的变体还有。

2025-06-23 11:46:49 579

原创 Windows电脑小白必看:从开箱设置到长期维护的完整指南

养成这些习惯,你的电脑就能长期稳定运行,成为你学习娱乐的得力助手!遇到具体操作问题,善用搜索引擎(关键词描述清楚)或请教懂的朋友。电脑用久了,难免会遇到各种奇怪的问题(比如卡顿、闪退、甚至蓝屏),或者你安装软件时不小心装了不该装的(全家桶、恶意软件)。好的,这段信息非常重要,是电脑小白的“定心丸”和“避坑指南”。右键 -> 结束任务。

2025-06-21 09:46:21 658

原创 新手必看!Windows 11 新电脑开箱设置 & 软件安装超详细指南

这份指南将一步步教你完成 Windows 11 的初始设置、激活免费 Office、以及正确安装常用软件,让你轻松上手。新电脑通常预装了 Office 家庭和学生版(包含 Word, Excel, PowerPoint)。新电脑首次开机,会自动进入 Windows 11 的设置向导。第一次自己设置 Windows 11 电脑的小白用户。

2025-06-21 09:30:10 886

原创 S32K1XX数据手册-中文

【代码】S32K1XX数据手册-中文。

2025-06-20 22:01:39 445

原创 内存管理介绍

它通过硬件(MMU, TLB)与软件(页表,缺页中断处理,页面置换算法)的紧密协作,为进程创造了独立的、庞大的、受保护的虚拟地址空间,并克服了物理内存的限制和碎片化问题。物理页面分配器(Buddy)、对象分配器(Slab)以及用户空间分配器(malloc)构建了高效的内存分配框架。当前物理内存中的某个页框(将其内容写回磁盘 - 如果修改过,或直接丢弃 - 如果是干净页/只读页/副本页)。操作系统不仅要管理用户进程的虚拟内存,还要管理其自身(内核)所需的内存分配。现代操作系统内存管理的灵魂是。

2025-06-20 13:25:28 359

原创 进程管理介绍

这是操作系统最复杂、最核心的功能之一,直接关系到系统的性能(吞吐量、响应时间)、稳定性(避免死锁、崩溃)和资源利用率(CPU、内存、I/O)。(虚拟内存机制保护),一个进程不能直接访问另一个进程的内存。为了实现进程间的协作(数据共享、任务同步、模块化),操作系统必须提供。(结果依赖于进程调度执行的时序)和死锁 (Deadlock)。当多个进程(或线程)并发访问共享资源(如共享内存、文件、数据库)时,进程管理的核心目标是为程序(特别是多道程序)的执行创造一个。操作系统通过定义不同的状态来跟踪进程的生命周期。

2025-06-20 13:18:13 251

原创 数据结构与算法

算法类别核心思想时间复杂度适用问题类型动态规划 (DP)存储子问题解,避免重复计算多项式级(如 O(n²))有重叠子问题和最优子结构贪心算法局部最优导向全局最优通常 O(n log n)满足贪心选择性质回溯算法DFS + 剪枝遍历解空间指数级(优化后降阶)组合优化、约束满足问题分治算法拆解独立子问题,合并解通常 O(n log n)子问题独立无重叠数据结构与算法是计算机科学思维的精髓和高效软件开发的根基。数据结构定义了信息的组织范式,为数据存储和管理提供底层支撑;

2025-06-20 12:59:56 321

原创 操作系统概述

操作系统(Operating System, OS)是管理计算机硬件与软件资源的系统软件,它是用户与硬件之间的桥梁,也是所有应用程序运行的基础平台。简单来说,OS 是计算机的“大管家”,负责协调 CPU、内存、磁盘、外设等资源,为用户和程序提供高效、安全、稳定的服务环境。操作系统是数字世界的“空气”——无处不在却常被忽视。它持续推动着从算盘到超级计算机的演进,并在量子计算、边缘计算等新领域持续进化。理解 OS,不仅是技术人的必修课,更是透视数字文明本质的关键窗口。

2025-06-20 12:34:40 968

原创 四大软件生命周期模型:瀑布、V模型、迭代与增量模型

深入解析四大软件生命周期模型:瀑布、V模型、迭代与增量模型在软件开发的世界里,。不同的项目规模、需求明确度和团队协作方式,需要匹配不同的开发框架。本文带你穿透理论迷雾,掌握四大经典模型的本质差异。

2025-06-20 12:20:47 982

原创 计算机体系结构中的核心概念

理解CPU(ALU、寄存器、ISA)、总线(AMBA)、存储层次(Cache/DRAM/Flash特性差异)以及中断/DMA,是掌握计算机如何高效协同工作的基石。ARM Cortex-M/A、RISC-V等ISA的选择深刻影响着系统的性能、功耗和编程模型。AMBA总线架构解决了复杂SoC的高效互连。存储层次通过Cache弥补了CPU和主存的速度鸿沟。中断机制使CPU能及时响应外部事件,而DMA则极大释放了CPU进行高速数据搬移的压力。

2025-06-20 12:04:04 326

原创 OTA升级用差分算法减少传输量

算法是一种通过比较新旧版本固件的二进制差异,只传输差异部分来大幅减少升级包体积的技术。这种技术对于嵌入式设备(尤其是通过蜂窝网络/NB-IoT等低带宽环境升级的设备)至关重要。

2025-06-20 01:56:01 418

原创 数据结构与算法知识框架

数据结构与算法是计算机科学的基石,也是嵌入式软件工程师解决资源受限问题的核心工具。🔑 关键认知:在嵌入式领域,数据结构和算法不是学术玩具,而是解决问题的武器库。🛠️ 三、嵌入式场景中的核心关注点。遍历/最短路径/最小生成树。数组/链表/栈/队列。二叉树/堆/AVL树。

2025-06-20 01:36:09 394

原创 嵌入式软件工程师需要的技术栈

要成为一名合格的嵌入式软件工程师,技术栈的深度和广度都至关重要。这是一项横跨硬件与软件的领域,既要懂软件逻辑,又要理解硬件约束。GPIO/定时器/UART/SPI/I2C等。ARM Cortex/MCU架构。FreeRTOS/Zephyr等。🧠 二、嵌入式系统核心技术栈。🛠 三、关键开发技能与工具链。🧱 一、必备基础核心能力。🧪 四、实践能力与软技能。调试器/OpenOCD。这些技术已经很全面了。

2025-06-20 01:22:58 400

原创 频谱显示中每个点的能量如何计算?

音频信号采集与中心化处理:消除直流分量,确保频谱分析的准确性。FFT转换:将时域信号转换为频域信号,得到64个频域分量。能量提取:计算每个频域分量的幅值,并进行归一化处理,使其在合理的范围内。动态调整:通过峰值保持和缓降等机制,使频谱显示更加自然。模式切换与分组计算:根据不同的显示模式,对频谱能量进行合并或分组处理,以优化性能。通过这些步骤,可以实现一个动态、自然的音乐频谱显示效果,为用户提供更丰富的视觉体验。

2025-06-17 04:41:39 849

原创 傅里叶变换(FT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)

理论基础 vs 数字化实现 vs 高效计算:傅里叶变换 (FT)是最核心的理论基础,它建立了连续时间信号时域与连续频域之间的变换关系。离散傅里叶变换 (DFT)是为了适应计算机处理的现实需求(信号离散化、有限长数据)而诞生的 FT 的离散化、有限化的数字版本。它是理论(FT)通向实践(数字信号处理)的关键桥梁。快速傅里叶变换 (FFT)是加速 DFT 计算的一种高效算法族。它本身并不是一种新的变换形式,但它使得 DFT 的大规模、实时计算变得可行。

2025-06-17 02:53:00 1484

原创 主要储存器类型

特性寄存器高速缓存 (Cache - SRAM)主存 (DRAM / SRAM)固态硬盘 (SSD - NAND Flash)机械硬盘 (HDD)光盘/磁带主要作用CPU内部暂存缓冲主存与CPU速度差运行程序长期存储大量数据/程序长期存储大量数据/程序分发/存档/备份易失性易失易失易失 (DRAM)/非易失 (较少)非易失非易失非易失访问速度极快 (1 ns级)极快 (ns级)快 (ns级)较快 (us - 几十us级)慢 (ms级)慢 - 很慢存储容量。

2025-06-15 21:16:45 507

原创 PID控制中的积分饱和

是工程实践中的关键问题,尤其在使用位置式PID时需重点解决。:恰当的抗饱和策略可提升控制性能30%以上,降低执行机构损耗。(如阀门开度0-100%,但计算值达到150%)且。:无人机电机控制(输出增量限制在±5%PWM)增量式最安全,关键在限Delta”“饱和区不积分,过饱和要反算;:嵌入式系统(计算资源受限):通过反馈补偿积分累积。:特定条件下冻结积分。

2025-06-15 19:30:36 1116

原创 TCP/IP协议族

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

2025-06-02 22:38:12 1292

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

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

2025-06-02 22:19:01 793

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

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

2025-06-02 21:29:39 804

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

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

2025-06-02 17:53:00 717

原创 计算机网络的分类

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

2025-06-02 17:25:31 454

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

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

2025-06-02 16:50:16 555

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

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

2025-05-29 21:48:29 495

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

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

2025-05-29 21:33:54 509

原创 stm32f1xx_hal.c文件

【代码】stm32f1xx_hal.c文件。

2025-05-28 10:42:13 253

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

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

2025-05-05 01:03:09 490

原创 射击网页游戏

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

2025-04-23 16:47:23 445

原创 酷炫登录页面

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

2025-04-22 20:55:27 716

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

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

2025-04-21 10:42:04 433

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

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

2025-04-14 11:35:03 398

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

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

2025-04-14 10:56:34 487

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

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

2025-04-14 10:31:34 332

原创 选项卡视图(Tabview)

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

2025-04-12 15:35:24 428

原创 图片部件介绍

/ 显示对勾符号。

2025-04-11 15:22:43 586

原创 加载器部件

加载器(Spinner)用于表示。

2025-04-10 17:03:18 272

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

回调函数必须为。

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

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

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

2025-04-10 11:47:42 687

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关注的人

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