自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【3-硬核科普】彻底搞懂 O_NOCTTY:物理终端:伪终端:进程:会话控制终端

本文从一个Qt上位机开发者的视角出发,用VSCode Remote-SSH连接Linux虚拟机的实际场景,层层剖解“物理终端、伪终端、进程、会话、控制终端”等概念,并用“办公室对讲机”类比彻底讲清 `O_NOCTTY` 的作用。

2026-04-28 10:40:48 341

原创 【初学者必看3:网络通信实战】《从零开始设计Qt网络通信上位机:IPv4/IPv6、UDP、TCP全协议详解与界面实践》

本文从零开始讲解如何用Qt开发网络通信上位机,涵盖IPv4/IPv6、UDP/TCP、客户端与服务器等核心概念。通过封装NetworkInterFace类统一管理底层套接字,结合Dialog_NETworkOpen界面实现协议选择、地址端口配置、连接/断开、数据收发(文本/十六进制/文件)、循环发送及日志显示。文章强调代码与理论结合,动态获取本机IP、处理粘包、分块发送大文件等实战技巧,帮助读者快速构建功能完备的网络调试工具。

2026-03-27 10:06:02 381

原创 【C++ Lambda表达式详解:从零开始的完全指南】

Lambda表达式是现代C++编程中不可或缺的核心特性,但对于许多开发者来说,它既熟悉又陌生。本文以初学者友好的方式,从为什么需要Lambda出发,通过大量生活化类比(如"便利贴"、"即时烹饪"等),系统性地讲解了Lambda的所有核心概念。内容包括:Lambda的完整语法详解、捕获列表的深入理解、实际应用场景分析、最佳实践指南,以及常见陷阱规避。无论你是C++新手还是有一定经验的开发者,本文都将帮助你彻底掌握Lambda表达式,写出更简洁、更优雅、更现代的C++代码。

2026-02-11 14:17:05 556

原创 【嵌套类访问外部类实例 - 图文详解】

还在为C++嵌套类访问外部类实例而困惑吗?本文用最直观的"公司-部门"现实类比+完整代码,彻底讲透嵌套类的本质!从基础概念到实际应用,手把手教你理解嵌套类如何操作外部类实例,掌握封装设计的精髓。适合有一定C++基础但对此概念模糊的开发者。

2026-02-06 17:05:06 880

原创 【volatile深度解析】:编译器与硬件的认知鸿沟

在STM32开发中,volatile关键字解决了编译器优化与硬件寄存器异步更新的认知冲突。普通变量优化策略会缓存数据,但硬件寄存器值可能随时被外部事件改变。通过强制CPU每次重新读取内存映射地址而非使用缓存,volatile确保获取最新硬件状态。典型场景包括:外设输入寄存器(GPIO_IDR)、中断共享变量和多线程数据。实验证明,未使用volatile时按键检测可能失效,而正确声明后能实时响应硬件变化。该关键字是嵌入式开发中软件思维转向硬件思维的关键桥梁。

2026-01-23 17:25:46 623

原创 【硬件直觉构建】STM32核心架构解析:从存储器映射到GPIO控制

本文直面从应用层向底层转型的核心痛点,以STM32F103为例,厘清关键架构概念。拒绝抽象空谈,聚焦可验证事实:1. 解构芯片“All in One”本质,阐明总线既是物理连线也是通信协议;2. 剖析ARM内核4GB“逻辑地图”(存储器映射)与芯片物理资源的对应关系;3. 详解通过“门牌号”(寄存器映射)精准操控外设的实操逻辑;4. 重点纠正“引脚即GPIO”的常见误解,揭示复用功能(AFIO)的真实工作模式。文章最终落脚于“手动计算寄存器地址”与“查阅数据手册”的可执行契约,为构建硬件直觉提供清晰路径。

2026-01-22 15:21:25 1055

原创 【第四章:STM32 GPIO内部结构解析(三)——输入电路(施密特触发器与上下拉电阻)】——数字世界的“去噪器“和“稳定器“

深入解析STM32 GPIO输入电路的工作原理与设计要点。我们将从施密特触发器(数字世界的"去噪器")开始,揭示它如何通过滞回特性消除噪声干扰;接着探讨上下拉电阻的作用,理解为什么需要给输入信号一个"默认值";然后分析浮空输入、上拉输入、下拉输入和模拟输入四种模式的区别与应用场景;最后通过实际案例(按键检测、外部中断、传感器接口)展示如何设计稳定可靠的输入电路。掌握这些知识,您将能够正确处理各种输入信号,避免误触发和信号干扰,构建出更加健壮的嵌入式系统。

2026-01-21 10:05:54 652

原创 【第三章:STM32 GPIO内部结构解析(二)——输出驱动器(推挽与开漏)】——从MOS管到代码配置的完整链条

深入解析STM32 GPIO的两种关键输出模式——推挽输出与开漏输出。我们将从MOS管的基本原理出发,揭示推挽输出如何实现强大驱动能力,开漏输出如何实现电平转换和多设备共享。通过电路分析、数学计算和实际代码,您将彻底理解:为什么推挽输出能同时输出高电平和低电平,而开漏输出只能主动拉低;如何根据应用场景选择合适的输出模式;以及这两种模式在I²C、LED驱动、电平转换等实际应用中的关键作用。掌握这些知识,您将能够设计出更高效、更可靠的数字接口电路。

2026-01-21 10:05:24 648

原创 【第二章:STM32 GPIO内部结构解析(一)——保护电路与二极管钳位】——为什么你的芯片不容易烧坏?

