<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[宋一平工作室]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/u010665511</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; u010665511]]></copyright><item><title><![CDATA[搞硬件的都看看！AI二三十分钟干完我一天的活，这行还能干吗？]]></title><link>https://blog.csdn.net/u010665511/article/details/161097599</link><guid>https://blog.csdn.net/u010665511/article/details/161097599</guid><author>u010665511</author><pubDate>Fri, 15 May 2026 09:55:33 +0800</pubDate><description><![CDATA[前几天我干了一件以前想都不敢想的事——用AI大模型帮我写上位机软件。熟悉我的朋友都知道，我是搞硬件的，STM32、物联网这些是我的老本行，纯软件说实话真不在行。以前要搞个上位机测试工具，要么自己硬啃C#/Python，要么花钱找人做，费时费力。结果呢？把需求往AI里一丢，二三十分钟，Demo出来了。能跑，能用，数据能显示。“等等……我的客户如果也会用AI，那他们是不是就自己干了？我这活不就没了？这个念头让我整整失眠了一晚。]]></description><category></category></item><item><title><![CDATA[搞硬件的都懂！那些年电路教会我的“人生开挂法则”]]></title><link>https://blog.csdn.net/u010665511/article/details/160164621</link><guid>https://blog.csdn.net/u010665511/article/details/160164621</guid><author>u010665511</author><pubDate>Wed, 15 Apr 2026 09:16:44 +0800</pubDate><description><![CDATA[有没有人跟我一样，小时候拆过遥控器、鼓捣过家里的旧收音机，总觉得“电”这东西特神奇，按个开关灯就亮，接根线设备就转，直到后来真的扎进硬件圈才发现：原来电路不是高冷的“技术怪咖”，而是藏在生活里的“幽默搭子”，甚至还能教你怎么把日子过得既稳当又有劲儿！今天就跟大家唠唠硬件圈里那些不为人知的小趣事、实用小知识，不管你是刚入门的小白，还是跟我一样靠硬件吃饭的同行，看完都能会心一笑～]]></description><category></category></item><item><title><![CDATA[别再死磕硬件设计了！90%做电路的人都忽略的关键细节，全在这]]></title><link>https://blog.csdn.net/u010665511/article/details/160164352</link><guid>https://blog.csdn.net/u010665511/article/details/160164352</guid><author>u010665511</author><pubDate>Wed, 15 Apr 2026 09:14:08 +0800</pubDate><description><![CDATA[摘要： 硬件设计师常遇PCB布局混乱、EMI干扰、元器件选型不当等问题。建议遵循“电源靠边走，信号中间走”等口诀优化布局；工业级芯片（如NSI1312S-DSPR）需注重散热与抗干扰，避免因省小钱导致返工。个体从业者可协作外包重复工作，兼顾健康与技术提升。细节打磨和经验总结是关键，合理借力能让设计更高效。]]></description><category></category></item><item><title><![CDATA[malloc(0)到底返回啥？给0字节还分配内存？这操作离大谱却有讲究]]></title><link>https://blog.csdn.net/u010665511/article/details/149526117</link><guid>https://blog.csdn.net/u010665511/article/details/149526117</guid><author>u010665511</author><pubDate>Tue, 07 Apr 2026 13:30:00 +0800</pubDate><description><![CDATA[摘要： malloc(0)的行为在C标准中未明确定义，由具体实现决定。glibc等实现会返回最小内存块（如24字节）以管理内存结构，但实际开发中应避免使用，因其移植性差、可读性低且无实用价值。验证显示malloc(0)可能分配额外空间，但依赖此行为会导致风险。结论：了解即可，实际编码应规范使用malloc(n)（n&gt;0）或NULL，确保代码健壮性。]]></description><category></category></item><item><title><![CDATA[用全局变量搞同步总翻车？FreeRTOS队列教你秒变“任务协调大师”！]]></title><link>https://blog.csdn.net/u010665511/article/details/153772474</link><guid>https://blog.csdn.net/u010665511/article/details/153772474</guid><author>u010665511</author><pubDate>Tue, 07 Apr 2026 09:16:33 +0800</pubDate><description><![CDATA[今天咱们把队列的“底细”摸透了：从解决全局变量的坑，到队列的基本概念、阻塞访问，再到创建、写、读队列，最后用队列实现同步与互斥——其实核心就是“按顺序传数据，让任务们有秩序地干活”。下次再遇到多任务同步、资源争抢的问题，别再死磕全局变量了，掏出队列这个“神器”，保准让你的代码从“乱糟糟”变“井井有条”。下一篇咱们再聊“队列集”——多个队列怎么协同工作，让任务通信更灵活。要是这篇里有哪个点没搞懂，回头多敲几遍代码，实践出真知，FreeRTOS没那么难！]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.csdn.net/u010665511/article/details/159380598</link><guid>https://blog.csdn.net/u010665511/article/details/159380598</guid><author>u010665511</author><pubDate>Thu, 26 Mar 2026 07:45:00 +0800</pubDate><description><![CDATA[这是「从零做一个物联网项目」系列的最后一篇。从第一篇的项目总览，到第九篇的传感器接口，我们完整走过了玻璃水加注机项目的每个技术模块。今天，我想跳出具体技术，聊聊整个项目从需求到交付的全流程——那些代码之外的经验，才是真正值钱的东西。问题：5路串口同时工作，如何避免数据混乱？方案：中断+缓冲区+任务分离// 每路串口独立缓冲区u16 rx_len;u16 tx_len;// ...// 中断接收，任务处理收获缓冲区大小要留余量（实际最大×1.5）接收超时判断很重要。]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.csdn.net/u010665511/article/details/159380568</link><guid>https://blog.csdn.net/u010665511/article/details/159380568</guid><author>u010665511</author><pubDate>Wed, 25 Mar 2026 06:45:00 +0800</pubDate><description><![CDATA[信号类型特点处理方法适用场景开关量通/断GPIO+消抖液位、限位模拟量连续变化ADC+滤波压力、温度频率量脉冲频率中断计数流量、转速数字量通信协议串口/I2C等DS18B20。]]></description><category></category></item><item><title><![CDATA[流量计脉冲计数与标定：精准测量的关键(6/10)]]></title><link>https://blog.csdn.net/u010665511/article/details/159079105</link><guid>https://blog.csdn.net/u010665511/article/details/159079105</guid><author>u010665511</author><pubDate>Fri, 20 Mar 2026 07:30:00 +0800</pubDate><description><![CDATA[标定= 确定脉冲数与实际流量的对应关系│ 标定原理 ││ ││ 已知实际流量 → 测量脉冲数 → 计算K系数 ││ ││ 实际流量：1L ││ 测量脉冲：605个 ││ K系数：605 pulse/L ││ │要点说明K系数单位体积对应的脉冲数标定确定K系数的过程外部中断脉冲计数的常用方法过冲补偿提前关闭阀门以补偿延迟精度提升温度/压力补偿、多点标定。]]></description><category></category></item><item><title><![CDATA[GPS定位数据解析：从NMEA到实际坐标(5/10)]]></title><link>https://blog.csdn.net/u010665511/article/details/159079067</link><guid>https://blog.csdn.net/u010665511/article/details/159079067</guid><author>u010665511</author><pubDate>Thu, 19 Mar 2026 06:45:00 +0800</pubDate><description><![CDATA[本文介绍了GPS定位数据解析的核心技术，重点讲解NMEA-0183协议中$GNRMC语句的解析方法。文章首先阐述GPS三球交汇定位原理，详细说明NMEA协议格式特点及常见语句类型。随后深入解析$GNRMC语句结构，包括时间、位置、速度等关键字段。文章提供完整的C语言实现方案，包含度分格式转换、UTC时间处理、逗号分隔提取等核心算法，并定义了数据结构存储解析结果。通过本文，读者可掌握从原始NMEA数据到实际坐标的完整转换流程。]]></description><category></category></item><item><title><![CDATA[STM32+GPRS物联网通信：Air208S模块实战（4/10）]]></title><link>https://blog.csdn.net/u010665511/article/details/159079029</link><guid>https://blog.csdn.net/u010665511/article/details/159079029</guid><author>u010665511</author><pubDate>Wed, 18 Mar 2026 06:00:00 +0800</pubDate><description><![CDATA[本文介绍了基于STM32和Air208S GPRS模块的物联网通信方案。重点分析了GPRS模块选型（相比WiFi/4G/NB-IoT的优势）、Air208S特点（内置协议栈简化开发）、硬件连接要点（电源设计、引脚配置）以及AT指令使用流程（从模块检测到TCP数据传输）。文章通过对比表格和流程图，展示了GPRS在低频小数据场景下的适用性，并详细说明了Air208S模块的快速开发优势，为物联网设备联网提供了经济高效的解决方案。]]></description><category></category></item><item><title><![CDATA[嵌入式状态机设计：让复杂业务逻辑变清晰（3/10）]]></title><link>https://blog.csdn.net/u010665511/article/details/159078848</link><guid>https://blog.csdn.net/u010665511/article/details/159078848</guid><author>u010665511</author><pubDate>Tue, 17 Mar 2026 06:45:00 +0800</pubDate><description><![CDATA[本文介绍了在嵌入式系统中使用状态机(FSM)来简化复杂业务逻辑的设计方法。主要内容包括： 问题背景：传统if-else嵌套代码存在可读性差、难以维护等问题 状态机基础：介绍了FSM的三要素(状态、事件、动作)和两种类型(Moore/Mealy) 具体实现：以玻璃水加注机为例，详细设计了状态转换表、事件定义和代码实现 代码示例：展示了状态枚举、事件管理和状态机核心处理逻辑的实现方法 通过状态机设计，可以将复杂的业务逻辑分解为清晰的状态转换流程，显著提高代码的可读性、可维护性和扩展性。]]></description><category></category></item><item><title><![CDATA[STM32多串口通信实战：5路串口并发管理(2/10)]]></title><link>https://blog.csdn.net/u010665511/article/details/159078798</link><guid>https://blog.csdn.net/u010665511/article/details/159078798</guid><author>u010665511</author><pubDate>Mon, 16 Mar 2026 06:30:00 +0800</pubDate><description><![CDATA[要点说明架构中断+缓冲区，每路串口独立管理帧检测超时判断（10ms无新数据=帧结束）多任务保护FreeRTOS信号量扩展性支持5路串口，可根据需要增减适用场景物联网网关多传感器采集人机交互设备工业控制系统。]]></description><category></category></item><item><title><![CDATA[从零做一个物联网项目：玻璃水加注机完整方案(1/10)]]></title><link>https://blog.csdn.net/u010665511/article/details/159078741</link><guid>https://blog.csdn.net/u010665511/article/details/159078741</guid><author>u010665511</author><pubDate>Sun, 15 Mar 2026 10:38:16 +0800</pubDate><description><![CDATA[本文介绍了一个基于STM32的智能玻璃水加注机物联网项目。该项目通过扫码支付、精准计量和云端管理，解决了传统玻璃水加注的不便问题。硬件采用STM32F103主控，集成GPRS、GPS、流量计等模块；软件基于FreeRTOS设计多任务系统，采用状态机管理加注流程。项目亮点包括多串口并发管理、精准计量算法和远程监控功能，适用于加油站、停车场等场景。文章还预告了后续技术专题，并提供完整源码资料获取方式。]]></description><category></category></item><item><title><![CDATA[飞书多维表格API实战指南：Python实现企业级数据管理系统]]></title><link>https://blog.csdn.net/u010665511/article/details/158733135</link><guid>https://blog.csdn.net/u010665511/article/details/158733135</guid><author>u010665511</author><pubDate>Fri, 06 Mar 2026 11:25:29 +0800</pubDate><description><![CDATA[通过本文的讲解，你已经掌握了飞书多维表格API的核心使用方法：✅ Token认证与缓存管理✅ 数据表的增删改查操作✅ 批量操作提升性能✅ 实战构建客户管理系统✅ 错误处理与限流策略这些知识足以支撑你构建大多数企业级数据管理应用。结合飞书机器人实现自动化通知对接BI工具进行数据可视化分析构建定时任务实现数据同步如果你在实践过程中遇到问题，欢迎在评论区留言讨论！也可以分享你的应用场景，我们一起探讨最佳实践方案。]]></description><category></category></item><item><title><![CDATA[从零打造你的第一个AI机器人：Clawdbot实战入门指南]]></title><link>https://blog.csdn.net/u010665511/article/details/158731053</link><guid>https://blog.csdn.net/u010665511/article/details/158731053</guid><author>u010665511</author><pubDate>Fri, 06 Mar 2026 11:04:13 +0800</pubDate><description><![CDATA[本文从零开始，带你搭建了一个功能完整的AI机器人。核心架构：理解Gateway、Session、Skills、Plugins、Channels五大概念快速启动：五分钟完成安装配置，让机器人跑起来技能开发：通过SKILL.md教会AI机器人新本领工具系统：让机器人能真正"做事"，实现自动化任务多代理路由：打造专业分工的机器人团队实战案例：整合所有知识，构建个人智能机器人安全实践：沙箱隔离、权限控制、敏感信息保护。]]></description><category></category></item><item><title><![CDATA[写了这么多年单片机代码，原来一直在瞎写！5个设计模式救我命]]></title><link>https://blog.csdn.net/u010665511/article/details/158348358</link><guid>https://blog.csdn.net/u010665511/article/details/158348358</guid><author>u010665511</author><pubDate>Tue, 24 Feb 2026 13:22:54 +0800</pubDate><description><![CDATA[本文介绍了5种嵌入式开发中实用的设计模式，帮助解决硬件变更、功能扩展等常见痛点。单例模式管理硬件资源，适配器模式应对芯片更换，工厂模式处理多设备管理，对象池模式优化内存使用，观察者模式实现模块解耦。每种模式都包含适用场景、优点和注意事项，并配有C语言代码示例。通过合理运用这些模式，可以提升代码的可维护性、扩展性和复用性，避免反模式带来的维护困难。]]></description><category></category></item><item><title><![CDATA[搞懂C语言结构体和联合体，嵌入式编程少走99%的弯路]]></title><link>https://blog.csdn.net/u010665511/article/details/157905716</link><guid>https://blog.csdn.net/u010665511/article/details/157905716</guid><author>u010665511</author><pubDate>Thu, 12 Feb 2026 07:15:00 +0800</pubDate><description><![CDATA[本文详细讲解了C语言中结构体（struct）和联合体（union）的核心区别与应用场景。结构体采用独立内存分配，适合需要同时使用多个相关数据的场景；联合体采用共享内存机制，适合需要节省内存且不同时使用多个数据的场景。文章通过具体代码示例展示了两种数据类型的语法、内存分配规则及典型应用，并总结了两者在内存分配、数据存储、初始化方式等方面的关键差异。掌握这些概念能帮助开发者在嵌入式等内存受限环境中更高效地使用C语言进行编程。]]></description><category></category></item><item><title><![CDATA[C11配C99库必出bug？这份兼容性指南让你避坑到底]]></title><link>https://blog.csdn.net/u010665511/article/details/157905700</link><guid>https://blog.csdn.net/u010665511/article/details/157905700</guid><author>u010665511</author><pubDate>Wed, 11 Feb 2026 07:00:00 +0800</pubDate><description><![CDATA[摘要：C11标准与C99库具有良好的兼容性，C11工程调用C99库通常不会出现问题。C语言标准迭代遵循向后兼容原则，C11完整继承了C99的库函数，主流编译器也支持二进制级兼容。实际开发中，可通过编译器参数指定标准版本，混搭使用时只需注意极少数特殊情况。但反向操作（C99调用C11库）则存在较多兼容性问题，建议避免。开发者可放心在C11项目中使用C99库，充分利用C语言的兼容性优势。（149字）]]></description><category></category></item><item><title><![CDATA[别让单片机开发板积灰！90%初学者的3个劝退坑，手把手教你绕开]]></title><link>https://blog.csdn.net/u010665511/article/details/157905685</link><guid>https://blog.csdn.net/u010665511/article/details/157905685</guid><author>u010665511</author><pubDate>Tue, 10 Feb 2026 06:45:00 +0800</pubDate><description><![CDATA[摘要： 90%的单片机初学者因三大常见问题放弃：环境配置复杂、报错信息难懂、脱离教程无从下手。破解方法包括使用集成开发环境（如STM32CubeIDE）或在线平台跳过配置；通过关键词搜索、AI工具或社区提问解决报错；从项目实战入手，拆解功能模块，通过&quot;模仿-修改-创造&quot;逐步提升。掌握这些技巧后，单片机入门并不困难，开发板也能真正发挥作用。]]></description><category></category></item><item><title><![CDATA[FreeRTOS vs RT-Thread！两款主流RTOS的硬核对决，藏着嵌入式设计的底层逻辑]]></title><link>https://blog.csdn.net/u010665511/article/details/157905665</link><guid>https://blog.csdn.net/u010665511/article/details/157905665</guid><author>u010665511</author><pubDate>Mon, 09 Feb 2026 15:06:41 +0800</pubDate><description><![CDATA[摘要： FreeRTOS与RT-Thread是两大主流开源RTOS，设计哲学迥异。FreeRTOS以极简微内核（核心代码&lt;10KB）和确定性内存管理见长，适合资源受限场景；RT-Thread采用分层架构+软件包生态，提供文件系统、网络协议栈等开箱即用功能，提升开发效率。内存管理上，FreeRTOS强调静态分配，RT-Thread支持动态策略并内置内存监控。任务同步机制方面，FreeRTOS提供基础信号量/队列，RT-Thread扩展了事件集/邮箱等高级功能。工具链上，FreeRTOS适配通用IDE，R]]></description><category></category></item></channel></rss>