<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[smalming的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/smalming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; smalming]]></copyright><item><title><![CDATA[专题-蓝牙的整体实现]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/161765227</link><guid>https://blog.youkuaiyun.com/smalming/article/details/161765227</guid><author>smalming</author><pubDate>Sun, 07 Jun 2026 19:04:49 +0800</pubDate><description><![CDATA[蓝牙通信系统是一套包含应用软件到2.4GHz电磁波的完整架构，包括协议栈、控制器和RF电路等组件，所有蓝牙设备底层都遵循这一共同框架。不同设备的选择差异体现在协议类型、处理器部署、芯片集成方式以及性能侧重点上。实现方案主要有单芯片MCU集成和独立控制器两种形式，前者将蓝牙功能完全集成在主控芯片中。]]></description><category></category></item><item><title><![CDATA[【产品开发】空气波按摩器的一些控制逻辑]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/161342071</link><guid>https://blog.youkuaiyun.com/smalming/article/details/161342071</guid><author>smalming</author><pubDate>Sat, 23 May 2026 16:08:35 +0800</pubDate><description><![CDATA[随着大健康产业的爆发，这类产品的销量也跟着爆发，这不最近刚好接到空气波腿部按摩器的PCBA的软硬件开发项目，在这里记录下一些开发心得。]]></description><category></category></item><item><title><![CDATA[专题-图形界面之字体渲染]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156948571</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156948571</guid><author>smalming</author><pubDate>Thu, 15 Jan 2026 08:53:15 +0800</pubDate><description><![CDATA[在嵌入式图形界面中，文字、字母、数字、符号的显示通常有以下几种不同的处理方法，具体采用哪种方法，还是要根据具体的界面需求，比如是要显示通用的文本（如菜单、日志）还是要显示美观的大数字（如时钟表盘、仪表）或是可爱的不规则字体等来选择不同的处理方法。]]></description><category></category></item><item><title><![CDATA[专题-图形界面之显存]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156946459</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156946459</guid><author>smalming</author><pubDate>Wed, 14 Jan 2026 15:52:51 +0800</pubDate><description><![CDATA[无显存架构”的驱动IC的优缺点优点：屏幕模组更薄、成本更低（少了 RAM）、解决大分辨率下内置 RAM 成本过高的问题。代价：极大地增加了主控芯片的负担，要求主控必须有足够的 RAM 和高性能的显示接口（RGB/MIPI）。]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156945111</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156945111</guid><author>smalming</author><pubDate>Wed, 14 Jan 2026 15:08:59 +0800</pubDate><description><![CDATA[LCD屏幕上每个像素点的值都在显存上占据一个或多个存储单元，具体取决于像素点的色深Color Depth。5位红，6位绿，5位蓝。你需要学会如何用位运算 (Shift/And/Or) 组合颜色。RGB565：嵌入式最常用。一个像素占 2 字节 (16bit)。ARGB8888：带透明度，占 4 字节。]]></description><category></category></item><item><title><![CDATA[专题-图形界面之ARM2D]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156937437</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156937437</guid><author>smalming</author><pubDate>Wed, 14 Jan 2026 10:09:42 +0800</pubDate><description><![CDATA[ARM-2D图形渲染。]]></description><category></category></item><item><title><![CDATA[模块-图形界面之屏幕]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156904271</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156904271</guid><author>smalming</author><pubDate>Wed, 14 Jan 2026 09:58:18 +0800</pubDate><description><![CDATA[驱动IC AXS15230 带SPI/16位8080。驱动IC AXS15231B。驱动IC为ST7701S。]]></description><category></category></item><item><title><![CDATA[模块-图形界面之MCU]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156933912</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156933912</guid><author>smalming</author><pubDate>Wed, 14 Jan 2026 09:30:41 +0800</pubDate><description><![CDATA[本文主要讨论嵌入式产品项目要实现图形界面对MCU的要求及我收集到的认为适合驱动LCD的MCU。彩屏: spi  8080/6800总线，4线spi。带段码LCD驱动的MCU 合泰HT系列。驱动段码屏ASIC如HT1621。二、适合驱动单色点阵屏的MCU。带8080、6800的MCU。一、适合驱动段码屏的MCU。三、适合驱动彩屏的MCU。]]></description><category></category></item><item><title><![CDATA[Git-丢弃本地的修改]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/156616735</link><guid>https://blog.youkuaiyun.com/smalming/article/details/156616735</guid><author>smalming</author><pubDate>Mon, 05 Jan 2026 22:58:11 +0800</pubDate><description><![CDATA[本文介绍了Git中撤销修改的三种情况：1)未追踪文件可使用git clean -fd删除；2)已修改未暂存文件可用git checkout .放弃所有更改；3)已暂存文件先用git reset HEAD .取消暂存，再按情况2处理。对于已提交的修改，可通过git reset --hard HEAD^回退到上一版本或使用git reset --hard commitid回退到指定版本。]]></description><category></category></item><item><title><![CDATA[通信模块-I2C]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/154839211</link><guid>https://blog.youkuaiyun.com/smalming/article/details/154839211</guid><author>smalming</author><pubDate>Fri, 14 Nov 2025 15:49:43 +0800</pubDate><description><![CDATA[R/W位 0为写，1为读    ACK位0为有应答，1为无应答。]]></description><category></category></item><item><title><![CDATA[处理器运行环境-51内核]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/153563859</link><guid>https://blog.youkuaiyun.com/smalming/article/details/153563859</guid><author>smalming</author><pubDate>Fri, 24 Oct 2025 19:05:18 +0800</pubDate><description><![CDATA[中断程序的运行：突然插进来要运行的代码，51内核硬件自动把PC指针(下一条要运行的指令的地址)放入SP指向的RAM(也称为栈Stack)后，SP+1, 完成PC的备份，之后中断控制器硬件依据中断源取对应的中断向量地址放入PC指针，并开始执行中断向量处的指令，中断向量处的指令一般只放一条跳转指令，跳转到对应中断处理函数执行。上电或复位后，51从0000H(复位向量）开始执行第一条指令，这条指令都是跳转指令LJMP跳转到普通程序开始执行。四组R0~R7  共32Byte。一、硬件RAM与指令支持。]]></description><category></category></item><item><title><![CDATA[模块-电池管理]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/153815644</link><guid>https://blog.youkuaiyun.com/smalming/article/details/153815644</guid><author>smalming</author><pubDate>Fri, 24 Oct 2025 09:21:03 +0800</pubDate><description><![CDATA[充电恒流、恒压、涓流充控制(如果使用充电ASIC,这部分由芯片完成)充电过程电池电压检测 实时显示充电电池电量。电池管理主要涉及电池充电和放电过程。充电保护(过压保护，过冲保护)放电过程电压检测转换电量输出。过放电保护，低电压报警输出。充电器充电使能和禁能。]]></description><category></category></item><item><title><![CDATA[Git 添加beyond compare支持]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/153771659</link><guid>https://blog.youkuaiyun.com/smalming/article/details/153771659</guid><author>smalming</author><pubDate>Thu, 23 Oct 2025 09:18:11 +0800</pubDate><description><![CDATA[本文介绍了如何配置Git使用Beyond Compare或Kompare作为代码比较工具。通过git config命令全局设置diff和merge工具及其路径，或在项目git目录下的config文件中添加相应配置。对Windows和Linux/Mac系统分别提供了配置示例。同时提供了取消每次比较时确认提示的方法：临时使用git difftool -y，或永久设置git config --global --add difftool.prompt false。]]></description><category></category></item><item><title><![CDATA[基于UART传输的数据完整性校验]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/153174832</link><guid>https://blog.youkuaiyun.com/smalming/article/details/153174832</guid><author>smalming</author><pubDate>Mon, 13 Oct 2025 07:38:37 +0800</pubDate><description><![CDATA[UART数据传输校验机制的核心在于弥补硬件奇偶校验的不足。奇偶校验仅能检测1位错误，因此需结合软件校验方案：基础校验和计算简单但误检率高，适合短数据；CRC校验能力强，可检测多位错误，适合工业场景；哈希算法提供更高安全性但计算复杂。实现时需注意帧结构约定、校验范围、硬件加速和错误处理机制。根据场景选择合适方案：8位MCU可用校验和，32位设备推荐CRC-16，敏感数据采用SHA哈希，无线传输建议结合字节计数增强可靠性。]]></description><category></category></item><item><title><![CDATA[Python的开发环境]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/152408191</link><guid>https://blog.youkuaiyun.com/smalming/article/details/152408191</guid><author>smalming</author><pubDate>Sat, 04 Oct 2025 14:31:34 +0800</pubDate><description><![CDATA[语法高亮：语法关键词、字符串、注释、变量、函数使用不同颜色显示。1.Pyhon解释器：配置Python解释器路径版本。2.标准库和第三方库：库安装、删除、依赖管理、4、虚拟运行环境管理。代码补全：函数、变量、类名自动提醒补全。调试辅助：断点设置、单步执行、变量监视。python控制台：逐句解释执行。一、Python运行环境管理。]]></description><category></category></item><item><title><![CDATA[通信模块-UART]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/152211371</link><guid>https://blog.youkuaiyun.com/smalming/article/details/152211371</guid><author>smalming</author><pubDate>Sun, 28 Sep 2025 11:41:05 +0800</pubDate><description><![CDATA[UART是一种异步串行通信协议，通过预先协商的波特率实现数据传输。采用TX和RX双线设计，支持全双工通信（取决于芯片）。其数据帧包含：1个起始位（低电平）、8或9个数据位（含可选校验位）、1个停止位（高电平）。空闲时为高电平状态，支持奇/偶校验功能。由于无需时钟同步，硬件实现简单可靠，被广泛应用于嵌入式系统通信。]]></description><category></category></item><item><title><![CDATA[Git从远程仓库同步最新代码]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/152049951</link><guid>https://blog.youkuaiyun.com/smalming/article/details/152049951</guid><author>smalming</author><pubDate>Wed, 24 Sep 2025 20:41:46 +0800</pubDate><description><![CDATA[本文介绍了Git中git fetch和git pull的区别与用法。git fetch是安全获取方式，仅下载远程更新到本地跟踪分支（如origin/main），不自动合并到当前分支，可通过git log或git diff查看差异后再决定是否合并。git pull则相当于fetch+merge，自动获取并合并远程更新到当前分支，但可能产生合并冲突，需手动解决。建议使用前先git status确认工作区状态，避免冲突难以处理。]]></description><category></category></item><item><title><![CDATA[Python环境及其管理]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/151039003</link><guid>https://blog.youkuaiyun.com/smalming/article/details/151039003</guid><author>smalming</author><pubDate>Sun, 31 Aug 2025 10:13:48 +0800</pubDate><description><![CDATA[Python环境包含Pyhon程序运行所需的一切元素Python包含如下1、Python解释器查看解释器版本 python --version   查看解释器路径which python(mac/linux)  where python官方的解释器是CPython2、标准库和第三方库标准库是Python 官方开发并内置，随解释器提供，随着python版本进行更新第三方库由Python 社区（个人、团队或公司）开发，使用包管理工具(pip)安装或卸载3、环境变量。]]></description><category></category></item><item><title><![CDATA[MCU软件模块间的交互]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/150929507</link><guid>https://blog.youkuaiyun.com/smalming/article/details/150929507</guid><author>smalming</author><pubDate>Thu, 28 Aug 2025 08:35:07 +0800</pubDate><description><![CDATA[发布者与订阅者通过 “事件” 间接交互，发布者不知道订阅者的存在，订阅者也无需知道发布者的实现，两者仅依赖 “事件定义” 和 “回调接口”。模块间的交互强调高内聚低耦合，需要通过如下手段来实现。通过 “发布 - 订阅” 模式实现解耦。提供不透明指针或抽象整数的句柄，如。i2c_bus.h头文件实现。一、句柄化设计对外接口。提供句柄化操作接口，如。二、模块功能接口抽象化。i2c_bus.c实现。三、事件驱动与回调机制。]]></description><category></category></item><item><title><![CDATA[一文读懂 macOS 休眠模式：hibernatemode 0、3、25 区别与配置指南]]></title><link>https://blog.youkuaiyun.com/smalming/article/details/150842058</link><guid>https://blog.youkuaiyun.com/smalming/article/details/150842058</guid><author>smalming</author><pubDate>Tue, 26 Aug 2025 07:33:10 +0800</pubDate><description><![CDATA[macOS系统采用hibernatemode参数控制休眠模式，提供0、3、25三种配置选项： 模式0（默认台式机）：仅内存供电，唤醒快但断电丢失数据 模式3（默认笔记本）：内存供电+磁盘备份，兼顾速度与安全性 模式25：仅磁盘备份，完全断电适合长期待机 用户可通过终端pmset命令调整模式，建议台式机维持模式0，笔记本日常用模式3，长期存放选模式25。不同模式在唤醒速度、数据安全和电池续航间取得平衡，可根据使用场景灵活配置。]]></description><category></category></item></channel></rss>