自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C++,Java,Python,C#编程选手,偶尔刷刷leetcode

C++,Java,Python,C#编程选手,偶尔刷刷leetcode

  • 博客(175)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于 C 语言视角:流程图中分支与循环结构的深度解析

本文系统阐述了C语言中控制结构与流程图的对应关系,通过"语法规则-流程图绘制-代码映射-实战案例"四层解析,详细讲解了分支结构(if/if-else/if-elseif)和循环结构(while/for/do-while)的实现逻辑。文章首先介绍了流程图的基本元素及其C语言映射,包括起止框、处理框、判断框等核心组件;然后深入分析了各类运算符在流程控制中的应用;重点剖析了分支与循环结构的语法特性、流程图绘制方法及典型应用场景;最后通过计算器案例展示了分支与循环的综合应用。全文强调流程图作为可

2025-07-31 19:09:35 1764

原创 C程序详解:十六进制日志转换工具

该程序用于处理带时间戳的十六进制日志文件(如串口/调试日志)自动跳过时间戳部分(如仅提取其后的合法十六进制字节(如并将其转换为C 语言风格的十六进制格式(如输出到一个.dat文本文件中。✅不生成二进制文件,输出仍是人类可读的文本✅严格丢弃时间戳,避免误解析(如15被当作0x15。

2025-11-18 17:08:56 198

原创 《嵌入式硬件从入门到精通:电源 / 模电 / 数电 / 通信核心全解析》

嵌入式硬件工程师知识体系精华摘要 电源设计核心要点 LDO与DCDC对比:LDO纹波小但效率低(η≈Vout/Vin),适合小电流场景;DCDC效率高(85%-95%)但纹波大,适合大电流应用。关键选型因素包括压差、电流和纹波要求。 BUCK电路设计: 拓扑:Vin→开关管→电感→输出电容→负载 电感计算:L=(Vout×(Vin-Vout))/(ΔIL×Fs×Vin),ΔIL取20-40%Io 电容选型:Cout≥ΔIL/(8×Fs×ΔVout),需低ESR电容 电源稳定性: 环路补偿:通过RC网络调整相

2025-11-17 22:01:13 1259

原创 嵌入式硬件工程师必备:200问从入门到精通(AI助教回答)适用入门嵌入式软件初级工程师,筑牢基础,技术积累

你是一位具有20年工作经验的嵌入式硬件工程师和嵌入式软件工程师,同时也是计算机科学家,从初学者的角度详细一点,牢记我的要求,一次性全部回答完电阻选型时一般从哪几个方面进行考虑?电容选型一般从哪些方面进行考虑?电感选型需关注的核心参数有哪些?磁珠与电感的区别及适用场景分别是什么?功率电阻与普通电阻的选型差异体现在哪里?钽电容、陶瓷电容、电解电容的特性对比及选型原则?电容的 ESR、ESL 参数对电路性能的影响是什么?高频电路中电阻选型需额外注意哪些问题?滤波电容的容量选择与电路频率的关系是什么

2025-11-16 11:27:37 340

原创 《嵌入式入门必刷 100 题!元器件选型、电路原理、总线通信全解析》(AI助教回答)适用入门嵌入式软件初级工程师,筑牢基础,技术积累

核心从 5 个关键维度选型,初学者可直接对应电路需求匹配:围绕 “电路用途 + 关键参数” 匹配,初学者重点关注 4 点:三个参数直接决定二极管能否正常工作,初学者记 “不超上限、匹配需求”:三个参数决定三极管的放大能力和工作极限,初学者按 “用途匹配”:MOS 管选型核心是 “电压、电流、驱动条件匹配”,初学者按以下步骤:晶振决定嵌入式系统的时钟精度,初学者重点关注 “精度匹配场景”:继电器选型核心是 “控制端 + 负载端匹配”,初学者按 “负载类型对应”:保险丝是电路过载保护核心,初学者记 “不超额定、

2025-11-15 20:37:37 752

原创 嵌入式系统200问,从电阻到RTOS全解析(AI助教回答)适用入门嵌入式软件初级工程师,筑牢基础,技术积累

你是一位具有20年工作经验的嵌入式硬件工程师和嵌入式软件工程师,同时也是计算机科学家,从初学者的角度详细一点,牢记我的要求,一次性全部回答完,一次性全部回答完一次性全部回答完一次性全部回答完:电阻选型时一般从哪几个方面进行考虑?电容选型一般从哪些方面进行考虑?放大电路频率补偿的概念,目的和方法分别是什么?简单说说你对 UART 总线的了解I2C 总线的工作原理利用 I2C 总线通信时,怎么区分起始信号和停止信号?谈谈你对 SPI 总线的了解SPI 总线的四种工作模式常见的滤波电路有哪几种怎

2025-11-15 19:59:41 485

原创 《嵌入式开发硬核指南:91问一次讲透底层到架构》

嵌入式开发91问精要解析 volatile关键字 作用:防止编译器优化对变量的访问,确保每次读写都直接操作内存 必须使用场景: 硬件寄存器访问(如volatile uint32_t* reg) 多线程/中断共享变量(如volatile bool flag) 内存映射I/O static关键字 局部变量:保持值不变(存储在.data段) 全局变量:限制文件作用域(内部链接) 函数:限制文件作用域 栈溢出 症状:数据异常、函数返回错乱、HardFault 估算方法: 调用深度 × (寄存器压栈+局部变量) +

2025-11-14 21:55:22 1056

原创 嵌入式新手必看:4 大维度解锁基础知识点(含通信 / 编程 / 硬件)100 个嵌入式核心问题,从入门到进阶一次吃透

入门级:51 单片机(STC89C52、AT89C51),资料丰富、性价比高,适合新手入门。中低端通用:AVR 系列(ATmega328P、ATtiny13),功耗低、指令简洁,Arduino 常用核心。中高端通用:STM32 系列(STM32F103、STM32L476),基于 ARM Cortex-M 内核,外设丰富、功能强大。工业级:PIC 系列(PIC16F877A、PIC32MX),抗干扰能力强,适用于工业自动化。

2025-11-14 21:28:43 688

原创 嵌入式系统百问精解:从底层原理到工程实践的95个核心问题,适用入门嵌入式软件初级工程师,筑牢基础,技术积累

链接器根据脚本生成ELF文件的段头表,烧录工具根据LMA(加载地址)烧到Flash,启动后由启动文件将.data段从Flash(LMA)复制到RAM(VMA)。:C语言是"可移植的汇编",既能控制硬件细节,又保留一定抽象,是RTOS、驱动、协议栈的唯一选择。:ARM Cortex-M特有的硬件机制,将内存中的单个bit映射到独立地址,原子操作bit。(switch - case,函数指针表等),各有何优劣?:任务栈空间被耗尽,数据写到栈底之外的内存,破坏相邻内存区域(通常是堆或其他任务的栈)。

2025-11-13 20:49:49 858

原创 嵌入式开发核心题全解析

定义:可重入函数是指在同一时间点,被多个执行流(如主程序、中断、多任务)调用时,仍能保证执行结果正确、无数据竞争的函数。核心要求是 “不依赖全局变量、静态变量,或对共享资源有安全的同步机制”。编写原则禁止使用全局变量、静态变量(或仅作为只读使用)。函数参数通过栈传递,不依赖外部状态。若必须访问共享资源(如全局缓冲区),需通过互斥锁、开关中断等机制实现同步。不调用不可重入函数(如标准库的strtok(),依赖静态变量)。示例(可重入函数)c运行// 可重入:仅依赖参数和局部变量。

2025-11-13 20:14:53 838

原创 嵌入式软件开发必知:100个核心面试题精解,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。

核心结论:平衡二叉树(AVL 树)是二叉搜索树的变种,核心定义是 “树上所有节点的左右两个子树的高度差(平衡因子)的绝对值不超过 1”,且左右子树也都是平衡二叉树。关键概念:平衡因子:节点的左子树高度 - 右子树高度(平衡二叉树中,平衡因子只能是 - 1、0、1)。高度:节点到最底层叶子节点的最长路径长度(叶子节点高度为 1)。通俗例子(合法平衡二叉树):plaintext3(平衡因子0:左子树高2,右子树高2)/ \2 4(平衡因子0:左子树高1,右子树高1)/ \

2025-11-12 23:29:34 613

原创 STM32开发百问:从入门到精通的硬件软件实战指南

STM32嵌入式技术要点摘要 基础架构 STM32是ST基于ARM Cortex-M架构的32位MCU系列,包含M0/M3/M4/M7等内核版本 CMSIS是ARM制定的软件接口标准,实现底层硬件抽象,增强代码可移植性 关键外设功能 时钟系统:支持HSI/HSE/LSI/LSE/PLL多种时钟源,通过时钟树为各模块提供精准时序 GPIO:8种工作模式,推挽输出驱动能力强,开漏输出支持线与逻辑 通信接口: UART:异步串行通信,支持DMA传输 SPI:全/半双工,4种工作时序模式 I2C:硬件需注意死锁问题

2025-11-09 19:19:57 750

原创 STM32百问百答:从硬件到软件全面解析

摘要: 本文全面解析STM32嵌入式开发的100个核心问题,涵盖硬件架构、外设配置、通信协议、RTOS应用等关键技术点。文章采用问答形式,从基础概念到高级应用层层深入,包括:STM32的ARM Cortex-M内核特性、时钟树设计、GPIO模式、中断系统、常用通信协议(UART/SPI/I2C)、定时器应用、ADC/DAC配置、低功耗模式、调试技巧等。特别提供了20年工程经验总结的注意事项和实战技巧,如位带操作的原子性优势、硬件I2C常见问题解决方案、MPU内存保护配置等。所有代码示例均提供HAL和LL双版

2025-11-09 18:56:05 1050

原创 Zynq-7000嵌入式开发100问全解析解答共十万字回答,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。

以下是针对Zynq开发面试问题的150字摘要: Zynq-7000是Xilinx推出的SoC芯片,集成双核ARM Cortex-A9 PS与Artix/Kintex级FPGA PL。PS与PL通过AXI总线(AXI_GP/HP/ACP)实现高速通信,最大带宽1.2GB/s。启动流程包含BootROM初始化、FSBL加载PL配置、U-Boot引导操作系统三阶段。开发时需注意:PS端通过MIO/EMIO扩展外设,PL端用Vivado创建Block Design并集成自定义IP;Linux系统需PetaLinux

2025-11-09 12:16:58 354

原创 100道关于STM32的问题解答共十万字回答,适用入门嵌入式软件初级工程师,筑牢基础,技术积累,校招面试。

作为在精确制导领域耕耘二十年的系统工程师,STM32系列MCU是我设计导引头信号处理单元的核心平台。这100个问题恰好构成了一部嵌入式系统的"九阴真经",我将结合导引头研制的工程实践,逐一拆解其精要。STM32是意法半导体(STMicroelectronics)推出的32位微控制器家族,其灵魂在于ARM Cortex-M内核。这并非简单的CPU,而是一个完整的"片上导弹制导站"——集成了处理器、存储、外设、总线矩阵的复杂系统。架构解析:内核层:从Cortex-M0到M7,本质是ARMv6-M到ARMv7E-

2025-11-09 11:17:14 596

原创 12个月嵌入式进阶计划ZYNQ 系列芯片嵌入式与硬件系统知识学习全计划(基于国内视频资源)

ZYNQ系列芯片嵌入式与硬件系统学习计划摘要 本计划针对Xilinx ZYNQ系列SoC芯片,提供从入门到精通的系统性学习路径。课程采用阶梯式设计,分为四个阶段:单片机基础(1-2月)、ZYNQ架构与裸机开发(3-5月)、嵌入式Linux开发与PL高级编程(6-9月)、综合项目实战(10-12月)。通过国内主流视频平台资源(B站、正点原子等),结合配套开发板(51/STM32/ZYNQ开发板)和工具链(Vivado/Vitis/Petalinux),系统掌握以下核心能力: 基础能力:51/STM32单片机开

2025-11-05 22:45:53 796

原创 快速精通Zynq芯片与嵌入式系统实战

你是一个20年工作经验的导引头科学家和嵌入式软件科学家,请你给我列出根据国内视频网站学习资料,如何学习zynq系列芯片嵌入式,同时学习相关硬件系统知识。通过以上分阶段学习,结合视频教程、官方文档和实践项目,可以系统掌握Zynq嵌入式开发技能。建议每周投入10-15小时,逐步从单片机过渡到Zynq的复杂系统设计,最终实现从理论到实际应用的跨越。Zynq PS(ARM Cortex-A9)与 PL(FPGA)的协同工作原理。Zynq的启动流程(FSBL、U-Boot、Linux)。

2025-11-05 22:21:13 711

原创 STM32 RS422异步UART通信测试全方案C++软件开发,嵌入式软件开发,Linux

本文介绍了STM32异步RS422通信模块的完整测试方案,重点针对数据包和数据帧的测试方法。主要内容包括: 理论基础:详细解释了UART协议的数据帧结构、RS422与RS485的区别,以及异步通信的实现方式。 测试用例设计: 基础功能测试:回环测试、波特率测试 异步中断测试:接收/发送中断、缓冲区溢出测试 协议完整性测试:校验位、长数据包、帧同步测试 鲁棒性测试:线路干扰、参数不匹配测试 数据包测试手法: 定义了数据包协议结构 设计了四种测试方法:正常包测试、边界值测试、异常包测试、压力测试 提供了完整的状

2025-10-23 21:32:39 1021

原创 以项目的方式学 QT 开发,C++软件开发,嵌入式软件开发,Linux

本文介绍了Qt框架在不同平台下的安装配置、开发环境搭建以及核心功能实现。主要内容包括: Windows平台Qt5.12.9的安装与基本使用 C++基础语法回顾与Qt编程核心概念 记事本、串口调试助手等实用项目的开发流程 自定义控件绘制与UI美化技巧 天气预报项目的网络通信与JSON解析 Ubuntu环境下Qt开发环境的搭建 文档涵盖了从基础语法到项目实战的完整学习路径,重点讲解了信号槽机制、文件操作、网络编程等Qt核心技术,并通过多个实际项目演示了Qt在不同领域的应用。最后还提供了在Ubuntu系统下配置Q

2025-10-19 17:53:16 466

原创 ZYNQ7045芯片中UART实现RS422通信详解,50000字解析,C语言,嵌入式开发,软件开发

本文详细介绍了在Xilinx ZYNQ7045 SoC芯片上通过UART外设实现RS422通信的技术方案。文章首先阐述了RS422协议的特性及其与UART的关系,指出ZYNQ7045默认UART工作在RS232模式,需通过MAX485等收发器转换为差分信号。接着详细解析了ZYNQ7045的UART外设架构、寄存器配置和驱动开发流程,提供了完整的初始化、收发函数实现及中断处理代码。针对RS422应用,文章重点讲解了硬件接口设计、DE/RE控制逻辑和通信协议实现,并给出了工业控制和航空电子领域的应用案例。最后总

2025-10-01 18:26:46 853

原创 单片机开发中的队列数据结构详解,队列数据结构在单片机软件开发中的应用详解,C语言

《队列数据结构在单片机开发中的应用指南》 摘要: 本文详细讲解了队列数据结构在嵌入式系统开发中的核心应用。队列作为先进先出(FIFO)的数据结构,在单片机开发中主要应用于串口通信缓冲(50%)、多任务通信(25%)和事件处理系统(15%)等场景。文章采用数组实现(80%)和链表实现(20%)两种方式对比分析,其中数组实现的循环队列因内存占用固定(平均节省30%内存)和O(1)时间复杂度,成为嵌入式系统首选方案(90%案例)。通过实际代码示例(含200+行注释代码)展示了结构体与队列的结合应用,如传感器数据处

2025-09-26 19:11:26 882

原创 电子工程基础原理与应用指南(初学者版)电子工程入门:三极管与MOS管全解析

本文系统介绍了电子工程中的核心器件与通信协议。主要内容包括:1.三极管与MOS管的工作原理、特性参数及应用场景;2.电感原理与ADC/DAC转换技术;3.OSI七层网络模型与TCP/IP协议栈;4.交换机、MAC/PHY等网络设备原理;5.CAN总线和USB协议实现方法。文中提供了STM32平台下的C语言代码框架示例,涵盖CAN通信、USB设备描述符配置、ADC/DAC转换等关键技术实现。建议结合开发板实践,通过示波器和逻辑分析仪验证信号,参考厂商技术文档进行深入学习。

2025-09-25 22:27:34 843

原创 电子工程基础原理与应用指南(初学者版)电子工程入门:三极管到MOS管全解析

VCCO :IO 电源。因此 mbps 和 MB/s 换算比例为 8 比 1,也就是说 8mbps 等 - 于 1MB/s, 1Mbps =0.125MB/s。2)K7-XILINX 习惯于(BANK32、33、34)DDR_A0-14、BA [0-2] 、CS、RAS、CAS、WE、ODT、量,1Mbps 等于每秒传输 1,000,000 比特(1,000,000 bps)。等于每秒传输 1,000,000 字节(1,000,000 Bps),或者 8,000,000 比特(8,000,000 bps)

2025-09-25 22:23:31 700

原创 Zynq平台GPIO中断编程实战

这篇文章介绍了在Xilinx Zynq平台上实现GPIO MIO测试和按键中断控制的完整代码方案。主要内容包括: GPIO基础测试程序:展示了如何初始化GPIO、配置引脚方向、控制LED闪烁等基本操作。 按键控制LED程序:通过轮询方式检测按键状态并控制LED亮灭,修正了原代码中的拼写错误和逻辑问题。 按键中断实验程序:详细实现了一个完整的中断驱动方案,包括: 中断控制器初始化 GPIO中断配置 中断服务程序编写 主循环处理中断事件 底层库函数解析:深入讲解了Xilinx提供的GPIO和中断控制器库函数的实

2025-09-20 21:48:13 943

原创 通信协议与接口全解析,包含C语言代码详细解释,UART,I2C,CAN,SPI,RS422,RS232,RS485

本文系统介绍了常见通信协议与接口的基础知识、技术特性和STM32实现代码。主要内容包括: 基础概念:涵盖串行/并行通信、单工/双工模式、同步/异步传输等核心原理,以及比特率、波特率等关键参数。 协议详解:深入解析UART、I2C、SPI、RS232/422/485、CAN、USB等12种通信协议,包括: 工作特性(全/半双工、主从架构) 电气标准(电平规范、传输距离) 时序图解析(起始/停止信号、数据帧结构) 硬件接口:详细说明HDMI、VGA、JTAG等9种物理接口的引脚定义和电路设计要点。 实践代码:提

2025-09-19 21:22:35 1478

原创 通信协议与接口,串行通信全解析:UART到PCIE

本文系统总结了常见通信协议的基础知识、核心参数及STM32实现代码。主要内容包括:1)串行通信基础概念(单工/双工、同步/异步等);2)UART、I2C、SPI等协议特性对比及典型应用场景;3)RS232/485/422、CAN、USB等接口的关键技术指标;4)STM32 HAL库实现各协议的C语言代码示例。特别强调了实际应用中的要点:I2C上拉电阻选择、SPI模式配置、CAN终端电阻计算等工程细节,并提供了比特率换算、阻抗匹配等实用计算公式。文章最后补充了硬件设计注意事项和电平转换芯片选型建议,为嵌入式通

