自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 嵌入式RTOS和裸机环境下的DDS(数据分发服务)中间件

DDS-Mid是一款专为无Linux系统的嵌入式环境(RTOS/裸机)设计的轻量级DDS中间件,基于C++实现并参考Tiny-DDS架构。该中间件采用发布-订阅模型,提供高效可靠的数据分发机制,支持UDP广播和共享内存传输方式。项目包含核心实现、序列化接口和硬件传输层,文件结构清晰,并提供ZYNQ平台构建指南。当前版本已实现基础框架和参数机制,未来计划扩展服务模型等功能。开发者可通过Gitee/GitHub获取源码,遇到问题可通过邮箱或微信联系开发团队交流。

2025-10-14 11:59:06 411

原创 嵌入式滤波算法模块

本文介绍了嵌入式系统中11种滤波算法的理论与实践应用。针对传感器数据常见的随机噪声、脉冲干扰和周期性噪声三类问题,提出了对应的算法解决方案。滑动平均滤波适合处理随机噪声,中值滤波能有效消除脉冲干扰,而低通滤波则适用于周期性噪声。文章详细解析了每种算法的适用场景、C语言实现代码及调优技巧,特别强调根据信号特性选择算法参数(如滑动平均窗口大小)的重要性。通过"理论选型→代码实现→实战调优"的递进式讲解,为嵌入式开发者提供了从原理到落地的完整滤波方案,帮助解决温湿度跳变、电流采样干扰等实际问题

2025-08-29 13:56:16 657

原创 嵌入式ADC技术详解

摘要: ADC(模数转换器)是连接模拟与数字世界的核心器件,通过采样、保持、量化、编码四个步骤将连续模拟信号转换为离散数字信号,广泛应用于消费电子、工业控制、医疗设备等领域。根据架构不同,ADC可分为逐次逼近型(SAR)、ΔΣ型和流水线型等,各具速度、精度与功耗优势。SAR ADC多集成于MCU中,如STM32支持18通道转换;ΔΣ ADC以24位高精度见长,适用于精密测量;流水线ADC则兼顾高速与高精度。ADC技术壁垒高,国产创新如变阈值单比特ADC芯片为雷达等领域提供了自主可控方案。

2025-08-28 08:02:27 931

原创 嵌入式IIC 外设技术详解

I²C总线技术解析:作为嵌入式系统的关键通信协议,I²C以其双线制(SDA数据线+SCL时钟线)的极简设计,实现多主多从设备的高效互连。该协议由飞利浦半导体于1980年代首创,通过硬件简化、拓扑灵活等特性,广泛应用于传感器网络、消费电子等领域。文章将深入剖析I²C的协议原理、硬件实现及开发实践,并展望其在物联网等新兴领域的发展趋势,为工程师提供全面的技术参考。核心优势包括仅需两根信号线、支持多设备共享总线等。

2025-08-27 11:58:50 973

原创 嵌入式UART和USART技术详解

UART与USART技术详解:UART仅支持异步通信,通过波特率同步;USART支持同步/异步两种模式,同步模式下需要时钟信号。UART帧结构包含起始位、数据位、校验位和停止位。USART相比UART增加了硬件流控功能,适用于高速通信场景。UART多用于传感器等中低速通信,USART则更适合工业控制等要求更高的应用。

2025-08-26 09:24:20 792

原创 嵌入式GPIO外设深度技术解析:从基础原理到高级应用

本文深入解析GPIO(通用输入/输出)技术在现代电子系统中的关键作用。GPIO作为嵌入式系统的"数字翻译官",通过可编程引脚实现物理信号与数字指令的转换,广泛应用于智能家居、工业控制和消费电子领域。文章从生活场景切入,展示GPIO在光照控制、传感器数据采集等应用中的实际案例,并剖析其核心特性:双向通信、可编程配置和跨平台兼容性。GPIO的灵活性和通用性使其成为连接嵌入式设备与外部世界的标准接口,在汽车电子等领域展现出色性能。

