<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tym23081329的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tym23081329</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tym23081329]]></copyright><item><title><![CDATA[AFE：模拟前端，模拟世界通往 MCU 的信号桥梁]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/169926007</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/169926007</guid><author>tym23081329</author><pubDate>Fri, 06 Nov 2026 08:53:10 +0800</pubDate><description><![CDATA[集成 AFE内部集成分压、信号调理电路与 ADC，在芯片内部完成模拟信号到数字信号的转换，之后通过 I2C 或者 SPI 总线把采样数据发送给 MCU；分立方案仅搭建外部模拟调理电路，模数转换依靠 MCU 自带 ADC 实现。在 BMS 系统中，AFE 主要负责电芯电压、NTC 温度采集，是电池状态监测与保护的核心器件。]]></description><category></category></item><item><title><![CDATA[STM32F4（Cortex-M4）NVIC 中断优先级与中断嵌套 ]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167493589</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167493589</guid><author>tym23081329</author><pubDate>Fri, 06 Nov 2026 08:51:17 +0800</pubDate><description><![CDATA[NVIC 中断优先级分为抢占优先级 PreemptPriority子优先级 SubPriority（响应优先级）数字越小，优先级越高，理论取值范围 0~15。统一规则：抢占、子优先级数字越小，优先级越高；功能区分：抢占优先级控制中断嵌套、同时触发时的一级排序；子优先级仅用于「抢占相同」场景的二级排序，无打断能力；兜底逻辑：抢占、子优先级全部相同时，按中断通道号 IRQn 从小到大执行；HAL_Init默认 GROUP4 分组，子优先级完全失效，需要排队逻辑必须切换至 GROUP0/1/2/3；]]></description><category></category></item><item><title><![CDATA[CPU、内存、虚拟内存、硬盘的关系]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/170127106</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/170127106</guid><author>tym23081329</author><pubDate>Thu, 05 Nov 2026 10:14:35 +0800</pubDate><description><![CDATA[器件定位关键特点CPU 能否直接访问CPU运算加工厂负责数据计算、指令执行物理内存工作台 / 中转站速度快、断电丢数据、程序运行区可以硬盘长期仓库容量大、断电保存、速度慢不可以虚拟内存仓库临时暂存区占用硬盘空间，是内存后备不可以。]]></description><category></category></item><item><title><![CDATA[嵌入式核心处理器类型简述]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/170126577</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/170126577</guid><author>tym23081329</author><pubDate>Thu, 05 Nov 2026 10:08:18 +0800</pubDate><description><![CDATA[嵌入式系统的核心计算单元，依据设计定位、硬件资源以及适用场景，主要分为三类，各自拥有明确的设计目标与应用方向。。ALU 只是芯片内部负责加减乘除的一小块运算电路；下面三类是，芯片内部包含内核（CPU 核）、总线、存储器、外设等模块。]]></description><category></category></item><item><title><![CDATA[电容与电感]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/169833127</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/169833127</guid><author>tym23081329</author><pubDate>Tue, 03 Nov 2026 08:50:41 +0800</pubDate><description><![CDATA[二者搭配组成 LC 滤波、LC 谐振电路。电容：电压不能突变；电感：电流不能突变。]]></description><category></category></item><item><title><![CDATA[STM32F4xx 中断管理机制（IRQ、NVIC、MSI）]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167478749</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167478749</guid><author>tym23081329</author><pubDate>Tue, 03 Nov 2026 08:50:07 +0800</pubDate><description><![CDATA[片内外设：TIM 定时器、USART 串口、SPI、ADC、DMA 等；外部引脚：GPIO 引脚电平变化，对应 EXTI 外部中断。每一个支持中断的硬件单元，都引出一根专属IRQ Line（中断请求信号线），这条线路硬件直连内核 NVIC 的输入通道。中断两道闸门：外设本地中断开关（控制 IRQ 输出）+ NVIC 通道开关（控制 IRQ 上报 CPU）；IRQ（Interrupt Request，中断请求）：外设向 NVIC 传输中断事件的信号载体；]]></description><category></category></item><item><title><![CDATA[枚举为什么可以直接使用]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167395130</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167395130</guid><author>tym23081329</author><pubDate>Mon, 02 Nov 2026 08:55:22 +0800</pubDate><description><![CDATA[结构体是：对象拥有成员，必须通过对象访问。枚举是：定义一堆独立常量，不需要对象，可以直接使用。]]></description><category></category></item><item><title><![CDATA[ Keil 文件管理避坑（基于 STM32F4 HAL 通用模板讲解）]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167389642</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167389642</guid><author>tym23081329</author><pubDate>Mon, 02 Nov 2026 08:53:45 +0800</pubDate><description><![CDATA[内部自动包含 GPIO、USART、ADC、TIM、中断、内核等全部驱动声明，无需逐个引用分模块头文件。魔术棒（Options for Target）→ C/C++ → Include Paths，填入。打开 USER/project_demo/keil_project/xxx.uvprojx。路径对应模板磁盘层级，编译器可跨层级检索所有.h 头文件，全局只需引入。直接在 Keil 分组新建文件，文件默认保存到。规则：只添加.c 源文件参与编译，.h 头文件不加入工程列表。根目录，磁盘结构直接混乱。]]></description><category></category></item><item><title><![CDATA[STM32（F429）启动模式与两种烧录方式]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167360017</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167360017</guid><author>tym23081329</author><pubDate>Thu, 29 Oct 2026 10:24:24 +0800</pubDate><description><![CDATA[芯片每次上电、硬件复位瞬间，会采样 BOOT0、BOOT1 硬件引脚电平，决定本次开机从哪个内存区域执行代码。为什么有三种启动模式？分别干什么用？J-Link/ST-Link 仿真器下载和串口 FlyMcu 下载到底有什么本质区别？Keil 搭配 J-Link，下载完成后即使仿真器不拔，部分场景下也需要手动按 Reset 才能运行程序？FlyMcu 烧完能直接跑，但重启又失效？]]></description><category></category></item><item><title><![CDATA[嵌入式避坑：少用枚举顺序匹配 LED 硬件电平]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167282528</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167282528</guid><author>tym23081329</author><pubDate>Thu, 29 Oct 2026 08:41:54 +0800</pubDate><description><![CDATA[写 LED 驱动时很多人发现一个省事小技巧：C 语言枚举默认从 0 依次赋值，LED 低电平点亮就把LED_ON放第一个（值 0）；高电平点亮就调换顺序，让LED_ON等于 1。看似少写转换代码、调试方便，但这套写法只适合临时测试，量产项目、多人协作绝对不能用。下面用通俗直白的逻辑讲清问题和标准写法。靠枚举先后顺序对应 LED 高低电平属于耦合写法，治标不治本；软硬件分层才是嵌入式通用规范，状态归软件、电平归硬件；硬件改版只需修改适配宏，上层逻辑零改动，易维护、不易出隐性 bug；]]></description><category></category></item><item><title><![CDATA[C 语言！！双感叹号的作用 —— 寄存器按位读取按键场景]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167282270</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167282270</guid><author>tym23081329</author><pubDate>Thu, 29 Oct 2026 08:38:27 +0800</pubDate><description><![CDATA[按位运算输出原始整数，不是只有 0/1；!!双逻辑非：将任意表达式转换成纯 0 或 1，用于等值判断场景；只用在需要返回数值给外部做 == 相等判断的场合；if/while 条件判断里不需要。!!]]></description><category></category></item><item><title><![CDATA[AF 寄存器位区间 bit [4n+3 : 4n] (GPIO 复用功能寄存器)]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167265357</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167265357</guid><author>tym23081329</author><pubDate>Tue, 27 Oct 2026 09:02:37 +0800</pubDate><description><![CDATA[bit [4n+3 : 4n] 由三条规则推导而来：单引脚占用 4bit、引脚 bit 段顺序排布、寄存器位域书写高位在前，是编写 AF 寄存器位掩码操作代码的核心计算依据。]]></description><category></category></item><item><title><![CDATA[STM32CubeMX 生成keil工程 编译报错 解决方法]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/169155738</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/169155738</guid><author>tym23081329</author><pubDate>Tue, 27 Oct 2026 09:01:54 +0800</pubDate><description><![CDATA[报错核心原因：链接脚本.sct指定了FIRST优先排布的段（一般是中断向量表段），链接器在所有目标文件中找不到对应的段，绝大多数场景是导致。]]></description><category></category></item><item><title><![CDATA[STM32 GPIO ODR 与 BSRR 寄存器完整对比详解]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167261589</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167261589</guid><author>tym23081329</author><pubDate>Mon, 26 Oct 2026 10:35:20 +0800</pubDate><description><![CDATA[功能：保存当前引脚输出电平，可读可写读：获取端口所有引脚当前输出状态；写：整体覆盖端口电平，修改单引脚必须采用「读 - 改 - 写」流程。→ 引脚 n 输出高；→ 引脚 n 输出低。单引脚操作示例：// 引脚5置高// 引脚3置低操作拆解：读 ODR → 逻辑运算修改指定位 → 写回 ODR，三步总线操作。ODR 不可替代：唯一能读取 GPIO 当前输出电平的寄存器，状态查询场景必须使用；]]></description><category></category></item><item><title><![CDATA[I2C 与 SPI 完整对比：为何大量场景放弃 I2C 选择 SPI]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167213287</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167213287</guid><author>tym23081329</author><pubDate>Mon, 26 Oct 2026 10:34:35 +0800</pubDate><description><![CDATA[只要存在大数据量、高速传输、工业干扰、高实时控制需求，即便 SPI 占用更多 IO，也必须选用 SPI；I2C 的速度、容错、抗干扰能力无法满足工况；仅当传输数据极少、速率要求低、MCU 引脚紧张、环境干净时，才选择 I2C 换取硬件简洁性；I2C 的唯一核心竞争力是少引脚低成本，其余性能、稳定性、速率维度 SPI 全面占优，这也是多数高速外设只提供 SPI 接口的根本原因。]]></description><category></category></item><item><title><![CDATA[从 RAM 内存视角彻底讲清栈 (Stack)、堆 (Heap)]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167210949</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167210949</guid><author>tym23081329</author><pubDate>Sun, 25 Oct 2026 13:22:29 +0800</pubDate><description><![CDATA[所有不带 malloc 的局部变量，全部占用栈 RAM，系统自动清理；malloc/new申请的数据本体，全部存堆 RAM，必须手动释放；存放堆地址的指针变量，依然存在栈 RAM 里。]]></description><category></category></item><item><title><![CDATA[串口（UART/USART）帧时序]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167032150</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167032150</guid><author>tym23081329</author><pubDate>Sun, 25 Oct 2026 13:21:31 +0800</pubDate><description><![CDATA[波特率：单位时间传输的比特数，代表串口通信速率，收发双方波特率必须一致。起始位：1bit，低电平，标记一帧数据开始；总线空闲时默认高电平。数据位：有效传输数据，常见 8bit；低位先行（LSB first），先发 D0，最后发 D7。1 = 高电平，0 = 低电平。校验位：可选（奇校验 / 偶校验），根据数据位计算得到，用于简单检错。停止位：1bit，高电平，标记一帧结束，帧之间的间隔。]]></description><category></category></item><item><title><![CDATA[串行（Serial）完整解释]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/167032793</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/167032793</guid><author>tym23081329</author><pubDate>Wed, 21 Oct 2026 09:29:49 +0800</pubDate><description><![CDATA[串行：数据一位一位，按顺序排队，共用 1 根信号线依次传输对比并行：多根线同时一次性传多位数据。所有比特排队，走同一根信号线依次发送，就是串行。]]></description><category></category></item><item><title><![CDATA[第二篇：位域解包：寄存器标志位拆分方法]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/168558971</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/168558971</guid><author>tym23081329</author><pubDate>Wed, 21 Oct 2026 09:27:22 +0800</pubDate><description><![CDATA[打包负责发送前拼装字节；解包是它的逆操作。我们读传感器、ADC、电源芯片的寄存器时，一个字节里面往往挤着就绪标志、故障码、量程参数，这时候就需要位域解包，把混杂在一起的字段拆分出来。本文配套上篇打包的逻辑，讲解这套固定解法，给出掩码计算技巧、多字段拆分示例，读懂 datasheet 的寄存器位图全靠它。]]></description><category></category></item><item><title><![CDATA[第一篇：位域打包：看懂 I2C 地址左移的底层逻辑]]></title><link>https://blog.youkuaiyun.com/tym23081329/article/details/168558931</link><guid>https://blog.youkuaiyun.com/tym23081329/article/details/168558931</guid><author>tym23081329</author><pubDate>Tue, 20 Oct 2026 19:37:24 +0800</pubDate><description><![CDATA[7bit地址 << 1。很多人只记住这是 I2C 的固定写法，却不知道这是一套通用的位域打包思想，I2C 寻址字节只是其中一个特例。位域打包，就是把多个短小的二进制字段，拼装到同一个字节里，用来组成总线命令、寻址帧。本文从 I2C 寻址字节切入，讲清楚的通用范式，顺带对比 SPI 那种读写位在最高位的布局，避开移位方向的坑。]]></description><category></category></item></channel></rss>