深入解析STM32 GPIO引脚内部的保护电路设计。通过剖析保护二极管的工作原理,解释为什么芯片能承受一定程度的电压异常而不损坏,揭示5V容忍引脚的秘密。你将理解:保护电路如何像“电压安全阀”一样工作,其保护能力的边界在哪里,以及在实际电路设计中如何正确配合外部保护元件。掌握这些知识,能让你设计出更可靠、更健壮的嵌入式硬件系统。

2026-01-20 16:44:46 747

原创 【第一章:STM32存储器映射与寄存器映射的本质——4GB地址空间的真相】——为什么你写的代码能控制硬件?

摘要:本文将揭开STM32中看似神秘的4GB地址空间的本质。通过生动的比喻和清晰的解析,您将理解:为什么向0x40020000这样的地址写入数据就能控制硬件引脚?ARM定义的"地址地图"与ST芯片的实际实现有何关系?4GB是寻址能力而非物理存储容量的真正含义是什么?文章将带您深入理解内存映射I/O机制,剖析从代码指令到硬件动作的完整旅程,并澄清常见的认知误区。掌握这些核心概念,是摆脱对嵌入式开发"黑魔法"的困惑,真正理解底层工作原理的关键第一步。

2026-01-20 16:42:19 633

原创 【2-硬核科普】串口通信大全:从UART、RS-485到I2C/SPI,一文讲透核心概念(含ISP揭秘)

本文系统总结了常见的串口通信协议,包括UART、RS-232、RS-485、I2C和SPI,详细分析了它们的工作原理、线数需求和应用场景。文章首先阐述了单工、半双工和全双工三种数据流向模式,以及主从和对等两种控制权模式。随后对比了各协议的特点,如UART的简单通用、RS-485的远距离组网能力、I2C的二线制节省引脚优势以及SPI的高速全双工特性。最后澄清了ISP并非独立协议,而是基于UART实现的在系统编程功能。全文为嵌入式开发者提供了清晰的串口通信参考指南。

2025-11-27 11:31:13 816

原创 【Windows下QT平台周立功ZLG USBCAN-II编写上位机-链接外部库】

本文详细讲解在QT开发环境中集成ZLG硬件驱动库的完整流程,涵盖Windows平台下的库文件准备、.pro项目文件配置等关键步骤,并提供完整的配置示例,帮助开发者快速完成硬件接口开发环境的搭建。

2025-10-29 11:09:39 650

原创 【初学者必看_1:当我写下a=b+c:一场从C代码到CPU执行的奇幻漂流—— 彻底解析指令集、编译器与软硬件执行栈】

你是否曾困惑,一行简单的C代码 a = b + c,究竟是如何让冰冷的硅晶片理解和执行的?本文将以这个故事为起点,带你进行一场酣畅淋漓的技术深潜。我们将从 “指令集”——CPU的母语 开始,一步步揭开 编译器 如何扮演“翻译官”的角色,将高级语言转化为机器码;进而深入 CPU内核、架构、芯片 的硬件世界,理解它们如何分工协作;最终,阐明 操作系统内核 如何作为“大管家”,调度这一切有序运行。通过 “国际会议同声传译” 等精妙比喻和一张完整的系统全景图,你将不再孤立地看待这些概念,而是建立起一个从软件

2025-10-28 20:09:28 1097

原创 【初学者必看(2):网络通信的基石:深度拆解数据封装(以太网帧、IP包、TCP段)与可靠传输(端口号、序列号)】

在网络通信的宏大故事中,我们知道了数据包如何环球旅行。但你是否好奇,这个‘包裹’本身究竟长什么样?本文将通过 ‘俄罗斯套娃’ 的精妙比喻,带你层层拆解 以太网帧、IP数据包、TCP段,并深入讲解 端口号 和 序列号 如何像‘部门分机号’和‘精确页码’一样,共同编织起可靠传输的天罗地网。

2025-10-24 14:14:43 660

原创 【初学者必看(1):用一套完整的邮政系统比喻,吃透网络通信底层原理 (DNS、NAT、路由、TCP/UDP)】

本文通过 ‘邮政系统’ 的完整比喻,深入浅出地讲解了 TCP/IP、HTTP、DNS、NAT、路由 等核心概念,带你彻底理解从浏览器输入网址到页面展示的 网络通信 全过程。

2025-10-23 20:15:29 960

原创 【Windows下QT平台周立功ZLG USBCAN-II编写上位机打开设备失败!】

摘要: 本文针对QT平台使用周立功USB-CAN设备时"打开设备失败"问题,总结6大排查要点: 权限问题:需以管理员身份运行Qt及程序; 驱动安装:确认官方驱动正常识别设备; DLL依赖:将ControlCAN.dll等库置于exe同级目录; 硬件验证:通过官方例程测试硬件连通性; 参数匹配:核对设备类型、通道号等关键参数; 环境配置:优先本地部署DLL,慎改系统变量。 文中包含设备管理器识别图示、官网驱动链接及典型错误场景分析,强调从权限、驱动到代码的递进式排查逻辑。(149字)

2025-09-20 16:45:16 1046

【初学者必看3:网络通信实战】《从零开始设计Qt网络通信上位机:IPv4/IPv6、UDP、TCP全协议详解与界面实践》

【初学者必看3:网络通信实战】《从零开始设计Qt网络通信上位机:IPv4/IPv6、UDP、TCP全协议详解与界面实践》

2026-03-27

空空如也

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

TA关注的人

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