2025-08-25 09:31:34 697

原创 [特殊字符] 数制与编码全解析:从基础理论到单片机应用

原码为什么补码能让计算机轻松实现减法?留言区聊聊你的理解~ 提示:从模运算和硬件电路角度思考哦!如果觉得本文有用,欢迎转发给需要的开发者!关注我们,获取更多嵌入式底层知识~ 💻✨延伸挑战:尝试用 8 位补码计算,看看结果是否符合预期?原理又是什么?欢迎在评论区分享你的计算过程!

2025-08-21 11:54:52 839

原创 吐血整理![特殊字符]Keil 软件从入门到精通,开发环境搭建超详细教程[特殊字符]

希望这篇文章能助您快速搭建起开发环境。要是在操作过程中遇到问题,别担心,在评论区留言或者私信我,我会手把手帮您解决~同时,现在关注我,即可免费领取价值万元的嵌入式学习资料以及 STC 单片机开发板资料哦!机不可失,赶紧点击关注,开启您的学习之旅吧!🚀声明:本文的内容大致来源于STC官方文档!

2025-08-21 11:54:35 1219

原创 Zynq平台的FreeRTOS-CLI终端调试组件

FreeRTOS-Shell 组件摘要 基于FreeRTOS-Plus开发的串口Shell终端,兼容V10.x及以上版本,已通过Xilinx Zynq 7045验证。提供任务管理(创建/删除/挂起任务)、内存读写(memwrite/memread)、网络测试(ping)等常用命令,支持串口/网口双模式。通过FreeRtosShellConfig.h配置功能,包含日志分级、堆栈监控等模块。持续更新优化,最新V1.0.6新增网络ping功能并修复日志模块。

2025-06-18 21:23:57 764

原创 全能开发利器 | STC8H8K64U 开发板硬核解析

如果你是物联网开发者、嵌入式爱好者,或是想玩转智能家居、传感器应用的极客,这块绝对能成为你的「全能搭档」!从基础外设到高级通信,从传感器采集到人机交互,它集成了,一站式满足你的创意落地需求!

2025-04-23 08:11:52 1574

原创 从80年代到AI时代!51单片机如何逆袭成“电子界常青树”?

在 AI 边缘计算、智能传感器等对成本敏感的领域,51 单片机凭借其独特的 “减法哲学” 重新定义了性价比。它通过简化非必要功能,将成本控制在极低的水平,1 美元起售价,仅为 ARM 芯片的 1/3 ,却能满足这些领域的基本需求。在一些简单的 AI 边缘计算任务中,如智能门锁的指纹识别验证,51 单片机虽然在性能上不如高端芯片,但通过合理的算法优化和功能设计,它依然能够快速准确地完成任务,为用户提供安全可靠的服务;

2025-04-21 07:50:15 1016

原创 C语言实战项目:万字进阶版

同时,游戏还设有分数统计功能,玩家每成功击碎一块砖块,都会获得相应的分数,这不仅增加了游戏的挑战性,还能激发玩家的竞争意识,让玩家在游戏中追求更高的分数。在代码实现中,可以通过计算每个小区域的坐标范围,从原图中提取相应的像素数据,生成 16 个小图片。当检测到子弹的坐标落在气球的坐标范围内时,判定为击中,随即更新气球和子弹的状态,让玩家及时获得击中反馈,增加游戏的趣味性和紧张感。:在气球射击和打砖块游戏的基础上,尝试增加更多的游戏元素,如道具、特殊砖块等,提升游戏的趣味性和挑战性,进一步熟悉图形库的应用。

2025-04-06 08:53:50 1018

原创 C语言数据结构:万字进阶版

