<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dodger_code的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Dodger_code</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Dodger_code]]></copyright><item><title><![CDATA[LDO与DCDC芯片选型指南]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/170286994</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/170286994</guid><author>Dodger_code</author><pubDate>Sun, 08 Nov 2026 11:30:06 +0800</pubDate><description><![CDATA[本文系统对比LDO与DC-DC芯片的工作原理、效率、噪声及外围需求，结合AMS1117和TPS5450等典型电路，揭示选型关键：小电流低噪声场景优选LDO（如AMS1117），大压差大电流则必须采用高效DC-DC（如TPS5450）。重点警示高压差下使用LDO导致的严重发热风险，并提供常用芯片参数表与场景化选型速查表，助力嵌入式设计规避电源陷阱。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（十四）：整机联调与验收 —— 把七个模块装成一台机器]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169354610</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169354610</guid><author>Dodger_code</author><pubDate>Thu, 29 Oct 2026 10:13:45 +0800</pubDate><description><![CDATA[本文总结整机联调核心经验：以串口日志为唯一真相源，按“供电→时钟→通信→控制”分层排查。强调“只改一个变量”、严格遵循上电顺序与按键语义，重点解析了蓝牙/MQTT切换时的阻塞机制与日志误判陷阱。提供可直接执行的验收脚本与工具清单，确保30秒内定位问题层级，实现从模块通过到整机可用的跨越。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（十三）：H5 网页控制端 —— 用 mqtt.js 把浏览器接到板子上]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169354296</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169354296</guid><author>Dodger_code</author><pubDate>Thu, 29 Oct 2026 10:12:58 +0800</pubDate><description><![CDATA[本文详解如何通过浏览器网页实现对智能硬件的实时监控与远程控制。基于MQTT协议，构建了从浏览器→公网Broker→ESP32→STM32的五跳通信链路，重点解决前端常见“看似正确却无效”的环境问题：如WebSocket端口误用（1883 vs 8084）、主题名称不一致、缓存干扰及连接状态异常等。强调代码逻辑之外的环境配置关键性，提出“先定位断点，再排查”的排错原则，并梳理了H5与固件间必须严格对齐的四项参数，确保温湿度实时显示与设备一键开关功能稳定可用。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（十二）：USART2 分时复用 —— ESP-12F + MQTT]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169353760</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169353760</guid><author>Dodger_code</author><pubDate>Wed, 28 Oct 2026 12:56:38 +0800</pubDate><description><![CDATA[本文详解ESP-12F模块在STM32平台实现MQTT通信的完整链路，聚焦“分时复用”串口引脚的硬件与软件协同设计。通过拨码开关切换蓝牙（9600）与WiFi（115200）通道，强调切换顺序、供电稳定性及启动时序的重要性。重点揭示了ESP8266上电后自动连接Broker导致AT+MQTTUSERCFG失败的隐藏陷阱，并详细拆解初始化流程中各标志位的作用与执行顺序，确保每一步“回OK”真实有效，最终实现稳定远程控制。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（十一）：蓝牙远程控制（HC-06）]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169146627</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169146627</guid><author>Dodger_code</author><pubDate>Wed, 28 Oct 2026 12:50:21 +0800</pubDate><description><![CDATA[本文详解蓝牙远程控制风扇的实现过程，重点剖析从手机到STM32的通信链路。核心问题在于各层潜在故障：波特率错（默认9600）、拨码开关位置错误、命令缓冲区被逐字节清空导致指令拼接失败等。通过裸测HC-06模块、正确接线（PA2/PA3）、确认拨码开关在蓝牙侧、遵循“按键顺序：KEY2→KEY4”进入远程模式，并在主循环中安全切换波特率与接收状态，最终实现手机一键控扇。强调“先看灯、再看代码”，每一步都需验证，避免盲目调试。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（十）：串口与 printf 重定向]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169069694</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169069694</guid><author>Dodger_code</author><pubDate>Wed, 28 Oct 2026 12:48:54 +0800</pubDate><description><![CDATA[本文系统梳理STM32串口调试核心要点：明确三路USART分工（USART1专用于调试日志，严禁混用），强调共地、交叉接线与3.3V电平的重要性；详解波特率计算与误差分析，指出9600为容错首选；通过自检技巧快速定位乱码问题；最后提供fputc重定向实现及关键配置项（如勾选Use MicroLIB），确保调试信息稳定输出。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（九）：按键消抖与三模式状态机]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169069302</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169069302</guid><author>Dodger_code</author><pubDate>Tue, 27 Oct 2026 17:35:44 +0800</pubDate><description><![CDATA[本文详解STM32按键输入设计，重点解决“人机交互”核心问题。采用下降沿触发、内部上拉电阻，确保按键按下为低电平。通过EXTI中断实现四键输入，强调仅用下降沿触发以避免双中断干扰。关键在于中断处理规范：禁止使用HAL_Delay等阻塞操作，仅置标志位；消抖采用每键独立时间戳的40ms窗口机制，避免共用时间戳导致连按失效。同时揭示了中断链路中标志位清除、回调函数唯一性及日志打印限制等易错点，确保系统响应可靠、实时。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（八）：PWM 控制风扇、加热片与 SG90 窗帘]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169068814</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169068814</guid><author>Dodger_code</author><pubDate>Tue, 27 Oct 2026 17:34:50 +0800</pubDate><description><![CDATA[本文详解STM32 PWM控制原理与实战，重点区分功率型（如风扇）与角度型（如舵机）设备的控制差异：前者看占空比，后者看脉宽（微秒）。通过TIM3/TIM5定时器配置，实现1kHz风扇控制与50Hz舵机控制，关键在于正确设置时钟分频、周期（ARR）、脉宽（CCR）及启用HAL_TIM_PWM_Start。文中强调参数计算细节（如1MHz计数频率使CCR直接对应微秒），并警示常见错误：未调用启动函数、误将舵机脉宽当占空比处理、超范围设置CCR导致无效输出。最后提醒配置中“Pulse=0”确保上电安全，以及引脚]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（七）：ENS160 空气质量（I2C）]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169067090</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169067090</guid><author>Dodger_code</author><pubDate>Tue, 27 Oct 2026 17:33:54 +0800</pubDate><description><![CDATA[本文详解I2C通信原理与常见陷阱，重点剖析ENS160传感器因地址配置错误导致HAL_I2C_Mem_Read返回HAL_ERROR的根源。强调I2C“两根线、开漏结构、上拉电阻”的核心机制，阐明起始/终止信号、数据采样时序、应答机制及7位地址的正确处理方式。指出地址未左移或读写位设置错误是导致通信失败的主因，结合实例说明寄存器读写帧格式，帮助开发者避开I2C“隐形坑”。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（六）：DHT11 温湿度采集]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169066701</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169066701</guid><author>Dodger_code</author><pubDate>Mon, 26 Oct 2026 08:47:25 +0800</pubDate><description><![CDATA[DHT11为单总线数字温湿度传感器，需严格遵循微秒级时序：主机拉低≥18ms后释放，从机应答80μs低/高电平，数据位以50μs低电平+26~28μs（0）或70μs（1）区分。读取时需关中断避免干扰，采样点设在低电平结束后40μs。校验和为前四字节之和，失败多因时序不准、中断干扰或未正确初始化delay_us。关键点：18ms起始、80μs应答、40μs采样、1s间隔，缺一不可。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（五）：工程结构与代码骨架]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169066302</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169066302</guid><author>Dodger_code</author><pubDate>Mon, 26 Oct 2026 08:46:34 +0800</pubDate><description><![CDATA[本文聚焦于STM32项目代码结构设计，提出“分层管理、职责分离”的核心原则：将代码分为App（自写驱动）、Core（CubeMX生成）和Drivers（HAL库）三层，确保工程可维护性。强调volatile变量、HAL_GetTick()周期控制、中断仅置标志、状态机模式管理等关键实践，并规范main.c骨架结构与主循环纪律，避免阻塞操作，实现代码清晰、易调试、可扩展的开发体系。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（四）：用 CubeMX 把工程骨架搭起来]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169066037</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169066037</guid><author>Dodger_code</author><pubDate>Mon, 26 Oct 2026 08:44:27 +0800</pubDate><description><![CDATA[本章强调时钟、引脚、定时器等配置必须严格照抄，否则编译无错但运行异常，排查困难。以STM32F411RET为例，核心板25MHz晶振需正确设置输入频率，通过PLL倍频至100MHz主频，关键参数如M=25、N=400、P=4不可随意更改。APB1总线分频后定时器时钟需×2，达100MHz。Flash等待周期设为3WS，避免偶发死机。GPIO配置中User Label用于生成宏定义，命名需规范且唯一。所有设置均在CubeMX中完成，生成代码结构清晰，工程路径与文件层级需确认无误，确保后续开发顺利。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（三）：硬件接线与拨码开关]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169065935</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169065935</guid><author>Dodger_code</author><pubDate>Sun, 25 Oct 2026 17:44:20 +0800</pubDate><description><![CDATA[本文详解硬件接线关键规范：坚持断电操作、先接电源地再接信号、每接模块即查通断；明确三类电源域（5V/3.3V/独立5V舵机），强调共地重要性及加电容防干扰；提供精准引脚表与各模块接线指南，重点提醒ENS160勿接5V、舵机用独立电源、蓝牙/ESP-12F交叉接线与波特率设置，确保上电前检查无误，为后续MQTT通信打下可靠基础。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（二）：把开发环境一次配好]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169065722</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169065722</guid><author>Dodger_code</author><pubDate>Sun, 25 Oct 2026 17:41:57 +0800</pubDate><description><![CDATA[本文为STM32项目开发系列第二篇，聚焦工具链配置与开发纪律。强调环境干净的重要性，详细指导安装Keil MDK、STM32CubeMX、ST-Link驱动及USB转TTL串口驱动，并验证串口通信与本地H5服务。核心纪律：所有自定义代码仅写入USER CODE BEGIN/END区域，新增文件统一放入App目录并手动添加至Keil工程组，确保代码不被覆盖，提升开发效率与可维护性。]]></description><category></category></item><item><title><![CDATA[STM32 从 0 到 1 做智能家居（一）：先想清楚要做什么]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/169065587</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/169065587</guid><author>Dodger_code</author><pubDate>Sun, 25 Oct 2026 17:37:15 +0800</pubDate><description><![CDATA[本文为STM32智能家居项目第一篇，强调“先想清楚再动手”。通过明确五大功能模块（数据采集、自动/手动控制、蓝牙与网页远程），绘制系统框图与三条数据链路（调试、蓝牙、网络），梳理硬件连接与软件工具链，并给出分步验证的推进顺序。重点提醒：串口日志是唯一可信真相，共地、独立供电、波特率切换等易错点必须规避。最终目标是构建可逐层验证的稳定开发流程，避免“玄学排查”。下一篇将从STM32CubeMX建工程开始，实现串口打印。]]></description><category></category></item><item><title><![CDATA[18.从 IP 到 MQTT：STM32 用 AT 指令驱动 ESP-12F 上云的完整链路（含全套实战代码 + 踩坑清单）]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/167920226</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/167920226</guid><author>Dodger_code</author><pubDate>Wed, 14 Oct 2026 20:40:48 +0800</pubDate><description><![CDATA[本文基于STM32F411与ESP-12F实现MQTT上云，系统复盘网络基础、MQTT模型与AT指令交互三层次逻辑。完整提供mqtt.h/c及main.c代码，涵盖WiFi连接、MQTT配置、发布订阅全流程，并附光照ADC数据上传的闭环改造。重点剖析IP地址、NAT机制、回显关闭、时序超时等10个易错点，强调“分层定位、时序为王、先通后优”的实战原则，助力开发者快速跑通物联网上云链路。]]></description><category></category></item><item><title><![CDATA[17.STM32 ADC：从模数转换原理到光敏电阻电压采集实战]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/167919742</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/167919742</guid><author>Dodger_code</author><pubDate>Wed, 14 Oct 2026 19:42:28 +0800</pubDate><description><![CDATA[本文系统梳理了ADC原理与工程实践：从采样-保持-量化-编码的转换流程，到采样率、分辨率、ENOB等关键指标的理解，对比SAR、Σ-Δ等架构适用场景。结合STM32F411RET6开发板，通过光敏电阻电压采集项目，实操验证了HAL库ADC接口使用，并强调参考电压稳定性、信号链设计对实际精度的决定性影响。核心结论：ADC性能由整条信号链决定，而非仅看芯片标称位数。理论与实践贯通，方能真正掌握模数转换。]]></description><category></category></item><item><title><![CDATA[16. 深入浅出 SPI 通信协议：从移位寄存器到 W25Q256 Flash 读写实战]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/167700849</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/167700849</guid><author>Dodger_code</author><pubDate>Mon, 12 Oct 2026 19:22:25 +0800</pubDate><description><![CDATA[define SPI_FLASH_PageSize 256 // 一页 256 字节#define W25Q256_WriteEnable 0x06 // 写使能#define W25Q256_WriteDisable 0x04 // 写屏蔽#define W25Q256_ReadStatusReg1 0x05 // 读状态寄存器1#define W25Q256_ReadData 0x13 // 4字节地址模式 读数据。]]></description><category></category></item><item><title><![CDATA[3、Linux 系统管理与 Shell 编程实战指南：从软件安装、进程管理到变量作用域与 Bash 脚本自动化]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/167583890</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/167583890</guid><author>Dodger_code</author><pubDate>Sun, 11 Oct 2026 15:43:08 +0800</pubDate><description><![CDATA[本文系统介绍了Ubuntu下软件安装与管理的多种方式，包括图形化软件中心、APT包管理器（CLI）、DPKG本地安装、源码编译及未来主推的Snap容器化安装。同时深入讲解了Linux进程概念，涵盖进程标识、父子关系、僵尸/孤儿进程、变量传递、管道通信、后台进程与信号处理等核心机制，并结合实例说明进程组、会话管理及kill命令的使用。最后涉及环境变量、Bash脚本编程基础与实战案例，全面覆盖Linux系统管理与自动化运维关键技术。]]></description><category></category></item><item><title><![CDATA[2、Linux 命令大全：从文本处理到系统管理，16 章实战教程（tr/sort/sed/grep/find/tar/systemctl 等 100+ 常用命令详解）]]></title><link>https://blog.youkuaiyun.com/Dodger_code/article/details/167269093</link><guid>https://blog.youkuaiyun.com/Dodger_code/article/details/167269093</guid><author>Dodger_code</author><pubDate>Thu, 08 Oct 2026 16:07:17 +0800</pubDate><description><![CDATA[本文系统讲解Linux命令行核心技能，涵盖通配符、正则表达式、文本处理（tr、sort、sed、cut等）、文本匹配（grep、find、diff）、数值计算（expr、bc）、系统信息查看、文件权限与管理、网络操作、压缩打包、输入输出重定向与管道、用户及服务管理等十六大模块，帮助读者从基础到进阶全面掌握Linux系统运维与自动化脚本编写能力。]]></description><category></category></item></channel></rss>