- 博客(30)
- 收藏
- 关注
原创 为什么 STM32 是 32 位,但 ARR 等寄存器最大只能到 65535?
概念位宽说明CPU 数据宽度32 位一次处理 4 字节,寻址 4GB定时器 ARR/PSC16 位外设按需设计,满足绝大多数场景部分定时器(TIM2/TIM5)32 位特定型号提供,用于长定时需求核心结论:STM32 是 32 位,指的是 CPU 的处理能力;而 ARR 等外设寄存器是 16 位,是硬件工程师根据实际应用需求做的设计取舍。两者并不矛盾——"32 位"是系统的上限,不是每个部件的标配。理解这一点,对后续学习定时器、PWM、输入捕获等外设会很有帮助。
2026-09-06 20:04:31
427
原创 嵌入式通信的本质:从“翻 GPIO“到“写驱动“,UART/I2C/SPI 到底在干什么?
<think>我们只需要根据目录生成摘要,但用户要求"根据以下内容,生成≤150字的文章摘要"。给出的内容看起来是目录+部分正文开头。摘要应概括文章主题,不超过150字。注意关键词。</think>本文从“软件为何能模拟 I2C”切入,阐明通信本质是“电平+时间”的协议约定;对比 UART、I2C、SPI 三大协议的同步/异步、电气特性与适用场景,解析硬件外设与软件模拟的取舍、驱动分层思想,并结合 STM32CubeMX 给出工程配置与高频排坑指南。
2026-09-06 19:52:49
617
原创 STM32定时器TIM_ClockDivision详解:时钟分频的作用与误区
(时钟分频)是定时器时基初始化结构体中的一个成员,用于配置定时器内部数字滤波器的采样时钟分频系数。:不分频,滤波器采样时钟 = CK_INT:2 分频,滤波器采样时钟 = CK_INT / 2:4 分频,滤波器采样时钟 = CK_INT / 4其中CK_INT是定时器的内部时钟,通常来源于 APB1 或 APB2 预分频后的时钟。要点说明作用对象输入捕获路径的数字滤波器采样时钟可选值是否影响溢出周期不影响,溢出周期只由 ARR、PSC 和 CK_INT 决定典型用途。
2026-09-04 19:56:39
325
原创 STM32常用库(标准库与 HAL 库)对比和常用函数全解
标准库是"外设指针 + 配置结构体"两个参数,HAL 是"一个句柄"搞定一切。前者更贴近寄存器、更透明;后者更面向对象、更易移植。
2026-08-31 08:37:09
590
原创 STM32F103 循迹小车全栈实战:从红外传感到 PID 闭环
循迹小车看似简单,难点在于机械对称性和电源完整性。电机、轮胎、底盘的微小差异都会导致跑偏,单纯靠算法难以完全弥补。调试时先确保硬件对称,再调软件参数。回顾开篇的两个问题:电机只响不转,多半是 PWM 频率太低,把 PSC 从 7199 改成 71 就能解决;小车走蛇形,则是因为纯逻辑控制缺少平滑过渡,引入 PID 差速后轨迹会明显收敛。希望这篇文章能帮你把小车从"能跑"调教到"跑得稳"。
2026-08-27 23:26:25
383
原创 STM32F103 驱动 HC-SR04 超声波测距:从原理到实战
HC-SR04 是一款低成本、易上手的超声波测距模块,提供 2cm–400cm 的非接触测距能力,精度约 ±3mm,工作电压 5V,发射 40kHz 超声波,通过 Echo 引脚高电平持续时间反推距离。⚠️ Echo 输出 5V 电平,F103 的 IO 口虽标称可容忍 5V,但长期直接接 5V 仍有风险,建议串接 1kΩ 电阻限流保护,或用 1kΩ+2kΩ 分压到 3.3V。模块发射超声波后,声波遇到障碍物反射回来,模块记录从发射到接收的时间差,再根据声速换算距离。其中 T 为环境温度(℃)。
2026-08-27 23:17:30
521
原创 基于 STM32 驱动有刷编码电机:从电源到代码的完整开发流程
本文是一篇面向实战的 STM32 电机控制入门教程,主线是把「电源 → L298N → STM32 → 编码电机」这条链路完整串起来:用 L298N 做功率放大与方向控制,用 STM32 定时器输出 PWM 调速,用编码器接口做硬件计数测速,最后在代码层把「开环 PWM」升级到「速度闭环 PID」。全文按工程落地顺序展开,从系统总览、双电源设计、H 桥控制逻辑,到 TIM 资源分配、编码器原理、CubeMX 配置,再到 HAL 库与标准库两套可运行代码,最后给出开环到闭环的四阶段开发流程和避坑清单。
2026-08-26 23:15:51
585
原创 编码器:从正交脉冲到 STM32 硬件解码
1×:仅 A 相上升沿计数 → CPR = PPR2×:A 相上升+下降沿 → CPR = 2×PPR4×(主流):A/B 两相的上升+下降沿都计数 → CPR = 4×PPR,角度分辨率提升 4 倍。例:1000 PPR 编码器,4× 解码后每圈 4000 计数,分辨率 0.09°。
2026-08-26 23:09:56
258
原创 计算机体系与存储器全解:从两种结构到取指执行
两种结构冯·诺依曼:指令数据统一存储、单一总线——通用灵活,但有瓶颈。哈佛:指令数据物理分离、独立总线——并行高效,但硬件复杂。现代处理器:冯·诺依曼理念 + 哈佛式缓存(L1-I/L1-D 分离)。存储金字塔寄存器 > Cache(SRAM) > 主存(DRAM) > Flash/EEPROM > 辅存(SSD/HDD)。越往上越快、越贵、越小。RAM 双雄SRAM:6T 触发器,无需刷新、极快、贵、低密度 → CPU Cache。
2026-08-24 18:36:55
445
原创 SPI 全解:四线、全双工、高速——嵌入式短距通信的主干道
define FLASH_CS_LOW() HAL_GPIO_WritePin(GPIOA , GPIO_PIN_4 , GPIO_PIN_RESET) # define FLASH_CS_HIGH() HAL_GPIO_WritePin(GPIOA , GPIO_PIN_4 , GPIO_PIN_SET) // SPI Flash 写使能 void SPI_FLASH_WriteEnable(void) {
2026-08-24 18:34:24
540
原创 单片机 I²C 全解:两根线上的多设备总线
本文全面解析了I²C总线技术,涵盖以下核心内容:I²C是一种两线制(SDA+SCL)同步串行总线,支持多主多从架构,具有半双工通信特性。文章详细介绍了物理层的开漏输出与上拉电阻设计要点,协议层的起始/停止条件、数据帧格式及应答机制,以及多主仲裁与时钟同步原理。同时对比了标准库与HAL库的配置方法,汇总了典型应用场景,并针对六大常见问题提供了解决方案。I²C凭借其简单布线、多设备支持等特点,广泛应用于传感器、存储器等低速外设通信中。
2026-08-23 23:08:01
471
原创 单片机串口(UART/USART)全解:两根线打通嵌入式世界
本质:异步全双工,两根线(TX/RX)+ 共地,靠波特率和帧格式同步。帧格式:起始位(1) + 数据位(8) + 校验位(可选) + 停止位(1),8N1 每字符 10 bit。波特率:误差必须 < 2%,STM32 通过 BRR 寄存器配置 USARTDIV(12 位整数 + 4 位小数)。四种模式:轮询(调试)、中断(命令)、DMA(大数据)、空闲中断+DMA(不定长帧)。标准库四步曲:开时钟 → GPIO 初始化 → USART_Init → USART_Cmd。HAL 库+CubeMX。
2026-08-23 22:37:59
453
原创 单片机烧录全解:从 SWD 到 IAP/OTA 的工程全景
本文系统梳理了STM32微控制器烧录技术的核心概念与实践指南,涵盖以下要点: 烧录本质是将二进制固件写入Flash存储器,主流路径包括ICP(调试器直写)、ISP(内置Bootloader)和IAP(自定义Bootloader)。 详细对比ST-LINK、DAP-Link、J-Link和USB-TTL四类烧录工具的特点与适用场景,提供接口定义和选型建议。 解析BOOT引脚配置对启动模式的影响,强调硬件设计要点和ISP模式启动方法。 深入讲解ICP、ISP、IAP三种烧录方式的实现原理,包括SWD/JTAG协
2026-08-22 21:51:43
617
原创 嵌入式常见烧录/调试报错全分类:从连接失败到 HardFault 的一次性排查手册
文章摘要: 本文系统梳理了STM32开发中常见的五大类调试与烧录错误,按层级划分为调试器层、物理连接层、芯片接口层、Flash烧录层和运行时层。针对每类错误(如无法识别ST-Link、SWD通信失败、Invalid ROM Table、Flash下载失败、HardFault等),提供了具体排查方法和解决方案,强调“先硬件后软件”的调试原则。特别指出国产兼容芯片的适配问题,并给出高频错误速查表和工程设计检查清单。通过分层定位和流程图辅助分析,帮助开发者快速解决嵌入式开发中的调试难题。(149字) 关键点: 错
2026-08-22 21:36:10
537
原创 单片机中断系统:从原理到工程应用
核心结论:中断是外设或外部事件打断 CPU 当前执行流、跳转到预定处理函数(ISR,Interrupt Service Routine)、处理完再返回的硬件机制。方式CPU 行为代价响应特点轮询主动反复查状态浪费算力滞后,取决于查询频率中断被动响应外设请求几乎零空转实时,事件到达即响应轮询是 CPU 一直在问"到了吗?到了吗?中断是外设"有事喊一声”,CPU 听到再处理。实时控制:限定时间内响应事件(温度越限、按键按下、电机过流)。故障处理。
2026-08-21 21:49:07
496
原创 单片机 ADC/DAC:模拟与数字世界的桥梁
ADC 三步:采样、量化、编码;DAC 是逆过程。SAR 是 MCU 主流 ADC 架构:二分搜索、转换时间固定、低功耗。参考电压是精度天花板。用 VDD 凑合,12 位 ADC 只能当 8 位用。PCB 布局决定大部分精度。单点接地、电源隔离、去耦紧贴、模拟走线远离数字噪声。噪声路径错了,软件救不回。DAC 输出必须重建滤波。零阶保持 + 抗镜像低通,否则阶梯纹波明显。PWM 能模拟 DAC,但分辨率低、有纹波。LED 调光可以,精密波形不行。
2026-08-21 21:48:28
463
原创 单片机定时器完全指南:从时基原理到电机 PWM 实战,一篇吃透 STM32 定时器
定时器(Timer)是微控制器(MCU)内部集成的一种硬件外设,其核心功能是对时钟脉冲或外部事件脉冲进行计数,并在达到预设阈值时触发中断或输出控制信号。在嵌入式系统中,定时器承担着时间基准生成、波形输出、信号测量、事件计数等关键任务,是系统实现实时性、并行性和精确时序控制的基础硬件资源。从体系结构上看,定时器由时基单元(预分频器 PSC、计数器 CNT、自动重装载寄存器 ARR)、捕获/比较通道、触发控制器及中断/DMA 接口等模块构成。通过对固定频率或外部事件脉冲进行计数,实现时间测量与事件统计。
2026-08-20 20:43:02
528
原创 单片机 GPIO 深度解析:从“手指“到“桥梁“——硬件结构、8 种模式与工程实战
GPIO 的本质是 MCU 与外部世界沟通的"桥梁",每个引脚都是一个可编程的微型硬件矩阵。8 种模式:4 种输入(浮空/上拉/下拉/模拟)+ 4 种输出(推挽/开漏/复用推挽/复用开漏)。推挽 vs 开漏:推挽能主动输出高和低,开漏只能拉低、高电平靠外部上拉——开漏用于"线与"总线(I2C)。核心寄存器:MODER、OTYPER、OSPEEDR、PUPDR、IDR、ODR、BSRR、AFR——修改输出优先用 BSRR(原子操作)。配置流程。
2026-08-20 20:41:45
458
原创 单片机时钟树:从心脏到外设的每一次跳动
摘要:本文系统讲解了单片机时钟树的工作原理及STM32实战配置方法。重点解析了五大时钟源(HSI/HSE/LSI/LSE/PLL)特性对比、72MHz时钟路径设计、外设时钟门控机制,并提供了寄存器/HAL库两种代码实现方式。针对不同应用场景(高性能、USB、低功耗、RTC)给出时钟配置方案,涵盖动态切换、CSS安全系统、MCO输出验证等进阶技巧,最后总结了常见问题排查方法。通过时钟树流程图和配置清单,帮助开发者全面掌握单片机时钟系统设计。
2026-08-19 20:03:35
514
原创 PID 算法深度解析:从淋浴直觉到 STM32 工程实现——原理、代码与调参全指南
本文系统阐述了PID控制原理及其在嵌入式系统中的应用。文章首先通过淋浴水温调节的日常案例,直观解释了PID控制中比例、积分、微分三项的物理意义(P管现在,I管历史,D管未来)。随后深入剖析PID的数学内核,包括连续时间域和离散化的公式表达,并对比分析了位置式和增量式两种数字实现方式的本质区别与适用场景。 在工程实践方面,文章详细讲解了C语言实现PID的具体方法,重点警示了常见编程错误,并针对积分饱和这一典型问题提出了四种抗饱和策略。参数整定部分系统介绍了试凑法、临界比例度法、衰减曲线法等实用方法。最后通过S
2026-08-19 19:20:01
623
原创 嵌入式芯片与数据手册科普:从 MPU 到 SoC 的进化、设计与芯片手册全解析
这篇文章系统梳理了嵌入式芯片(MPU/MCU/SoC)的技术差异、产业链分工和技术文档体系。主要内容包括: 芯片类型区分:对比了MCU(微控制器)、MPU(微处理器)和SoC(片上系统)在架构、主频、内存、操作系统、功耗和应用场景等方面的差异,提供了选型决策流程图。 芯片生产流程:详细介绍了从设计(规格定义、RTL设计、验证)、制造(光刻、刻蚀等工艺)到封测(切割、键合、测试)的全产业链环节,以及IDM和垂直分工两种产业模式。 产业图谱:列举了全球主要芯片设计公司(ST、NXP等)、代工厂(台积电、中芯国际
2026-08-18 17:04:30
412
原创 CNN 如何识别图片:以 CIFAR-10 为例
本文介绍了卷积神经网络(CNN)在CIFAR-10图像分类任务中的应用。主要内容包括:1)CNN的基本结构和工作原理,包括卷积层、激活函数、池化层和全连接层的作用;2)CIFAR-10数据集的预处理方法;3)CNN完整流程的详细说明;4)影响模型性能的关键设计选择,如通道数、池化策略、优化器等;5)最终模型在测试集上达到88.91%的准确率。文章通过PyTorch代码示例和流程图,清晰地展示了CNN从图像输入到分类输出的完整处理过程,以及各模块之间的配合关系。
2026-08-18 17:03:47
482
原创 现代 AI 格局全景:主流大模型盘点、技术原理剖析与 Agent 时代的使用指南(2026 版)
2026 年 8 月,DeepSeek 发布自有 Harness,标志其从「模型提供商」走向「全链路方案构建者」。MoE(混合专家)是 V4 系列的核心架构:总参数虽大,但每次推理只激活其中一小部分「专家」,兼顾容量与效率。区别不在模型能否作答,而在系统能否行动:它会规划目标、拆解步骤、检索信息、调用 API,以最少人工干预跑完多步工作流。本文按主流模型、技术原理、Agent 机制、产业趋势与专有名词词典五部分展开:先盘点玩家,再拆解原理,然后说明 Agent 如何落地,最后给出趋势判断与开发者建议。
2026-08-17 10:51:00
584
原创 单片机入门:基本结构、最小系统、芯片手册与未来方向全解析
本文系统介绍了单片机的基本结构、工作原理及未来发展趋势。主要内容包括:1)单片机的基本组成(CPU、存储器、I/O接口、定时器、中断系统等核心模块);2)单片机最小系统电路设计(电源、复位、时钟、下载电路);3)芯片手册的查阅方法;4)各类单片机的对比(8/16/32位、ARM/RISC-V架构);5)未来发展方向(AI边缘计算、RISC-V架构崛起、物联网融合等)。文章通过架构图对比了冯·诺依曼与哈佛结构,详细解析了GPIO电路设计,为嵌入式开发提供了实用参考。
2026-08-17 10:48:49
641
原创 Linux 操作系统:核心知识与实战示例
Linux 是一种开源操作系统,广泛应用于服务器、云计算和嵌入式领域。本文提供了从基础到进阶的完整学习路径: 基础概念:Linux 采用双层架构(内核空间与用户空间),核心特性包括进程管理、虚拟内存和文件系统等。 命令行操作:涵盖文件管理、文本处理、权限设置和软件安装等实用命令。 系统编程:通过 C 语言调用系统接口,实现进程创建、线程管理和进程间通信。 系统管理:涉及服务部署、网络配置和性能监控等运维技能。 嵌入式开发:包括交叉编译和定制化系统构建。 学习建议:初学者可从命令行入手,逐步深入系统编程,最后
2026-08-16 16:11:31
488
原创 FreeRTOS 实时操作系统:从内核原理到工程实战的深度剖析
FreeRTOS是一款专为微控制器设计的嵌入式实时操作系统,具有极小内存占用、执行速度快、可移植性强等特点。其核心文件包括任务管理、队列、链表、定时器等模块,通过硬件移植层实现跨平台支持。FreeRTOS采用任务作为基本执行单元,每个任务是一个无限循环函数,通过阻塞等待事件的方式高效运行。相比裸机开发,FreeRTOS通过多任务机制解决了实时性差、状态机臃肿等问题,提供了更清晰的代码结构和更好的资源管理能力。典型应用场景包括LED控制、按键检测等嵌入式系统开发。
2026-08-16 15:40:48
432
原创 STM32 嵌入式开发中的延时机制:五种实现原理与选型
延时机制虽小,却是嵌入式开发中精度、资源与可靠性权衡的缩影。理解五种方案的原理与适用边界,能帮助你在不同场景下做出正确的选型:裸机精确延时用 SysTick 查询或 DWT,长延时用中断方案,RTOS 环境用任务延时或通用 TIM,低功耗场景则必须考虑 LPTIM。牢记「HAL_Delay 在 RTOS 中禁用」这一关键工程常识,可避免绝大多数延时相关的疑难问题。
2026-08-15 10:47:37
453
1
原创 操作系统全景解析:什么是 OS、它如何工作、为何不可或缺,以及嵌入式 OS 深度剖析
本文摘要:操作系统(OS)是管理计算机软硬件资源的基础系统软件,位于硬件与应用程序之间,提供资源管理、硬件抽象、多任务调度和安全保障。OS可分为桌面、服务器、移动、嵌入式、实时和云OS等类别。嵌入式操作系统专为资源受限设备设计,具有代码固化、结构紧凑、可裁剪等特点,按实时性和MMU支持分为不同类型,如FreeRTOS、VxWorks和嵌入式Linux等。
2026-08-15 09:45:59
503
原创 嵌入式开发常用关键字经典用法总结:static、volatile、extern 等
本文深入探讨了嵌入式C语言开发中关键字的正确使用方法。文章采用总分总结构,首先强调关键字在嵌入式开发中的基石作用,随后详细解析static、volatile、extern、const、typedef等关键字的经典用法与注意事项,包括作用域控制、防止编译器优化、跨文件访问、定义只读数据等场景,并辅以代码示例和流程图说明。最后给出编码规范建议,帮助开发者写出更可靠、易维护的嵌入式代码。文章特别指出,对关键字理解的深度直接反映嵌入式工程师的功底水平。
2026-08-14 15:05:51
299
原创 C 语言知识体系总结:从入门到进阶
本文系统梳理了C语言的核心知识点,分为基础语法、控制流、函数、数组、指针、结构体、输入输出和进阶内容八大模块。首先介绍了C语言的历史地位和标准库生态,随后详细讲解了变量常量、数据类型、运算符等基础语法,以及条件分支、循环等控制结构。文章重点剖析了函数定义、数组操作、指针原理和内存管理等核心概念,并覆盖了结构体、文件操作等实用内容。最后还包含预处理指令、链表、位操作等进阶知识,为读者构建了完整的C语言知识体系,特别适合嵌入式开发等底层编程学习者参考。
2026-08-14 14:46:18
489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