而平衡二叉树,如 AVL 树、红黑树等,虽然查询操作的时间复杂度为 O (log n),但在数据动态变化频繁的情况下,能够通过自动调整树的结构,始终保持良好的查询性能,确保查询效率的稳定性。当数组已满且需要插入新元素时,动态数组会创建一个新的、更大的数组,一般是原数组容量的两倍 ,然后将原数组中的所有元素复制到新数组中,最后释放原数组的内存。链表栈在插入和删除元素时,只需调整指针的指向,无需进行内存的移动或扩容操作,因此在频繁进行栈操作的场景下,链表栈展现出了极高的灵活性与效率。

2025-04-05 06:42:47 539

原创 万字详解C语言高级特性

在 C 语言的内存管理领域,自定义内存池是一项极具价值的技术,它能够显著提升内存分配的效率,有效减少内存碎片的产生。内存池,就像是一个精心管理的内存仓库,在程序运行之前,预先分配出一大块连续的内存空间。当程序需要分配内存时,不是直接向操作系统申请,而是从这个内存池中获取。当程序释放内存时,也不是立即归还给操作系统,而是将其标记为可用,留待下次分配使用。这样一来,避免了频繁地向操作系统申请和释放内存所带来的开销,大大提高了内存分配的速度。1024// 内存池结构体// 初始化内存池。

2025-04-04 09:34:14 1233

原创 C语言文件操作:万字进阶版

程序文件包含了计算机可执行的指令,是我们编写的代码经过编译、链接后生成的成果,像常见的以.c 为后缀的源程序文件,以及编译后生成的以.exe 为后缀的可执行文件等都属于程序文件。如果缓冲区过小,就像一个容量很小的仓库,数据频繁地进出,会导致频繁的磁盘 I/O 操作,而磁盘 I/O 操作相对较慢,这会大大降低文件读写的效率;文件加密传输的原理是通过一定的算法和密钥,将文件的原始内容(明文)转换为密文,只有拥有正确密钥的接收方才能将密文还原为明文,从而保证文件内容的安全性和保密性。

2025-04-03 07:54:36 989

原创 C语言函数:编程世界的万能钥匙。万字进阶版本

函数名是函数的标识,就像人的名字一样,用于在程序中调用这个函数,它必须遵循标识符的命名规则,要简洁明了,能够准确反映函数的功能。参数列表是函数接收外部输入数据的通道,通过这里可以传递各种类型的参数,为函数的执行提供必要的数据支持,如果函数不需要参数,参数列表可以为空,但括号不能省略。在 C 语言中,每个函数在编译时都会被分配一个入口地址,这个地址就像是函数的 “门牌号”,函数指针就可以指向这个地址,通过函数指针,我们可以像调用普通函数一样调用它所指向的函数。例如,我们经常使用的。

2025-04-02 07:58:31 697

原创 C语言之指针深度解剖:万字进阶版本

通过指针参数,我们可以在函数内部修改外部变量的值,实现数据的高效传递,就像在不同的房间之间建立了便捷的通道;从最初对指针的懵懂初印象,到深入学习指针的基础语法,再到探索指针类型的深刻意义、指针运算的奇妙操作,以及指针与数组那紧密相连的关系,还有指针在函数中的强大应用,乃至野指针与内存管理的关键要点,最后拓展到指针的高级应用领域。如果返回的指针指向的是函数内部的局部变量,那么在函数结束时,局部变量的内存将被无情释放,返回的指针将成为野指针,这是非常危险的,可能导致程序崩溃或出现其他不可预测的错误。

2025-04-01 09:30:02 927

原创 C语言结构体和联合体:万字进阶版本

但需要注意的是,这种类型转换需要程序员对内存布局和数据类型有深入的理解,并且要确保类型之间的兼容性和安全性,否则可能会导致未定义行为。在 C 语言的世界里,结构体(struct)就像是一个功能强大的 “收纳盒”,它允许我们把不同类型的数据整合在一起,形成一个有机的整体,是 C 语言中极为重要的自定义数据类型,也是数据处理的有力工具。:联合体的对齐规则与结构体类似,但对齐系数由最大成员的对齐需求决定,联合体的大小至少是其最大成员的大小,当最大成员的大小不是最大对齐数的整数倍时,要对齐到最大对齐数的整数倍。