2025-09-19 21:06:40 838

原创 C语言预处理指令:代码编译的前置操作,嵌入式软件开发,电子工程师,底层驱动,学习笔记

本文档系统讲解了C语言在电子工程开发中的核心应用,重点涵盖:预处理指令(#include/#define/条件编译)实现硬件适配和调试控制;结构体(struct)用于封装硬件寄存器配置和传感器数据;联合体(union)和位域操作解析硬件寄存器数据;Makefile管理多文件嵌入式项目。通过17.struct.c、23.hex.c等案例,展示了如何用结构体映射硬件寄存器、用联合体解析通信协议数据帧。特别强调内存对齐规则对硬件访问的影响,以及宏定义在参数封装时的注意事项。这些知识构成电子工程师从代码到硬件的关键

2025-09-16 21:33:18 980

原创 入门电子工程师的 C 语言注释指南:从语法到工程实战(附海量代码示例)

摘要:C语言注释对电子工程师至关重要,它能清晰记录硬件与代码的关联,避免后期调试困难。本文系统介绍了三种基础注释方式:单行注释(//)适用于寄存器操作、引脚定义等细节;多行注释(//)用于函数逻辑、模块说明等系统性描述;条件编译注释则用于硬件适配和调试开关。文章通过丰富的单片机开发实例,详细讲解了如何规范注释宏定义、变量、寄存器操作、时序延迟等关键代码,并总结了电子工程师必备的“注释黄金法则”,强调注释必须围绕硬件展开,做到准确、完整且同步更新,以提升代码可读性和团队协作效率。**(149字)

2025-09-15 22:59:07 869

原创 面向过程与面向对象的 C 语言编程:从概念到代码的全面解析(初学者指南)

本文从初学者角度详细解析了面向过程(POP)与面向对象(OOP)编程在C语言中的实现差异。面向过程以函数为核心,数据与操作分离;而面向对象通过结构体和函数指针模拟封装、继承和多态,实现数据与方法的绑定。文章通过学生管理系统和动物继承体系等代码示例,展示了如何用C语言实现OOP三大特性,并对比两种范式的适用场景:POP适合简单流程,OOP适合复杂交互系统。最后为初学者提供了学习路径建议:先掌握POP基础,再逐步过渡到OOP思想,理解"问题与工具匹配"的编程本质。

2025-09-12 19:23:42 1041

原创 面向过程与面向对象的C语言编程:从概念到代码的全面解析(初学者指南)

当你写一个“校园管理系统”时,OOP是更好的选择——有“学生”“老师”“课程”等多个实体,用封装隐藏敏感数据(如学生成绩),用继承复用“人员”的共同属性(姓名/年龄),用多态实现“不同角色的登录行为”(学生登录查成绩,老师登录改成绩)。OOP:“厨师(对象)自带面条(属性),直接用自己的煮面技能(方法)”- 实操:做“简易图书管理系统”,先写POP版本(按“输入→查询→借阅→归还”分函数),再写OOP版本(封装“图书”“读者”对象,用继承实现“管理员”角色),对比两种版本的代码量、扩展性、维护难度。

2025-09-12 18:01:07 631

原创 面向过程与面向对象的C语言编程:从概念到代码的全面解析(初学者指南) 

printf("名字:%s,年龄:%d\n", Animal_GetName(dog_as_animal), Animal_GetAge(dog_as_animal));OOP的核心思想是“以对象为中心”:先抽象出问题中的“实体”(如学生、动物、汽车)作为“对象”,再给对象赋予“属性”(数据)和“行为”(方法),最终通过对象之间的交互完成任务。printf("名字:%s,年龄:%d\n\n", Animal_GetName(animal), Animal_GetAge(animal));

2025-09-12 17:50:26 1041

原创 请创建一个视觉精美、交互流畅的进阶版贪吃蛇游戏

摘要 本文实现了一个视觉精美的进阶版贪吃蛇游戏,具有以下核心功能: 核心玩法: 通过键盘方向键控制蛇移动 随机生成不与蛇身重叠的食物 吃食物后蛇身增长且得分增加 特殊机制: 动态加速:每吃1个食物速度轻微提升(最低50ms) 彩虹色循环:蛇身颜色随得分渐变变化(红→橙→黄→绿→蓝→靛→紫→红) 视觉设计: 蛇身:渐变色圆角矩形带呼吸动画和方向性眼睛 食物:旋转星形带闪烁和发光效果 背景:深色渐变配动态网格线 分数显示:带缩放动画的半透明面板 交互体验: 响应式布局适配不同屏幕 支持键盘和触摸控制 吃到食物时

2025-09-11 23:24:19 963

原创 嵌入式软件开发编程工作本质是什么?

硬件的本质是“寄存器”:STM32的所有硬件功能(如GPIO、UART、定时器)都由内部“寄存器”控制——寄存器是MCU内部的特殊内存单元,写入不同数值,就能配置硬件的工作模式(如把GPIO设为输出、配置UART波特率)。协议(如UART、I2C、SPI、CAN等)本质是不同硬件(如STM32与传感器、STM32与电脑、两个STM32之间)之间“交换数据的统一规则”——就像人与人对话需要共同的语言,硬件通信需要共同的“协议”。

2025-09-11 11:28:26 422

原创 ZYNQ PS 端 UART 接收数据数据帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发

本文介绍了在ZYNQ嵌入式平台上实现UART串口不定长数据接收的方法。针对传统固定长度接收灵活性差的问题,通过同时使用RxFIFO阈值中断(32字节触发)和接收超时中断(16个波特率周期)两种机制,配合64字节FIFO缓存,实现任意长度数据的稳定接收。文章详细解析了硬件结构、中断原理、代码实现及调试要点,特别修正了原博客中的设备ID错误,并补充了流程图和结构示意图。该方案有效解决了实际项目中数据长度不固定的接收需求,避免了数据丢失或无效接收问题,为ZYNQ串口应用开发提供了实用参考。

2025-09-09 21:46:59 1938 1

原创 嵌入式代码入门:从硬件到软件的4层结构解析

本文系统介绍了嵌入式代码的核心结构与学习方法。首先指出嵌入式代码的特殊性:强耦合硬件、资源受限和执行确定性。随后以STM32为例,详细拆解裸机代码的四层结构:启动文件(硬件初始化)、main函数(总调度中心)、外设初始化函数(硬件配置)和中断服务函数(事件响应)。文中通过UART通信实例,展示了FIFO缓存机制如何实现中断与主循环的协同工作。建议初学者从最小系统例程入手,采用逆向拆解法阅读代码,并结合硬件手册理解代码与硬件的对应关系。最后强调嵌入式代码的核心规律是"硬件驱动软件,软件分层协作&qu

2025-09-09 21:44:16 464

原创 电子工程师入门:USART 串口协议全解析(从原理到实战)

本文为STM32串口通信入门指南,从硬件搭建到代码实现详细讲解USART协议。首先对比常见通信接口特点,指出USART凭借简单、低成本优势成为入门首选。重点解析串口数据帧结构(起始位+数据位+停止位)和关键参数(波特率、数据模式),并给出STM32F103C8T6的USART1引脚定义图。 实战部分包含两个案例:1)STM32发送数据到电脑,详解初始化流程、发送函数编写及printf重定向;2)实现中断接收电脑指令控制LED,包含NVIC配置和状态机处理。进阶内容讲解HEX/文本两种数据包格式及其应用场景,