2025-03-31 07:51:41 610

原创 C语言零基础实战:300行代码实现控制台计算器(附扩展优化指南)

在编程学习的道路上,动手实践是突破理论瓶颈的关键。计算器项目作为C语言经典实战案例,不仅能帮助新手掌握和,还能通过培养工程思维。本文将带你从零开始,用300行代码实现一个支持和的控制台计算器,并提供,助你打造个人作品集中的亮眼项目。

2025-03-26 08:00:23 532

原创 《C语言文件操作完全指南:37个代码+16图解密高效IO与避坑实战》

(全文包含37个代码片段,16个技术原理图示,8个性能对比表格)

2025-03-25 10:11:06 349

原创 C语言指针精要:避开73%程序崩溃的高效内存管理术

掌握指针和内存管理需要经历三个境界:初学时的畏惧迷茫、实践中的痛苦调试、最终达到人剑合一的精准控制。手动实现malloc/free的简单版本编写内存泄露检测模块在无调试器环境下分析核心转储文件只有深入理解计算机系统的内存运作机制,才能在资源受限的环境中编写出高效可靠的C语言程序。持续关注现代C标准(如C11/C17)中引入的安全特性,如_Generic类型泛型、边界检查函数等,将使你的代码既保留C的高效特性,又具备更强的安全性。

2025-03-24 08:07:19 869

原创 C语言函数完全指南:10大核心要点从入门到精通

【代码】C语言函数完全指南:10大核心要点从入门到精通。

2025-03-23 12:14:32 206

原创 C语言黑科技全解析:指针魔法与性能优化的终极指南

传统malloc内存池高碎片率零碎片慢速分配O(1)分配不可预测确定性强。

2025-03-22 10:12:47 544

原创 C语言结构体与联合体完全指南:从原理到嵌入式开发实战

在C语言中,结构体是构建复杂数据类型的基石。// 学生姓名// 学号float gpa;// 平均绩点// 所属院系封装相关数据项实现数据层次的抽象构建复杂数据结构的基础单元。

2025-03-21 07:46:18 964

原创 C语言控制结构深度解析:从底层原理到高效实战技巧

编译原理计算机体系结构算法复杂度分析软件工程实践。

2025-03-20 08:13:20 350

原创 C语言数组与字符串:底层实现与高效应用全解析

通过深入理解数组与字符串的底层机制,开发者能够编写出高效、健壮的C语言代码。无论是嵌入式系统的内存优化,还是高性能计算中的数据批处理,这些基础数据结构的高阶应用将持续发挥关键作用。在C语言编程中,数组与字符串是构建程序逻辑的核心要素,其底层实现与应用技巧直接影响代码质量与执行效率。本文通过系统化的知识梳理与实战案例,帮助开发者掌握这两类数据结构的精髓。数组作为连续内存空间的线性集合,其设计理念体现了C语言对硬件资源的直接管控能力。此代码利用数组的连续性实现高效计算,避免递归带来的性能损耗。

2025-03-19 08:17:01 965

原创 C语言运算符系统12大核心模块完全解析:从底层原理到高效开发实战

+--7/2=3。

2025-03-18 07:43:04 296

原创 C语言变量与数据类型全攻略:200+代码实战与内存管理秘籍

变量初始化原则// 指针必须初始化为NULL// 数组全初始化类型选择矩阵场景推荐类型循环计数器金融计算网络通信协议uintXX_t精确类型内存敏感环境short/char防御式转换模板typeofMAX?MIN。

2025-03-16 19:56:50 444

原创 深入掌握C++文件流:从文本处理到二进制操作核心技术解析

文件流家族三大核心成员构成数据处理闭环:

2025-03-09 00:48:59 731

原创 C++异常处理完全指南:深入底层机制与21条工业级避坑准则