2025-09-09 21:23:51 560

原创 #电子工程师入门:USART 串口协议全解析(从原理到实战)

本文介绍了USART串口通信的基础知识,重点针对STM32F103C8T6开发板进行讲解。内容包括:1)通信接口对比,突出USART简单、低成本的优势;2)硬件接线要点,强调TX/RX交叉连接和电平匹配;3)数据帧结构解析,包括起始位、数据位、停止位等关键概念;4)STM32的USART外设框图和工作原理。文章通过流程图、接线图和对比表格等直观方式,帮助初学者快速掌握串口通信的核心技术,为后续实战开发奠定基础。

2025-09-09 21:13:54 770

原创 STM32 串口接收数据包(自定义帧头帧尾)

/ 接收相关变量(usart.c中定义,需通过usart.h extern导出供其他文件使用)// 接收缓冲区,存储4字节定长数据段// 接收完成标志:0=未完成,1=完成(用于主函数判断是否处理数据)// 接收索引:记录当前接收数据在rxd_buf中的位置// 发送相关变量(示例用,可根据需求修改)// 默认发送数据包(仅示例)

2025-09-09 21:12:10 1026

原创 IAR 集成开发环境入门指南:字体设置与调试实战

【IAR开发环境使用指南摘要】 本文详细介绍了IAR嵌入式开发环境的核心功能与操作流程。主要内容包括:1)IDE基础设置(字体、颜色、编码格式等优化配置);2)工程管理(新建/添加源文件与头文件,模块化开发示例);3)编译调试流程(编译选项设置、错误排查、可执行文件生成);4)软件仿真调试技巧(单步执行、断点设置、变量监控窗口使用);5)终端打印功能调取与调试日志查看。特别针对STM32开发提供了寄存器查看、内存监控等硬件调试方案,并对比了Simulator与ST-Link等调试器的差异。全文涵盖从代码编辑

2025-09-09 20:27:34 982

原创 zynq 开发系列 新手入门:GPIO 连接 MIO 控制 LED 闪烁(SDK 端代码编写详解)

本文以Zynq芯片为例,详细讲解如何通过GPIO控制LED闪烁的嵌入式开发入门教程。文章首先介绍GPIO和MIO的基本概念,解释控制LED闪烁的核心原理是通过操作3个关键寄存器实现电平切换。随后提供完整的代码实现步骤,包括硬件配置检查、GPIO初始化、引脚方向设置和电平控制循环。针对初学者常见问题,文章特别分析了XGpioPs_LookupConfig、XGpioPs_SetDirectionPin和XGpioPs_WritePin三个核心API函数的传参设计逻辑,强调分层、精准、通用的设计理念。最后附上可

2025-09-03 22:18:16 805

空空如也

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

TA关注的人

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