在嵌入式系统开发中,我曾亲眼目睹一个未处理异常导致卫星通信模块死机的惨痛案例。当try块中的内存分配失败时,没有对应的catch处理,程序直接崩溃。这就是异常处理的现实意义——它不仅是语法糖,更是构建健壮程序的最后防线。C++异常机制诞生于1990年代,Bjarne Stroustrup在设计时特别强调类型安全。

2025-03-09 00:48:00 677

原创 C++模板核心技术深度解析:从元编程到实战优化

技术要点适用场景性能影响可维护性SFINAE类型特征检测编译期无开销较低概念约束接口规范编译期检查高CRTP静态多态零运行时开销中等可变参数模板泛型容器/工厂编译时间增加中等表达式模板数值计算优化显著提升运行较低。

2025-03-09 00:47:01 470

原创 深入解析现代C++面向对象编程核心原理与高效实战应用

自1983年由Bjarne Stroustrup博士在贝尔实验室创立以来,这门语言经历了从C with Classes到C++98、C++11直至C++20的多次重大迭代,始终保持着对现代编程范式的完美支持。根据2024年TIOBE编程语言排行榜最新数据显示,C++稳居全球使用率前三,其面向对象编程能力在系统开发、游戏引擎、高频交易等领域的卓越表现功不可没。

2025-03-09 00:45:22 379

原创 C++结构体与枚举深度解析:30个实例掌握高效内存管理与高级应用技巧

C++结构体与枚举深度解析:30个实例掌握高效内存管理与高级应用技巧。

2025-03-09 00:44:17 531

原创 C++指针与引用核心差异:深入解析内存操作与现代编程实战

/ 最终性能对比测试数据: // 引用传递 vs 值传递(1e6次调用): // 引用:3.2ms | 值传递:125.6ms。

2025-03-09 00:43:00 435

原创 C++函数核心机制与高效实践深度解析

C++函数核心机制与高效实践深度解析。

2025-03-09 00:41:19 260

原创 C++数组与字符串深度解析:从内存布局到现代黑科技

数组越界不是狼来了:开启-fsanitize=address编译选项字符串字面量的生命周期陷阱vector的特殊性对字符串处理的启示多字节字符集的处理雷区(UTF-8 vs GBK)在人工智能时代,数组和字符串处理正面临新的挑战。基于GPU的并行字符串处理持久化内存(PMEM)的数组新用法内存安全与性能兼顾的新型抽象量子计算环境下的字符串算法重构记住,好的开发者能把数组写成诗,让字符串唱出歌。当你真正理解这些基础数据结构的内在哲学时,就会发现:编程之道,存乎一心。

2025-03-09 00:39:53 780

原创 深入解析C++控制结构:现代编程中的高效实现与优化实战

程序执行的最基本形式如同工业流水线,操作单元按既定顺序依次执行。C++默认从main函数入口开始逐行处理指令。

2025-03-09 00:38:26 405

原创 C++核心语法全解:从数据类型到现代C++实战指南

/ 常量定义对比#define PI3.1415926// 预处理替换// 类型安全// 枚举类型。

2025-03-09 00:35:35 415

原创 C++跨平台开发环境搭建全指南:工具链选型与性能优化实战

【代码】【无标题】

2025-03-09 00:27:52 730

原创 FreeRTOS-CLI的Shell终端

命令注册:CLI 允许用户定义和注册自己的命令函数。每个命令可以有一个关联的帮助文本,这样用户可以通过输入help或者特定命令的名称来获取有关该命令的使用信息。命令解析:当用户输入命令时,CLI 会解析命令字符串,将其分解为命令名称和参数,并调用相应的命令处理函数。参数传递:CLI 支持多种类型的参数,包括整数、浮点数、字符串等,并能将这些参数正确地传递给命令处理函数。输出格式化:CLI 提供了简单的输出函数,如和, 用于格式化输出到终端或通信接口。回显功能。

2024-12-07 17:40:37 1917

空空如也

空空如也

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

TA关注的人

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