<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>方寻</title>
  <icon>/favicon.ico</icon>
  <subtitle>记录学习生活的琐事，或技术文章</subtitle>
  <link href="https://blog.findingx.cc/atom.xml" rel="self"/>
  
  <link href="https://blog.findingx.cc/"/>
  <updated>2025-09-28T04:42:10.290Z</updated>
  <id>https://blog.findingx.cc/</id>
  
  <author>
    <name>方寻</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>拖延症救星</title>
    <link href="https://blog.findingx.cc/2025/09/28/122039/"/>
    <id>https://blog.findingx.cc/2025/09/28/122039/</id>
    <published>2025-09-28T04:20:39.000Z</published>
    <updated>2025-09-28T04:42:10.290Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>我们常会遇到昨天规划好今天几点开始学习，今天几点开始完成某项任务，结果当到时间的时候任然在游戏或者追剧，内心OS：等一会会就开始，结果推完水晶追完剧抬头一看吃饭时间了，任务一个没完成。</p><p>拖延症让大多数人没法自律，就算是前一天想了千万种自律的方法，等到第二天完成几乎是不可能的。</p><p>其实从根本上来说，拖延症才是符合人性的，人们总是把这种需要付出成本的事情放在将来，认为将来的自己能够完成，反而自律是反人性的。</p><p>从另一个角度：行为经济学角度解释，其中有一条是“消费者认为货币的现在价值高于未来价值” ，这一现象被称为 “时间贴现”，本质是消费者对 “货币在不同时间点的主观价值判断存在差异”—— 由于未来存在不确定性、自我控制偏差等因素，同样数额的货币，“当下拥有” 比 “未来获得” 能带来更强的效用（满足感），因此消费者会赋予当下货币更高的 “主观价值权重”。人们会将付出成本这件事向后退，如果能先享乐，后付款，人们当然更愿意。</p><p>也就是说，人们会将吃喝玩乐等舒服的事情放在当下做，能带来更强烈的满足感，将诸如学习，背单词，减肥，工作，劳作等需要付出劳动带来痛苦的事情推后。</p><p>从根本上来说要抵制这种心理，要么喜欢上这件事（但几乎不太可能），也就是让其能带来强烈满足感，或者将时间安排到十分细致，规划好每一小段时间做什么。</p><p><s>好了，胡乱的分析到这里就结束了，下面开始正题</s></p><h2 id="需要的工具"><a class="markdownIt-Anchor" href="#需要的工具"></a> 需要的工具</h2><p>每个人的喜好不同，适用的工具也不同。我这里说明自己用到的方法。</p><ol><li>首先需要做好详细的时间规划，到每一分钟的时间规划（日程软件）</li><li>需要时刻看得到（桌面插件）</li><li>不论在哪都能看和编辑（多端同步）</li></ol><p>上述三点是核心需求，开始寻找匹配的工具</p><ol><li>日程：Outlook</li><li>桌面插件：Sectograph</li><li>多端同步：Outlook自带同步</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/09/001.png" alt="Outlook" /><br /><img src="https://raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/09/002.png" alt="桌面插件：Sectograph" /></p><p>桌面端输入日程即可在手机插件中同步，当然前提是手机端outlook成功写入到本地日程中，如果后台关闭了可能会同步不成功，这也是这套工作流的缺点。如果你有其他的同步方法也可以替代Outlook同步。</p><p>接下来就是长期按照日程安排按部就班做就行，最重要的其实是养成习惯，习惯一成会越做越容易。</p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="方法" scheme="https://blog.findingx.cc/categories/%E6%96%B9%E6%B3%95/"/>
    
    
    <category term="拖延症" scheme="https://blog.findingx.cc/tags/%E6%8B%96%E5%BB%B6%E7%97%87/"/>
    
  </entry>
  
  <entry>
    <title>OpenWrt节点搭建</title>
    <link href="https://blog.findingx.cc/2025/09/11/144439/"/>
    <id>https://blog.findingx.cc/2025/09/11/144439/</id>
    <published>2025-09-11T06:44:39.000Z</published>
    <updated>2025-09-11T08:19:10.432Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>免责声明：本文内容仅用于合法技术学习与研究，严禁用于任何违法违规活动。使用者若违法，所有法律责任及后果均自行承担，与本文创作者无涉。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年九月十一日</span></div></div></div></div></p></div><p>叠完 Buff 开始正文。</p><h2 id="正文开始"><a class="markdownIt-Anchor" href="#正文开始"></a> 正文开始</h2><p>首先要明确目的，我使用 HomeProxy 是做节点使用，比如说我在一个网络环境中没有办法上bilibili和网易云，因为网络管理员封禁了这两个网址，其他的上网不受影响，但此时我又不想用流量上网，如何设置上网呢？</p><h2 id="搭建节点"><a class="markdownIt-Anchor" href="#搭建节点"></a> 搭建节点</h2><p>我当前环境：zerotier内部组网（虽然说zerotier也可以实现代理上网，但这里不举例说明了）+HomeProxy组合使用，所以在填写IP+Port的时候填写的是zerotier的IP+HomeProxy的Port。</p><p>首先你需要自己手动搭建节点，如果用HomeProxy服务配置需要如下步骤</p><p>打开OpenWrt中服务选项中的HomeProxy，找到最上方<strong>服务器设置</strong>，<strong>全局设置</strong>勾选启用，服务器设置添加名称（随便填）比如<code>http</code>，点击添加后保存应用（<strong>下面没有出现的全部默认不动</strong>）</p><ul><li><strong>卷名</strong>：http</li><li><strong>启用</strong>：勾选</li><li><strong>防火墙</strong>：勾选</li><li><strong>类型</strong>：http</li><li><strong>监听端口</strong>：8987（找一个没用到的）</li></ul><p>socks同理</p><ul><li><strong>卷名</strong>：socks</li><li><strong>启用</strong>：勾选</li><li><strong>防火墙</strong>：勾选</li><li><strong>类型</strong>：socks</li><li><strong>监听端口</strong>：8988（找一个没用到的）</li></ul><p>完成保存，等待服务启动。</p><p>来到浏览器Firefox，代理添加IP+Port保存即可上网。</p><p>题外话，如果你OpenClash的插件设置-流量控制中勾选了<strong>路由本机代理</strong>，那么此时节点此时走的是OpenClash的流量，建议关闭本机代理，当然你有另外需求除外。</p><p>上述方法如果部署公网的话就不需要走zerotier了，可以直接用公网IP即可。</p><h2 id="大致路径"><a class="markdownIt-Anchor" href="#大致路径"></a> 大致路径</h2><p>上述方法流量是怎么走的呢</p><p>本机电脑 --&gt; zerotier --&gt; HomeProxy --&gt; 本地链路 --&gt; 上网</p><p>也就是说是在本地电脑上使用的路由器上的流量，那么这时经过管理员手中的是包装过的数据包，他无法分辨这个是否是bilibili和网易云的数据包，自然没办法拦住数据包了。</p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="openwrt" scheme="https://blog.findingx.cc/tags/openwrt/"/>
    
    <category term="路由器" scheme="https://blog.findingx.cc/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>NSY-G68-PRO农商云路由器固件编译（openwrt的技能）</title>
    <link href="https://blog.findingx.cc/2025/09/10/134439/"/>
    <id>https://blog.findingx.cc/2025/09/10/134439/</id>
    <published>2025-09-10T05:44:39.000Z</published>
    <updated>2025-09-10T08:18:59.249Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>有段时间没更新了，最近折腾了一个路由器，咸鱼入手一百五，手动更换flash为emmc，原本程序是在flash中跑的，有网友大神开源出来他的固件，从emmc启动，必须上emmc。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年九月十日</span></div></div></div></div></p></div><blockquote><p>题外话<br />已经很久没有折腾路由器了，我记得最初写博客的时候，正在折腾路由器，由于博客文件没保存好丢失了，部分折腾路由器的文章也都丢了，那时候在弄<code>树莓派</code>+<code>openwrt</code>方案，学了不少路由转发的知识，现在忘得差不多了，重新开始学。</p></blockquote><h2 id="正题开始"><a class="markdownIt-Anchor" href="#正题开始"></a> 正题开始</h2><p>NSY-G68-Plus是陕西农商云的一款路由器，其配置信息如下：</p><ul><li><strong>处理器</strong>：搭载瑞芯微<strong>RK3568</strong>核心板，集成四核ARM Cortex-A55处理器。</li><li><strong>内存</strong>：原生内存为4G。</li><li><strong>存储</strong>：存储容量有8G、16G、32G、64G等多种，还有极少数256G版本，部分为原生存储，部分是后期扩容的emmc颗粒。（我的就是256G自己扩容）</li><li><strong>接口</strong>：背面有一个USB 3.0接口、五个千兆网口以及DC电源口，采用12V/2A电源供电。</li><li><strong>其他</strong>：主板上有单独的<strong>M2 Nvme</strong>固态硬盘槽，外壳为金属材质，采用四天线设计，支持WiFi6双频千兆无线。</li></ul><p>上述信息来看，3568这样的芯片做成算力卡才能发挥他的全部实力，做成路由器真有点大材小用了，内存4G在路由器中跑一些中等的docker应用还是可以的，另外具有M.2的固态硬盘盘位，这个就非常适合做云存储了，实测上256G没问题，能够读写数据，手头没有更大的了，先凑合用着。有个usb3.0的口可以用来插U盘，网络摄像头设备，甚至提供以太网，当然上述均是理论上，没有实操，哪天试一试。</p><p>好了，优点说完了来说说缺点，发热，平均50°上下，摸着铁盒子感觉和其他百元级的路由器差不多，毕竟这个也是个3568啊，其次烫的地方是网络芯片，大神自编译的固件添加了闭源驱动，wifi实测效果还行，和一般百元路由器差不多，最后固态也会稍微烫一点，50左右。还有就是他启动非常慢，不知道为什么，相比之前折腾过的路由器来说，启动得等1分钟左右。</p><p>150的路由器他值得吗，最初我是从RAX3000M算力版找的，这款130左右闲鱼价格，相比之下NSY这个只是多20，性能更好，扩展更多，当然入手了，但光从CPU角度看的话，RK3568其他形态的板子也就130上下，排除那些开发板，相比之下价格差不多，毕竟其他形态的板子没有路由器这种完全体好，也算是值的。</p><h2 id="编译过程"><a class="markdownIt-Anchor" href="#编译过程"></a> 编译过程</h2><h3 id="编译环境docker"><a class="markdownIt-Anchor" href="#编译环境docker"></a> 编译环境docker</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">docker run -d --name immortalwrt-build  myflavor/immortalwrt-build</span><br><span class="line">docker exec -it immortalwrt-build bash</span><br></pre></td></tr></table></figure><p>选择docker的原因是，搭建环境实在是太麻烦了。。。。。</p><h3 id="下载"><a class="markdownIt-Anchor" href="#下载"></a> 下载</h3><ol><li>源码部分</li></ol><p>这部分是源码，通过编译可以得到一份属于自己的固件。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git clong https://github.com/zhoufuli/immortalwrt-rk356x</span><br></pre></td></tr></table></figure><ol start="2"><li>懒人固件</li></ol><p>这是别人编译好的，可以直接开机，尝试过能用，但是管理页面的网络中没有无线选项，自编译的有</p><p><a target="_blank" rel="noopener" href="https://dgithub.xyz/xiaomeng9597/ImmortalWrt-NSY">https://dgithub.xyz/xiaomeng9597/ImmortalWrt-NSY</a></p><p>上述链接找到固件下载，点击Rockchip平台找就可以了，也可以去<a target="_blank" rel="noopener" href="https://dgithub.xyz/xiaomeng9597/ImmortalWrt-NSY/releases">releases</a>找immortalwrt-g68的固件。</p><h3 id="编译"><a class="markdownIt-Anchor" href="#编译"></a> 编译</h3><h4 id="更新docker源"><a class="markdownIt-Anchor" href="#更新docker源"></a> 更新docker源</h4><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cp /etc/apt/sources.list /etc/apt/sources.list.bac</span><br><span class="line">rm /etc/apt/sources.list</span><br><span class="line">vim /etc/apt/sources.list</span><br></pre></td></tr></table></figure><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_"># </span><span class="language-bash">默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse</span></span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">以下安全更新软件源包含了官方源与镜像站配置，如有需要可自行修改注释切换</span></span><br><span class="line">deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse</span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse</span></span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">预发布软件源，不建议启用</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse</span></span></span><br></pre></td></tr></table></figure><h4 id="安装必要软件"><a class="markdownIt-Anchor" href="#安装必要软件"></a> 安装必要软件</h4><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">apt update</span><br><span class="line">apt install -y build-essential gcc g++ binutils patch bzip2 flex bison make gettext ncurses-dev zlib1g-dev libssl-dev python3 util-linux bc rsync vim git unzip libncurses5 gawk</span><br></pre></td></tr></table></figure><h4 id="更新和安装-feeds"><a class="markdownIt-Anchor" href="#更新和安装-feeds"></a> 更新和安装 feeds</h4><p>到git仓库目录下执行</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">./scripts/feeds update -a</span><br><span class="line">./scripts/feeds install -a</span><br></pre></td></tr></table></figure><h4 id="安装-gnu-awk"><a class="markdownIt-Anchor" href="#安装-gnu-awk"></a> <s>安装 GNU ‘awk’</s></h4><p><s>可忽略</s></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install gawk</span><br></pre></td></tr></table></figure><h4 id="make"><a class="markdownIt-Anchor" href="#make"></a> Make</h4><p>可以自己打开关闭功能，<strong>可以先把当前目录下defconfig中的g68_mtk_wifi.config文件</strong>，这个文件是带有闭源驱动的config文件，我是在这个文件的基础上自己修改编译的。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">make menuconfig</span><br></pre></td></tr></table></figure><p>开始编译</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">make -j$(nproc) V=s</span><br></pre></td></tr></table></figure><p>报错提示缺少依赖，手动编辑<code>.config</code>文件发现上述提示的文本全部没有打开，于是手动修改后依然无法编译成功，重新安装<code>feeds</code>解决。</p><h3 id="给路由器做手术"><a class="markdownIt-Anchor" href="#给路由器做手术"></a> 给路由器做手术</h3><ol><li>拆除原本flash（网上有些说不用拆，但是我用不到了干脆拆掉）</li><li>上件emmc</li></ol><h3 id="刷机过程"><a class="markdownIt-Anchor" href="#刷机过程"></a> 刷机过程</h3><p>此时你需要刷机驱动以及刷机软件。</p><p>可以去这里看他的教程<a target="_blank" rel="noopener" href="https://www.bilibili.com/video/BV1asAge7EJq">https://www.bilibili.com/video/BV1asAge7EJq</a>，<code>hiahiahia好玩</code>这个UP有三期讲本路由魔改视频，可以自行查找。<br />评论区链接: <a target="_blank" rel="noopener" href="https://pan.baidu.com/s/1RV_6NGhfre2kCVO_o5tiBQ?pwd=8888">https://pan.baidu.com/s/1RV_6NGhfre2kCVO_o5tiBQ?pwd=8888</a> 提取码: 8888。</p><p>安装好后打开软件，用一条线连接电脑和路由器上的usb3.0接口，准备完毕开始刷机，在原本flash边上有两个黄色圆点（他们连线并不平行于长方形路由器的两条边），这两个是测试点，用镊子或者其他金属短接后插上电源适配器，此时电脑上位机最下方提示找到<strong>MASKROM设备</strong></p><p>此时工具最上方选择<strong>高级功能</strong>，刷入boot，三个点的位置点击后选择上面百度网盘的链接下载的文件<code>rk356x_spl_loader_v1.18.112.bin</code>，点击下载，不做这一步会出现无法读取任何信息的问题，同时刷不了机。</p><p>下载完成后在<strong>解包</strong>下方有第二项 EMMC，选中它，在左侧按钮中选择<strong>擦除所有</strong>（这一步可做可不做），这一步具体看你的<strong>emmc</strong>多大，256G的就非常久，优点就是可以看你这个emmc是否存在无法读取的问题。</p><p>最后一步在顶部选择<strong>下载镜像</strong>，勾选第二个<strong>system</strong>行，第一行<strong>boot不勾选</strong>，修改system的路径为你自己编译的固件路径即可，完成后需要勾选下方的<strong>强制按地址写</strong>，最后摁下<strong>执行</strong>按钮，右侧会有log提示，完成刷机后路由器会自动启动</p><p>这时候用以太网连接到电脑等一会在浏览器输入<code>192.168.1.1</code>就可以进入管理也面了，此时随便输入密码，点击登录会提示你修改密码。</p><p>至此完成刷机。</p><h3 id="路由器配置和使用"><a class="markdownIt-Anchor" href="#路由器配置和使用"></a> 路由器配置和使用</h3><p>本文篇幅有限，路由器配置会单独讲，这里只提供一些简单的注意事项</p><ol><li><p>以太网口千万不要分错<strong>wan</strong>和<strong>lan</strong>，本文的NSY的wan口是<strong>靠近电源</strong>的那个接口，如果你错误接到了最左边（仔细看这个接口和其他四个接口是分开的，不看清楚路由器标识可能会误以为这个是wan口），那么你的电脑将会直接桥接到NSY的<strong>上一个</strong>路由去了。</p></li><li><p>在没有详细了解路由器<strong>防火墙</strong>以及<strong>接口配置</strong>的情况下，千万不要随便修改，否则可能导致<strong>无法进入管理界面</strong>导致必须强制重刷，虽然固件有修改错误回滚机制，但是有部分是修改了无法连接到路由器，那么回滚机制就失效了。</p></li><li><p>部分软件配置需要扩容才能完美运行，比如docker，必须扩容，转移docker根目录文件才能运行，我还没有弄清楚，还得研究研究。</p></li></ol><h3 id="能做什么"><a class="markdownIt-Anchor" href="#能做什么"></a> 能做什么</h3><p>为什么要自定义路由器呢？</p><p>原因很简单，我需要一台能够完全掌控网络链路走向的路由器，我能控制网络信息从wan口来，去到哪个lan口，或者在路由器内部软件旁路由绕一圈再流出lan口或者渠道wifi输出，又或者是让旁路由实现本地dns污染，直出旁路由数据。</p><p>其次路由固件本质是linux内核，我便可以在这套系统中搭建自己想要的服务，运行自编译程序，由于路由器是3568的缘故，算力这块不需要太愁，在编译固件的时候，我们可以将想要的功能直接编译到固件中，就比如我将python基本库编译进去，那么路由器系统就有了python的基本功能，我能够跑自己的python程序，当然也可以通过docker的方法运行。同时路由器有4G内存的功能，而openwrt占用系统内存非常小，那么大量的内存空间可以用于docker中跑占内存的容器，比如网盘存储kodbox等，其实有了docker之后就有很多玩法了。</p><p>再者就是路由器可以多样化控制，从根本上玩转路由，我尝试过添加了闭源无线驱动的固件，它能够单独控制5G和2.4G的两颗芯片，也就是说我可以通过wifi桥的方法，用5G接收较远的路由器WiFi信号，通过无线转成有线连接到没有无线网卡的电脑上，同时还能发出5G和2.4G信号用于其他设备连接，他应该还能开启混杂模式，没有尝试过，感觉得重新编译才行。</p><p>最值得的一点是，他能通过运行ddns-go，用IPv6连接域名，那么部分比如说博客我就可以这样本地化部署，公网访问了，当然这种做法也是存在风险的，毕竟主动暴露了IP（可能通过扫描子域名找到漏洞攻击你的服务器），等你的路由器权限被拿走了，那么连接到你路由器的其他设备也都遭了殃，如果要做，那么一定要封好所有不该暴露的端口，不给黑客们可乘之机。</p><p>说了这么多其实就是一句话，<strong>能够完全掌握他，远程访问</strong>，当然还有其他的上网功能，就不细说了，懂的都懂。如果有折腾出什么新花样再写文章补充。</p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="openwrt" scheme="https://blog.findingx.cc/tags/openwrt/"/>
    
    <category term="NSY" scheme="https://blog.findingx.cc/tags/NSY/"/>
    
    <category term="路由器" scheme="https://blog.findingx.cc/tags/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>思源笔记连接本地ollama</title>
    <link href="https://blog.findingx.cc/2025/08/20/113503/"/>
    <id>https://blog.findingx.cc/2025/08/20/113503/</id>
    <published>2025-08-20T03:35:03.000Z</published>
    <updated>2025-08-20T04:43:51.747Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>笔记本+AI应该是比较好的组合，曾经尝试过siyuan使用openai在线版本api，由于我现在有本地ollama，于是想尝试使用便有了这篇文章。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年八月二十日</span></div></div></div></div></p></div><h3 id="0-安装ollama"><a class="markdownIt-Anchor" href="#0-安装ollama"></a> 0. 安装ollama</h3><p>这段可参考曾经我写过的<a href="/2025/06/05/152454/">文章</a>或者网友们的教程</p><h3 id="1-打开思源笔记设置界面"><a class="markdownIt-Anchor" href="#1-打开思源笔记设置界面"></a> 1. 打开思源笔记设置界面</h3><p>在AI配置界面使用如下配置，选择openai，时间设置600s(当然也可以更加小)，模型输入模型全称，API key任意填写如<code>123</code>，API注意填写服务器地址即可，内网IP</p><p>注意，对于我这种使用脚本的可以直接添加一行<code>set OLLAMA_HOST=0.0.0.0</code>,这样就可以局域网访问了。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/011.png" alt="脚本配置" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/012.png" alt="配置界面" /></p><h3 id="2-调用"><a class="markdownIt-Anchor" href="#2-调用"></a> 2. 调用</h3><p>输入<code>/ai</code>，调用ai输入问题</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/013.png" alt="输入问题" /></p><p>可以看到本地运行的服务端已经开始跑了</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/014.png" alt="本地运行" /></p><p>最终效果如下，有个问题就是<code>&lt;think&gt;</code>部分他会显示出来。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/015.png" alt="本地运行" /></p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="ollama" scheme="https://blog.findingx.cc/tags/ollama/"/>
    
    <category term="php" scheme="https://blog.findingx.cc/tags/php/"/>
    
  </entry>
  
  <entry>
    <title>计算机底层原理从入门到入土（一）</title>
    <link href="https://blog.findingx.cc/2025/08/02/110203/"/>
    <id>https://blog.findingx.cc/2025/08/02/110203/</id>
    <published>2025-08-02T03:02:03.000Z</published>
    <updated>2025-08-06T03:15:27.669Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="手电筒的加密通信设计"><a class="markdownIt-Anchor" href="#手电筒的加密通信设计"></a> 手电筒的加密通信设计</h2><blockquote><p>摘要：二进制</p></blockquote><p>白天你和好基友玩耍，晚上各自回家后仍然想分享好玩的事情，但那时没有手机。直到有一天你发现了家用手电筒，于是一个新的想法诞生了。你拿着手电对着好基友家的窗户照过去，起初，你想通过这种方式互动，但没法告诉对方你要表达什么，于是第二天你和好基友约定了一张表，利用手电筒亮灭的特性，制定了一张密码表（摩斯密码），参考这张表晚上便能通过这种开关手电筒的。于是你和好基友每日夜间通过这种方式通话，直到手电筒被父母收起来才终止了通话。</p><h2 id="继电器组成的计算器"><a class="markdownIt-Anchor" href="#继电器组成的计算器"></a> 继电器组成的计算器</h2><blockquote><p>摘要：门电路，电路加法器</p></blockquote><p>多年以后，你在高中学习到法拉第电磁感应特性，电能生磁，于是你突发奇想利用电转力的方式制造一个电力开关，于是你设计了下方的图纸，成功制作了一个继电器。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/001.png" alt="image" /></p><p>你突然意识到，这是一种手电筒的翻版，于是你用一套电路配合两种继电器设计了两个逻辑电路：缓冲器，非门。（常闭不想重新画了，直接倒过来）</p><p>常开的继电器左侧闭合之后会使得右侧灯亮起，输入=输出。</p><p>常闭的继电器左侧断开之后会使得右侧灯亮起，输入!=输出。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/002.png" alt="image" /></p><p>但是这不能满足你的好奇心，你将两个常开继电器级联起来，你发现必须要同时闭合两个开关才能点亮灯泡，其他情况都不能。（与门）</p><p>同时你将两个常开继电器换种方式连起来，又发现任意其一闭合都能使得灯泡点亮。（或门）</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/003.png" alt="image" /></p><p>至此你已经成功制作了<strong>与门、或门、非门</strong>。</p><p>于是你又在考虑，如果将两个常闭的继电器级联会有怎样的效果。于是同样的，你将常闭继电器级联后出现如下两种<strong>与非门、或非门</strong></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/004.png" alt="image" /></p><p>你仍不满足现状，你在思考如何比较两个输入是否相同，于是你将继电器输出接到了一块，就像如下两种电路，<strong>异或门，异或非门</strong></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/005.png" alt="image" /></p><p>在研学路上你又接触到了二进制计算，联想起曾经做过的逻辑电路设计，于是你便脑洞大开，用继电器做一个能够计算的计算器。</p><p>首先你想到的是一位加法器，1+1=10，1+0=1，0+1=1，0+0=0</p><table><thead><tr><th>A</th><th>B</th><th>个位</th><th>进位</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>1</td><td>0</td></tr><tr><td>1</td><td>0</td><td>1</td><td>0</td></tr><tr><td>1</td><td>1</td><td>0</td><td>1</td></tr></tbody></table><p>于是你根据上面的逻辑发现，个位数输出与两个输入数据的关系正好符合<strong>异或门</strong>的逻辑。进位输出与两个输入数据的关系正好符合<strong>与门</strong>逻辑，于是你便有了已下电路（<strong>半加器</strong>）</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/006.png" alt="image" /></p><p>既然有了1+1，那就能100+100，于是你根据二进制特性继续级联，你发现规律，个位一共有三个数相加：A+B+进位=加和，此时每个二进制都是如此，一次类推，多位二进制求和中每一个位相加都符合逻辑A+B+进位=加和。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/007.png" alt="image" /></p><p>多位加法器可以通过这种方式级联得到</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/008.png" alt="image" /></p><p>简化如下图</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/009.png" alt="image" /></p><p>级联后就是八位二进制加法器了</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/08/010.png" alt="image" /></p><p>A和B分别是两个二进制的每一位。</p><p>至此你成功发明了一个能处理逻辑运算的电路，于是你在想能否研制一个减法功能的电路呢。你看着窗外，星辰遍布天空，此时已是午夜，月亮的光照在荧屏下，清冷的风透过纱窗，完成如此复杂的逻辑挑战后，靠在躺椅，你闭上了双眼，享受此时的片刻宁静与微风。</p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="计算机" scheme="https://blog.findingx.cc/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>风雨相随|NOTE</title>
    <link href="https://blog.findingx.cc/2025/07/20/090905/"/>
    <id>https://blog.findingx.cc/2025/07/20/090905/</id>
    <published>2025-07-20T01:09:05.000Z</published>
    <updated>2025-07-25T09:38:18.538Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>今日台风，暴雨，希望能吹走烦恼。</p><p>这一个月来感觉日子很长，像是过了一个冬天。虽天寒地冻，但心不冷。</p><p>最近还是挺充实的，那次抑郁仅仅维持了三四天。因为大脑清醒<s>其实去打了舞萌</s>，意志没有完全摧毁，仔细思考当下困境及其形成原因后，将当下事分开来看，瞬间清晰了起来，补齐不足，抛开那些闹心的巧合，其实也没有大到没法解决的程度。接下来就是按部就班地处理了，许多问题在我的一顿乱操作之下，迎刃而解，所以现在才闲下发现仅仅过去了一个月。</p><p>前几天我又重新开始看经济学的东西，了解了解股票债卷，回顾一下期货期权，学了学货币政策历史，一段时间没看真的忘了不少，看新闻都看不太明白了…</p><h2 id="关于folo"><a class="markdownIt-Anchor" href="#关于folo"></a> 关于folo</h2><p>我才发现 folo 出了手机版，立马下载了玩一玩，发现还是蛮好用的，可以不科学地看推，有AI总结，AI翻译，对于我这种&quot;语言障碍&quot;的人十分友好，可能还能提升一点外语<s>纯属臆想</s>。</p><h2 id="思考的机器"><a class="markdownIt-Anchor" href="#思考的机器"></a> 思考的机器</h2><blockquote><p>本段是个人的胡乱猜想，理性阅读。</p></blockquote><p>你说，情感是碳基生物专属吗，情感源于什么，是记忆吗。假设你被抹去了所有记忆和曾经长期养成的肌肉记忆，仅仅保留生物反射，你只有食欲和性欲这些原始来自基因的欲望，那么你的行事在人类文明中便是冷血，无情的怪物了，因为你没有传承，没有记忆。&quot;狼孩&quot;的例子其实也很明显了，他接受的是来自狼的传承，他仍然拥有情感，只不过并非人而已。</p><p>来到&quot;冰冷的&quot;机器，如果机器也接受这样的&quot;传承&quot;，他会拥有情感吗，假设机器的程序设计足够巧妙，能够不仅仅通过现有数字推算，还能够通过当下环境（人事物等）做出更加偏向某方的答案，换句话说他的权重不是更偏向于理性重利思维，能否说它拥有了&quot;情感&quot;。</p><p>但是机器缺少一样东西，叫做欲望，生物有两种欲望不可或缺，食欲，性欲，一个是生存，一个是繁衍，人类的审美以及情感，基本是是从这两方面进化而来的，这与机器存在根本差异。但也许情感会成为人类的弱点。</p><h2 id="聊聊技术"><a class="markdownIt-Anchor" href="#聊聊技术"></a> 聊聊技术</h2><p>说说技术上的事情吧。这半年多来手上接的唯一一个案子，出不少问题，毕竟算是新方案，做第一个吃螃蟹的人，总会碰壁不少。相对于上一个项目（指的同一平台第一个案子，我这算是第二个了），全新非INTEL官方线路的电源方案，加上搭配两个国产芯片主控，其中芯片一个仍处于试产阶段，问题层出不穷，也是在这些问题中暴露出了很多软硬件设计的缺陷以及更深层次的逻辑。</p><p>就本次项目做下来（还没结案），也是有不少收获，对于整个CPU启动和电源架构清晰了不少，其实对于CPU来说，软件（BIOS）和硬件（时序）这两者搭配共同让这个庞大的集成电路运作起来，二者逻辑紧密，除了少许差错便会造成意想不到的后果。再就是稍微了解了一点BIOS阶段的东西，仅仅是表层，怎么写也就看了看，不是很会。</p><p>说到底我是做外围电路设计的，对于CPU内部寄存器位置作用以及CPU内部控制器，微控制器的工作机制，仅仅保留在了解和听说的阶段，没有实际操作过约等于道听途说。虽然我接触的是INTEL和AMD，但是世间芯片千千万，都是逃不开从8位上升到16再到64位这个过程的，想要运行C，就必须有C环境，CPU往往都会从一个简单的单片机开始，制造虚拟内存，初始化内存，创造C环境之后，便会开始用C编译的机器码跑其他硬件初始化。这个集成电路如此庞大，其实真正的启动源头是那么的稀疏平常，就像人类文明，从原始农耕的简单到当代高楼大厦科技时代的复杂社会，旧时代的印记依然藏在你我之间。</p><p>硬件创造世界，软件完善世界，如今的程序设计大多不用考虑过多底层，除非你想优化的十分彻底，每一块内存都扣的死死的，保证不浪费每一个字节。当下逻辑电路设计和程序设计殊途同归，表象完全是两个学科，底层逻辑差异并不大，程序设计（这里就不说C这样的接近底层的语言了）虽然有点脱离硬件，但实则操控的仍是内存数据地址，最终都会编译成机器码，寄存器能够按需变换。当软件无法优化时，便会出现专门应对这类软件难解的问题，GPU和NPU孕育而生，这些东西不是说软件无法实现，而是CPU硬件架构本身用软件算法效率不高，由于本质上操控的仍是硬件，干脆直接用硬件做数据处理来的更快更直接。</p><h2 id="域名"><a class="markdownIt-Anchor" href="#域名"></a> 域名</h2><p>购入域名后发现诸多玩法，域名值了</p><ol><li>开启网站域名解析</li><li>解析邮箱</li><li>开启mc服务器转发</li><li>开启隧道，本地web页面解析，试点：<a target="_blank" rel="noopener" href="http://halo.findingx.cc">halo.findingx.cc</a></li></ol><p>用halo效果不错，打算作为副站使用。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>使用自己的域名登录到我的世界服务器</title>
    <link href="https://blog.findingx.cc/2025/07/12/110203/"/>
    <id>https://blog.findingx.cc/2025/07/12/110203/</id>
    <published>2025-07-12T03:02:03.000Z</published>
    <updated>2025-07-12T08:43:55.618Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>内网穿刺软件通常会有一个万分奇怪的连接名称和端口号，比较难记，如今域名到手，可以尝试以下域名解析到服务器端口，这样无需记忆复杂的链接和端口号。同时由于用 PCL2 联机的时候关闭了验证，看不到其他人的皮肤，可以用 littleskin 作为正版验证，</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年七月十二日</span></div></div></div></div></p></div><h2 id="用-srv-解析"><a class="markdownIt-Anchor" href="#用-srv-解析"></a> 用 SRV 解析</h2><p>在 cloudflare 找到 DNS 记录，增加类型 SRV</p><blockquote><p>名称：_minecraft._tcp.mc<br />优先级： 5<br />权重：0<br />端口： 目标服务器端口<br />目标： 服务器地址</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/07/001.png" alt="SRV解析" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">SRV解析</span></div></div><p>这时候本地服务器运行，客户端已经可以连接到服务器了。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/07/002.png" alt="连接效果" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">连接效果</span></div></div><h2 id="littleskin-服务器验证"><a class="markdownIt-Anchor" href="#littleskin-服务器验证"></a> littleskin 服务器验证</h2><h3 id="服务端"><a class="markdownIt-Anchor" href="#服务端"></a> 服务端</h3><ol><li><code>server.properties</code> 需要开启正版验证</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">online-mode=true</span><br></pre></td></tr></table></figure><ol start="2"><li><code>run.sh</code> 文件修改</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">java @user_jvm_args.txt -javaagent:authlib-injector-1.2.5.jar=littleskin.cn  @libraries/net/minecraftforge/forge/1.20.1-47.4.2/unix_args.txt &quot;$@&quot; --nogui</span><br></pre></td></tr></table></figure><ol start="3"><li>下载文件 <code>authlib-injector-1.2.5.jar</code></li></ol><p><a target="_blank" rel="noopener" href="https://manual.littlesk.in/yggdrasil/authlib-injector#%E8%8E%B7%E5%8F%96-jar-%E6%96%87%E4%BB%B6">https://manual.littlesk.in/yggdrasil/authlib-injector#%E8%8E%B7%E5%8F%96-jar-%E6%96%87%E4%BB%B6</a></p><blockquote><p>下载 authlib-injector-1.2.5.jar 文件后，将其放入 服务端启动脚本 或 服务端文件 所在的文件夹中。</p></blockquote><ol start="4"><li>运行启动</li></ol><p>成功后会提示如下</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/07/003.png" alt="启用正版验证" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">启用正版验证</span></div></div><h3 id="客户端"><a class="markdownIt-Anchor" href="#客户端"></a> 客户端</h3><p>HMCL 3 启动器这里不讲解，主要讲 PCL 2，选择游戏版本后选择版本设置，找到如下界面，直接点击<code>设置为 LittleSkin</code>即可，回到主页面可以看到输入邮箱和密码，登录即可用。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/07/004.png" alt="客户端配置" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">客户端配置</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/07/005.png" alt="客户端连接" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">客户端连接</span></div></div><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="MC" scheme="https://blog.findingx.cc/tags/MC/"/>
    
    <category term="我的世界" scheme="https://blog.findingx.cc/tags/%E6%88%91%E7%9A%84%E4%B8%96%E7%95%8C/"/>
    
  </entry>
  
  <entry>
    <title>脆弱的意志|NOTE</title>
    <link href="https://blog.findingx.cc/2025/07/05/090905/"/>
    <id>https://blog.findingx.cc/2025/07/05/090905/</id>
    <published>2025-07-05T01:09:05.000Z</published>
    <updated>2025-07-11T01:38:06.159Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>我想我可能在抑郁症的边缘了</p><p>最近一连发生了很多事情，虽然说有些事我的问题，有些纯属巧合，通通在某一刻（或者某一天）出现时，人是会扛不住压力的。举个例子：</p><blockquote><p>就像是忙于工作一整天发现问题很棘手，排查工作需要机械性重复复杂程序，人处于高压中，加班后回家路上看着和对象的聊天记录，一整天的消息只有自己一个人，打开手机音游，声音总是卡顿，强迫重启手机依旧无用，到家后又是家人的情绪淹没了自己。</p></blockquote><p>遇到一些事之后，我便有种东西压在呼吸道的感觉，呼吸不顺畅，刷视频在搞笑的东西也是提不起嘴角。同时有一种想要结束一切的情绪，不是生命终结，而是想要让这一切事情终结，好像终结掉这些事情之后自己就能稍微好一点，可是完全不起效。即便事情过去了许多我仍然开心不起来，我不再会笑了。我吃的每样东西失去了味道，即便他是我曾经最喜欢的东西。<br />我想这应该快是抑郁症了吧，我的大脑很清醒，知道我现在情绪十分异常，这是病态的，我发现我想要试图通过看漫画，刷视频，打游戏等方式都没有办法改变，一遍又一遍的告诉自己，你有问题了，不能再这样了，需要分散注意力，做一些其他的事情。但一连几天没有任何变化。</p><p>我想，也许这是不好的回忆吧，记录这次的感受，这是生平第一次感受到极度压抑，甚至无法通过自身意志改变的经历。直到现在（其实总共算下来也就几天）我依然处于情绪低迷的状态，是真的没有办法改变，心底深处传来阵阵呼喊（原本想用哀嚎，但又没有那么严重）声。</p><p>原来有的时候，情绪真的会不可控。</p><p>以往不管上什么压力，多么心里不舒服，都能够从分散注意力的方式将自己抽离出来，一直以来我自认为抗压能力还算不差，如今也是遇到了无法战胜的敌人。我最害怕的是，我不知道这种状态会持续多久，也许一天，也许一周，可能一年。也许得遇到什么事情才会改变吧。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>小站公告|NOTE</title>
    <link href="https://blog.findingx.cc/2025/07/02/090905/"/>
    <id>https://blog.findingx.cc/2025/07/02/090905/</id>
    <published>2025-07-02T01:09:05.000Z</published>
    <updated>2025-07-17T07:05:41.998Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="这是一则公告"><a class="markdownIt-Anchor" href="#这是一则公告"></a> 这是一则公告</h2><p>在朋友们的强烈建议下，终于决定，于今日购买域名<code>findingx.cc</code>使用权 10 年，由于生效需要一段时间，不会立即迁移，未来小站将会更新域名至<code>blog.findingx.cc</code>，原域名<code>finding.is-cool.dev</code>仍会使用，并解析到<code>Git Page</code>，新域名<code>blog.findingx.cc</code>未来将解析到<code>vercel</code>镜像站，特此公告。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>ubuntu安装指纹并启用</title>
    <link href="https://blog.findingx.cc/2025/06/25/134439/"/>
    <id>https://blog.findingx.cc/2025/06/25/134439/</id>
    <published>2025-06-25T05:44:39.000Z</published>
    <updated>2025-07-11T01:38:06.133Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>给笔记本升级加装了一个指纹USB模组，型号如下图</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/007.png" alt="指纹截图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">指纹截图</span></div></div><p>上GitHub搜了一下找到了相应驱动</p><p><a target="_blank" rel="noopener" href="https://github.com/ftfpteams/focaltech-linux-fingerprint-driver">https://github.com/ftfpteams/focaltech-linux-fingerprint-driver</a></p><p>选择最新的安装即可</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/008.png" alt="指纹截图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">指纹截图</span></div></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo dpkg -i libfprint-2-2_1.94.4+tod1-0ubuntu1~22.04.2_amd64_20250219.deb</span><br></pre></td></tr></table></figure><p>安装完成进入设置-用户，就可以看到指纹模组了，录入指纹即可。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/009.png" alt="指纹截图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">指纹截图</span></div></div><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ubuntu" scheme="https://blog.findingx.cc/tags/ubuntu/"/>
    
    <category term="问题解决" scheme="https://blog.findingx.cc/tags/%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/"/>
    
    <category term="24.04" scheme="https://blog.findingx.cc/tags/24-04/"/>
    
  </entry>
  
  <entry>
    <title>解决ubuntu24引导grub磁盘丢失</title>
    <link href="https://blog.findingx.cc/2025/06/19/104139/"/>
    <id>https://blog.findingx.cc/2025/06/19/104139/</id>
    <published>2025-06-19T02:41:39.000Z</published>
    <updated>2025-07-11T01:38:06.136Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="起因"><a class="markdownIt-Anchor" href="#起因"></a> 起因</h2><p>由于想要扩容磁盘于是将系统拷贝了一份到新的磁盘中，重启发现 Ubuntu 引导 grub 无法正确指向磁盘。</p><h2 id="更新方法"><a class="markdownIt-Anchor" href="#更新方法"></a> 更新方法</h2><p>找到文件 <code>/boot/grub/grub.cfg</code></p><p>搜索到这里</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/005.png" alt="files_grub" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">files_grub</span></div></div><p>修改红框内容，参考这里的 ID</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/006.png" alt="磁盘ID" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">磁盘ID</span></div></div><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ubuntu" scheme="https://blog.findingx.cc/tags/ubuntu/"/>
    
    <category term="问题解决" scheme="https://blog.findingx.cc/tags/%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/"/>
    
    <category term="24.04" scheme="https://blog.findingx.cc/tags/24-04/"/>
    
  </entry>
  
  <entry>
    <title>Ollama使用核显跑模型</title>
    <link href="https://blog.findingx.cc/2025/06/05/152454/"/>
    <id>https://blog.findingx.cc/2025/06/05/152454/</id>
    <published>2025-06-05T07:24:54.000Z</published>
    <updated>2025-07-11T01:38:06.133Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>用 CPU 跑 AI 模型非常慢，那能否使用 CPU 的核显来跑 AI 模型加快速度呢？</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年六月五日</span></div></div></div></div></p></div><h2 id="前提"><a class="markdownIt-Anchor" href="#前提"></a> 前提</h2><p>需要升级最新的显卡驱动，可以直接去官网搜索显卡驱动</p><h2 id="下载"><a class="markdownIt-Anchor" href="#下载"></a> 下载</h2><p>我这里使用的是<a target="_blank" rel="noopener" href="https://www.modelscope.cn/models/intel/ollama/files">Ollama 英特尔优化版</a></p><p>下载压缩包文件，运行 <code>start-ollama.bat</code></p><p>打开 ollama-webui，会提示读不到版本信息，点击 close 即可</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/001.png" alt="verson" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/002.png" alt="verson" /></p><h2 id="测试"><a class="markdownIt-Anchor" href="#测试"></a> 测试</h2><p>测试一下，完美跑起来 deepseek 14b，速度相比 CPU 跑的快一点</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/003.png" alt="verson" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/06/004.png" alt="verson" /></p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ollama" scheme="https://blog.findingx.cc/tags/ollama/"/>
    
    <category term="AI" scheme="https://blog.findingx.cc/tags/AI/"/>
    
  </entry>
  
  <entry>
    <title>giteeToGithub镜像指南</title>
    <link href="https://blog.findingx.cc/2025/05/26/152454/"/>
    <id>https://blog.findingx.cc/2025/05/26/152454/</id>
    <published>2025-05-26T07:24:54.000Z</published>
    <updated>2025-07-11T01:38:06.133Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>众所周知 github 在国内的速度是不太好的，每次上传会卡很久。由于我的博客分成了好几个仓库上传，逐一上传就很麻烦，我写了个脚本批量上传，但是遇到无法连接 github 就很…</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年五月二十六日</span></div></div></div></div></p></div><h2 id="gitee-mirror"><a class="markdownIt-Anchor" href="#gitee-mirror"></a> gitee mirror</h2><blockquote><p>前提是需要绑定github账户到gitee</p></blockquote><p>打开仓库-&gt;设置-&gt;镜像</p><p>输入仓库名，还需要输入github的token，点击添加</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/05/003.png" alt="gitee_mirror" /></p><h2 id="github-token"><a class="markdownIt-Anchor" href="#github-token"></a> github token</h2><p>打开github-&gt;settings-&gt;developer settings-&gt;personal access tokens-&gt;tokens(classic)</p><p>复制 github token 即可</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/05/004.png" alt="github_token" /></p><p>当然这种方式的缺点也有，必须手动同步仓库，暂时没有找到自动同步的方法。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/05/005.png" alt="同步" /></p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="github" scheme="https://blog.findingx.cc/tags/github/"/>
    
    <category term="gitee" scheme="https://blog.findingx.cc/tags/gitee/"/>
    
  </entry>
  
  <entry>
    <title>无题|NOTE</title>
    <link href="https://blog.findingx.cc/2025/05/21/170905/"/>
    <id>https://blog.findingx.cc/2025/05/21/170905/</id>
    <published>2025-05-21T09:09:05.000Z</published>
    <updated>2025-07-11T01:38:06.159Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<近况>>></div><div class="body"><div class="line"><p>忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙忙死了  (◞‸◟)</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年五月『下旬记』</span></div></div></div></div></p></div><p>这一个月以来（特别是五一节后），毫无心思整理博客写文章，全部都在工作上，对于职业我是蛮热爱的（只是很不喜欢事情一下子全部都来找我，那样即便有三头六臂都忙不过来…，<s>当然不排除自己埋的雷，哈哈哈哈哈哈</s>），和 FAE 解 bug 的时候也学到些我们这种做终端产品接触不到的芯片内部细节，是协议层面的，没有涉及到芯片硬件。</p><p>累的时候是忙的不可开交，闲的时候也是真的闲，都是走极端…</p><h2 id="博客访问速度"><a class="markdownIt-Anchor" href="#博客访问速度"></a> 博客访问速度</h2><p>因为我的博客加了乱七八糟的特效和图片素材，再加上是 git pages，所以访问速度真的是一言难尽，我想了一些办法</p><ul><li>css,js,html压缩</li><li>图片压缩（PS直接降低分辨率）</li><li>删减无用图片</li><li>所有cdn链接全部换成国内镜像站</li><li>博客图片分开上传，图片链接选择国内镜像站（不是很喜欢使用图床，个人喜好吧）</li><li>使用cdn-css字体</li></ul><p>图片和cdn链接最为影响速度，优化之后好了非常多，依然有少数 cdn 比如 echarts ，这个插件应该是前主题使用的，我没有删除，像这样没有删除的插件都会被 hexo 编译到 html 中，我索性就删除了， echarts 的 cdn 访问非常不稳定，有时候要加载非常久，拖长了整个博客加载速度。</p><h3 id="文件加速的方法"><a class="markdownIt-Anchor" href="#文件加速的方法"></a> 文件加速的方法</h3><p>在源网址前加上<code>https://hub.gitmirror.com/</code>，例如：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://hub.gitmirror.com/raw.githubusercontent.com/用户名/仓库名/refs/heads/main/文件夹1/文件夹2/xxx.png</span><br></pre></td></tr></table></figure><h2 id="本地云盘"><a class="markdownIt-Anchor" href="#本地云盘"></a> 本地云盘</h2><p>用我那小主机搭建了 apache + php 环境，用 kodbox 弄了一个简陋云盘，以后找文件不用再一个一个盘去找了，顺便整理我那乱糟糟的文件。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/011.png" alt="kodbox云盘" /></p><p>用 zerotier 做内网穿刺，最近几天 zerotier 不稳定，有点难受。</p><h2 id="摄影两张"><a class="markdownIt-Anchor" href="#摄影两张"></a> 摄影两张</h2><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-4" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/photos/0001.jpg" alt="遗忘"/><div class="image-meta"><span class="image-caption">遗忘</span></div></div><div class="grid-cell"><img data-fancybox="gallery-4" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/photos/0002.jpg" alt="骨"/><div class="image-meta"><span class="image-caption">骨</span></div></div></div>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>树莓派64位系统安装WiringPi</title>
    <link href="https://blog.findingx.cc/2025/05/06/091156/"/>
    <id>https://blog.findingx.cc/2025/05/06/091156/</id>
    <published>2025-05-06T01:11:56.000Z</published>
    <updated>2025-07-11T01:38:06.135Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>WiringPi作者说明这个官网已经关闭，再也不能下载任何东西了 (除非有他的邮箱)。 早在2019年作者就发表一篇公开信，阐述了开源精神的困难坚持和放弃。本次总结一下树莓派64位系统安装WiringPi的方法。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年五月六日</span></div></div></div></div></p></div><h2 id="c使用gpio"><a class="markdownIt-Anchor" href="#c使用gpio"></a> C使用GPIO</h2><h3 id="-1-安装-wiringpi"><a class="markdownIt-Anchor" href="#-1-安装-wiringpi"></a> -1. 安装 WiringPi</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install wiringpi</span><br></pre></td></tr></table></figure><p><strong>尝试无效</strong></p><h3 id="0-安装-wiringpi-源码"><a class="markdownIt-Anchor" href="#0-安装-wiringpi-源码"></a> 0. 安装 WiringPi 源码</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/WiringPi/WiringPi.git</span><br><span class="line"><span class="built_in">cd</span> wiringPi</span><br></pre></td></tr></table></figure><h3 id="1-编译-wiringpi"><a class="markdownIt-Anchor" href="#1-编译-wiringpi"></a> 1. 编译 WiringPi</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">./build debian</span><br><span class="line"><span class="built_in">mv</span> debian-template/wiringpi_3.14_arm64.deb ./wiringpi_3.14_arm64.deb</span><br></pre></td></tr></table></figure><h3 id="2-安装-wiringpi-包"><a class="markdownIt-Anchor" href="#2-安装-wiringpi-包"></a> 2. 安装 WiringPi 包</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo dpkg -i wiringpi_3.14_arm64.deb</span><br></pre></td></tr></table></figure><h3 id="3-验证-wiringpi-安装"><a class="markdownIt-Anchor" href="#3-验证-wiringpi-安装"></a> 3. 验证 WiringPi 安装</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">gpio -v</span><br><span class="line">gpio readall</span><br></pre></td></tr></table></figure><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/05/001.png" alt="wiring" /></p><h2 id="python-使用gpio"><a class="markdownIt-Anchor" href="#python-使用gpio"></a> python 使用GPIO</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install python3-rpi.gpio</span><br></pre></td></tr></table></figure><h3 id="0-导入-gpio-库"><a class="markdownIt-Anchor" href="#0-导入-gpio-库"></a> 0. 导入 GPIO 库</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> RPi.GPIO <span class="keyword">as</span> GPIO</span><br></pre></td></tr></table></figure><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/05/002.png" alt="导入GPIO" /></p><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="树莓派" scheme="https://blog.findingx.cc/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/"/>
    
  </entry>
  
  <entry>
    <title>老王（）</title>
    <link href="https://blog.findingx.cc/2025/05/04/103937/"/>
    <id>https://blog.findingx.cc/2025/05/04/103937/</id>
    <published>2025-05-04T02:39:37.000Z</published>
    <updated>2025-07-11T01:38:06.136Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>五一劳动节，在家劳动的时候，想起曾经的些许事情，就这样，我想起了我中学时代的数学老师，老王（）。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年五月四日</span></div></div></div></div></p></div><p>十年前七月份的夏末，中考完，在书城里翻看高一的数学，看着那些奇奇怪怪的符号属实有些懵。高中数学是一种抽象的转变，看起来非常不适应，算了，等开学了老师教吧，总比我这闷头硬看强得多。</p><p>九月开学季，一位六旬老人走上讲台，原本少许嘈杂的教室立刻安静了下来，他在黑板上用工整的楷书写下了他的姓名，和其他的老师一样，简单的自我介绍就开始了第一堂课。</p><p>我对数学是有些喜爱的，下课便会去找老师讨论一二，有时候也会跑到办公室去，三五次后便熟悉了。</p><p>老师的办公室好像是最大的，比较宽敞，中间有个大窗户，室内非常亮堂，窗户的两侧便是办公桌，一台电脑，一摞作业，一个笔筒，一个水壶。座位前面摆放着没批改完的试卷和一支开盖的红笔，水壶里总是泡满了茶叶，茶水颜色深沉。</p><p>某个周二下午，我偶然间碰见了他，他一身白衣，在足球场中央打太极，我便跟了上去，也打了起来，后来我也跟着打了几次。后来才知道这就是24式太极拳，大一必修课。<br />“这太极要做多久才会见效”<br />“三十年”<br />点了点头，我可能也坚持不了那么久吧…</p><p>不久后分班了，我在理科班，老师不再教我数学了。我抱作业去办公室路过他的门口，看到他在和一个语文老师讨论诗词，好像是李清照？我有些惊讶.</p><p>后来才知道，他教龄30有余（2018），是我化学老师的中学老师。</p><p>他的眼中是慈祥的，按照年纪，我确应该称他为爷爷了。</p><p>如今退休了，回到了家乡，但更像是隐居了起来，我在朋友圈里还时不时看到他作的词，早些时候会署名鄱湖野老。</p><p>油尽灯枯之年，作词悲矣。</p><div class="tag-plugin reel"><div class="content"><div class="title">虞美人·晨起</div><div class="meta"><span>鄱湖野老</span></div><div class="body"><div class="main"><p>春光易逝人易老，<br />白发添多少？<br />晓来忍看镜前翁，<br />岁月犁痕满布黄土垄。</p><p>河边柳树年年绿，<br />独有人憔悴。<br />半壶浊酒置中流，<br />一任长风吹送天尽头。</p></div></div><div class="footer"></div></div></div><p>如果有机会，我想我要去拜访一下这位老者，他好似我中学时代的一盏灯，如今我已经远去，回首望去，那盏灯依旧伫立，星星点点。</p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="其他" scheme="https://blog.findingx.cc/categories/%E5%85%B6%E4%BB%96/"/>
    
    
    <category term="随笔" scheme="https://blog.findingx.cc/tags/%E9%9A%8F%E7%AC%94/"/>
    
  </entry>
  
  <entry>
    <title>磨刀不误砍柴工|NOTE</title>
    <link href="https://blog.findingx.cc/2025/04/07/233224/"/>
    <id>https://blog.findingx.cc/2025/04/07/233224/</id>
    <published>2025-04-07T15:32:24.000Z</published>
    <updated>2025-07-11T01:38:06.159Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>工欲善其事，必先利其器。最近虽然忙了点，但也是在实践中有自己的思考和感悟，也不算是机械地重复劳动。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年四月『中旬记』</span></div></div></div></div></p></div><h2 id="必先利其器"><a class="markdownIt-Anchor" href="#必先利其器"></a> 必先利其器</h2><p>电学出生，工作必然离不开示波器，MDO-2000E是相对较老的示波器了，就像大学里面的那种一样，能用但不好用，通道命名需要滚轮选择字母，常用的截图只能通过外挂U盘保存，效率非常底下。偶然间挪动示波器的时候发现背后有一个网口和 USB-TypeB 接口，这意味着他能够外接设备，必然有相应的上位机下位机。</p><p>官网一搜还真有，在 github 还有一个仓库存放源代码，还是古老的 python2.7 版本的，用conda 搭建 python2 环境还是有诸多问题，升级 python3 的时间成本有点高，只想在基本功能上加一些诸如编辑通道名称，控制示波器模式等等简易功能（毕竟公司做事搞得花里胡哨也不太好）。</p><p>经过我的一顿倒腾，使用源码成功运行了基于python2 的上位机，功能还在完善中，UI 不打算大改了，原本的 QT 能够满足一般需求。自从有了这个上位机，工作效率提升了一倍（<s>闲下来的时间可以肆无忌惮的摸鱼了</s>）。</p><p>或许就像亚伦·斯沃茨说的那样：创造力来自于把你在其他领域学到的东西应用到你工作的领域。创造力也不止于此，将不同领域的知识融会贯通就是创造力，当今的计算机也就是软硬结合的最好体现。编程思想不仅仅用于编程，他也是一种思维方式，是一种解决问题的方法。凡事技术工程，皆有其中门道，每一个问题背后都是算法的碰撞。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/010.png" alt="上位机" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">上位机</span></div></div><h2 id="阿尔卑斯即视感"><a class="markdownIt-Anchor" href="#阿尔卑斯即视感"></a> 阿尔卑斯即视感</h2><p>球拍胶套老化了，正打算换成 DIY 的（能够自己换胶套的那种），网上四处搜寻什么样的球拍好，知乎搜了一圈推荐，偶然看到有大牛画了一个拍子 3D 打印的，于是便向朋友借了打印机，由于材料颜色有限，拍柄看起来越看越像阿尔卑斯糖果（橙子味的那种）。</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-5" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/008.jpg" alt="乒乓球拍"/><div class="image-meta"><span class="image-caption">乒乓球拍</span></div></div><div class="grid-cell"><img data-fancybox="gallery-5" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/009.jpg" alt="乒乓球拍"/><div class="image-meta"><span class="image-caption">乒乓球拍</span></div></div></div><p>拍子打击球的时候和传统木制球拍不完全一样，感觉更&quot;软&quot;，声音更脆，更响，拍体有明显的震动，有点震手。</p><h2 id="服务器"><a class="markdownIt-Anchor" href="#服务器"></a> 服务器</h2><p>我已经拥有了三台服务器（<s>其实就是电脑，性能还很垃圾的那种</s>），一台 AMD-FP6，一台 联想M910X，CPU：i3-7100t，一台就是最近弄的十二代小主机。每台都是 ubuntu系统，也不知道搞这么多干啥用…一个跑AI，一个跑存储当NAS用，还有一台本来想做一个本地博客，用公网 IPV6 映射到 CF 的域名上，但是考虑到其他路由设备安全问题，暂时搁置了这个想法，等到有精力的时候再去整理他。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>易，变也|NOTE</title>
    <link href="https://blog.findingx.cc/2025/03/13/091315/"/>
    <id>https://blog.findingx.cc/2025/03/13/091315/</id>
    <published>2025-03-13T01:13:15.000Z</published>
    <updated>2025-07-11T01:38:06.158Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>半月前还在忙里忙外，PCB一旦丢给了板厂，就闲下来了（其实也没闲着，开着折腾桌面小工具了）。前段时间跟新了两篇硬件设计的文章，看了看计划列表，还有一堆没有写的，慢慢来吧，路漫漫其修远兮。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年三月十三日『中旬记』</span></div></div></div></div></p></div><h2 id="ai造轮子"><a class="markdownIt-Anchor" href="#ai造轮子"></a> AI造轮子</h2><p>工作忙的时候做BOM（物料清单，每块板子都有那么所元器件是吧，这些组成的Excel就是bom了），出了点小岔子，没有检查仔细，操作不是很利索。可是我有是很懒的人，不想多次检查，于是就有了造轮子的想法。</p><p>这个轮子的技术栈是electron-vue，github找了个基础手脚架，初学这个玩意还不是很习惯，文件太多了，比起结构树简单的c和Python（是小项目哈，小工具）多太多了，又是入口文件，又是模板文件的。但是搭建起来了就好说了，写起来刷刷刷的几个页面就写出来了。既然有了这个模子，那么创造无限，可以把之前所有自己做的小工具全部整合起来。</p><p>研究了一下allegro导出的.net文件，之前用的自带的对比工具只能查看网络连接是否有变化，现在自己做的这个工具可以封装以及电器参数是否一致，方便简单。</p><p>当然也有很多没有实现的功能，比如硬件串口功能，和sqlite数据库操作，总是输出奇奇怪怪的报错，估计是版本兼容性问题，直接放弃了，改用json格式数据和md文本来做记录，简单方便，我这数据量也不大。</p><p><s>UI十分的丑</s>，优化空间很大…</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-3" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/003.png" alt="原理图NET对比"/><div class="image-meta"><span class="image-caption">原理图NET对比</span></div></div><div class="grid-cell"><img data-fancybox="gallery-3" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/004.png" alt="AIchat"/><div class="image-meta"><span class="image-caption">AIchat</span></div></div><div class="grid-cell"><img data-fancybox="gallery-3" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/005.png" alt="备忘录"/><div class="image-meta"><span class="image-caption">备忘录</span></div></div><div class="grid-cell"><img data-fancybox="gallery-3" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/006.png" alt="串口助手"/><div class="image-meta"><span class="image-caption">串口助手</span></div></div></div><h2 id="玄学哲学"><a class="markdownIt-Anchor" href="#玄学哲学"></a> 玄学？哲学！</h2><p>我竟然看起了《易经》，有点FeSO4（匪夷所思）。说起八卦，大家或多或少想起那些个算命先生，举着牌，到处给人算卦，现代人多半是不信的，我们要科学。起初我觉得那都太假，至于易经，老实说我只是略知一二，小时候在书架上见过，和什么大学中庸的放在一块的，只是觉得奇怪，这些个宝典中怎么有个算卦的，看了看又继续埋头赶作业了。</p><p>易，变也。易经，也就是变经，一切都是变化的。</p><p>中国古代哲学我了解的不多，最多读书时候学过古代的一些哲学思想。上学的时候怎么不见得这么感兴趣，毕业之后反倒看起了哲学的书，怪哉怪哉。看了《易经》以及一些对他的解读，才知道为什么孔子会对这本讲阴阳算卦的书评价高，还专门写了《十翼》。其实中国人为人处事（应该说中华文化）样样离不开它。《易经》是哲学，不仅仅是哲学，多为各位大家丰富了《易经》，可以说《易经》中的学问，多多少少融在了我们的血液中。伏羲八卦诞生于没有文字的时代，所以《易经》是没有文字的，后人为其编撰，加上了文字，到了周文王，《易经》里已经有了六十四卦。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/007.png" alt="两仪四象八卦" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">两仪四象八卦</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="http://www.pulung.com/images/fungshu_pix18_big.jpg" alt="伏羲六十四卦方位图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">伏羲六十四卦方位图</span></div></div><h2 id="产业融入ai"><a class="markdownIt-Anchor" href="#产业融入ai"></a> 产业融入AI</h2><p>2025是AI融入产业的一年，三四年来的沉淀，在 <strong>开源</strong> deepseek发布的那一刻瞬间迸发。AI+数据的形态初见雏形。一部分文书以及重复性工作已经被AI替代了，但是AI想要进军工业领域，还需要更新迭代，或许在某一天又是涌现性的迸发。</p><p>AI想要进军工业领域不仅仅需要数据向量化和注意力机制，还需要推理的精准以及较高的灵活度，工业是不能有一丝差错的，但同样又不是死的。</p><p>2025（准确说是deepseek<strong>开源</strong>版本）发布的那一刻，是革命性的进步（能说是AI元年吗？），听说几年前各个头部企业基本都签订了限制AI发展的协议，也是害怕硅基生命替代碳基生命。AI缺失创造力，当前AI基于数据化向量化，而不是改变算法（策略），AI模型是死的，他更像是人脑神经硬件，改变算法则是改变神经链路，当然，量大了也是能够实现模拟的，中央算法调度，按需调用垂直模型，核心算法调用不同的模型，但这样落地阻碍很多，落地不是很简单。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>JTAG应用简述</title>
    <link href="https://blog.findingx.cc/2025/03/04/183838/"/>
    <id>https://blog.findingx.cc/2025/03/04/183838/</id>
    <published>2025-03-04T10:38:38.000Z</published>
    <updated>2025-07-11T01:38:06.133Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="外围电路应用"><a class="markdownIt-Anchor" href="#外围电路应用"></a> 外围电路应用</h2><ul><li><p>1.1 TMS</p><ul><li>TMS是启动使能信号（标准PAGE-11），上拉。</li></ul></li><li><p>1.2 TCK</p><ul><li>TCK是时钟信号（标准PAGE-9），上升沿或下降沿有效，可以上拉也可下拉，根据具体的器件要求选择。</li></ul></li><li><p>1.3 TDI</p><ul><li>TDI是数据输入（标准PAGE-11），上拉。</li></ul></li><li><p>1.4 TDO</p><ul><li>TDO是数据输出（标准PAGE-12），三态输出，可以和TDI做级联，上拉或浮空。</li></ul></li><li><p>1.5 TRST</p><ul><li>TRST 是复位信号（标准PAGE-13），低电平为复位状态，上拉。</li></ul></li></ul><h2 id="接口信号"><a class="markdownIt-Anchor" href="#接口信号"></a> 接口信号</h2><p>JTAG接口使用以下五个专用信号，每个支持该标准的芯片都必须提供这些信号：</p><ol><li><strong>TRST（测试复位）</strong>：这是一个测试复位输入信号，用于初始化并禁用测试接口。</li><li><strong>TCK（测试时钟）</strong>：这是测试时钟输入信号，它独立于任何系统时钟来控制测试接口的时序。TCK由控制测试的设备提供脉冲信号，而不是由被测试设备提供。它可以以任何频率（最高可达几兆赫兹）产生脉冲，甚至可以以不同的速率产生脉冲。</li><li><strong>TMS（测试模式选择）</strong>：这是测试模式选择输入信号，用于控制测试接口状态机的状态转换。</li><li><strong>TDI（测试数据输入）</strong>：这是测试数据输入线，用于向JTAG寄存器（边界扫描寄存器、指令寄存器或其他数据寄存器）提供数据。</li><li><strong>TDO（测试数据输出）</strong>：这是测试数据输出线，用于将JTAG寄存器中的数据以串行方式输出到控制测试的设备。它携带从边界扫描链（或其他JTAG寄存器）采样的值，并将这些值传输到串行测试电路中的下一个芯片。</li></ol><p>在一块包含多个支持JTAG芯片的电路板上，测试电路的常见连接方式是将TRST*、TCK和TMS信号并行连接到每个芯片上，并将一个芯片的TDO连接到下一个芯片的TDI，形成一个单环结构。这样，电路板就呈现出一个具有上述五个相同信号的单一测试接口。对于只有少数几个带有JTAG接口芯片的电路板，一种更简单的布置方式是为每个这样的芯片提供一个JTAG测试端口，并独立控制测试。</p><h2 id="jtag功能边界扫描"><a class="markdownIt-Anchor" href="#jtag功能边界扫描"></a> JTAG功能——边界扫描</h2><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/03/jtag-arch-large.png" alt="接口示意图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">接口示意图</span></div></div><p>JTAG总线可以连接多个设备，每个设备都有JTAG总线接口，每个设备都有自己的ID码和寄存器。可以通过总线相连，一次扫描多个设备。</p><p>再来看每个芯片，内部扫描器连接所有的GPIO寄存器，可以控制GPIO电平状态，写入数据，读取数据。</p><p>利用这个特性，我们可以主动拉高某个GPIO，然后读取其他GPIO的电平状态，如果其他GPIO电平发生了变化，则可以判断出GPIO是否连锡。通过一定的算法，可以实现对所有芯片的所有GPIO进行扫描，判断一批板子的连接情况。</p><blockquote><p>其实网上那些廉价盗版的JTAG调试器基本都没有这个功能，而且这种调试器硬件成本比其售价要低不少，自己动动手也能做一个功能非常简单的调试器。</p></blockquote><hr /><blockquote><p>想要深入了解内部工作原理的话，可以参考以下文章：<a target="_blank" rel="noopener" href="https://web.archive.org/web/20110713022446/http://www.inaccessnetworks.com/ian/projects/ianjtag/jtag-intro/jtag-intro.html">A Brief Introduction to the JTAG Boundary Scan Interface —— Nick Patavalis</a></p></blockquote><h2 id="jtag协议的状态机tap控制器"><a class="markdownIt-Anchor" href="#jtag协议的状态机tap控制器"></a> JTAG协议的状态机（TAP控制器）</h2><p>JTAG协议工作的基本逻辑全依赖内部的TAP控制器（Test Access Port），其实就是一个状态机，通过TMS信号来切换不同的状态。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/03/002.png" alt="接口示意图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">接口示意图</span></div></div><h3 id="test-logic-reset-测试逻辑复位状态"><a class="markdownIt-Anchor" href="#test-logic-reset-测试逻辑复位状态"></a> Test-Logic-Reset 测试逻辑复位状态</h3><ul><li>处于这种状态下，测试逻辑被禁止以允许芯片正常操作，读 IDCODE 寄存器将禁止测试逻辑。</li><li>无论 TAP 控制器处于何种状态，只要将 TMS 信号在 5 个连续的 TCK 信号的上升沿保持高电平，TAP 就将进入 Test-Logic-Reset 状态。如果 TMS 信号一直为高电平，那么 TAP 将保持在 Test-Logic-Reset 状态。另外，TRST 信号也可以强迫 TAP 进入 Test-Logic-Reset 状态。</li><li>处于 Test-Logic-Reset 状态的 TAP，如果下一个 TCK 的上升沿时 TMS 信号处于低电平，那么 TAP 将被切换到 Run-Test-Idle 状态。</li></ul><h3 id="run-test-idle-运行测试空闲状态"><a class="markdownIt-Anchor" href="#run-test-idle-运行测试空闲状态"></a> Run-Test-Idle 运行测试空闲状态</h3><ul><li>Run-Test-Idle 是 TAP 控制器扫描操作空闲状态。如果 TMS 信号一直处于低电平，那么 TAP 将保持在 Run-Test-Idle 状态。</li><li>当 TMS 信号在 TCK 上升沿处于高电平，TAP 控制器将进入 Select-DR-Scan 状态。</li></ul><h3 id="select-dr-scan-选择数据寄存器扫描状态"><a class="markdownIt-Anchor" href="#select-dr-scan-选择数据寄存器扫描状态"></a> Select-DR-Scan 选择数据寄存器扫描状态</h3><ul><li>Select-DR-Scan 是 TAP 控制器的一个临时状态，边界扫描寄存器 BSR 保持它们先前的状态。</li><li>当 TMS 信号在下一个 TCK 上升沿处于低电平，TAP 控制器进入 Capture-DR 状态，一个边界扫描寄存器的扫描操作同时被初始化。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 控制器将进入 Select-IR-Scan 状态。</li></ul><h3 id="capture-dr-捕获数据寄存器状态"><a class="markdownIt-Anchor" href="#capture-dr-捕获数据寄存器状态"></a> Capture-DR 捕获数据寄存器状态</h3><ul><li>如果 TAP 控制器处于 Capture-DR 状态，且当前指令是 SAMPLE/PRELOAD 指令，那么边界扫描寄存器 BSR 在 TCK 信号的上升沿捕获输入管脚的数据。如果此时不是 SAMPLE/PRELOAD 指令，那么 BSR 保持它们先前的值。另外，BSR 的值被放入连接在 TDI 和 TDO 管脚之间的移位寄存器中。</li><li>处于 Capture-DR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Exit1-DR 状态。如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 进入 Shift-DR 状态。</li></ul><h3 id="shift-dr-移位数据寄存器状态"><a class="markdownIt-Anchor" href="#shift-dr-移位数据寄存器状态"></a> Shift-DR 移位数据寄存器状态</h3><ul><li>在 Shift-DR 状态下，在每个 TCK 的上升沿，TDI - 移位寄存器 - TDO 串行通道向右移一位，TDI 的数据移入移位寄存器，移位寄存器最靠近 TDO 的位移到 TDO 管脚上。</li><li>处于 Shift-DR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Exit1-DR 状态。如果 TMS 信号处于低电平，则 TAP 一直进行移位操作。</li></ul><h3 id="exit1-dr-退出数据寄存器状态-1"><a class="markdownIt-Anchor" href="#exit1-dr-退出数据寄存器状态-1"></a> Exit1-DR 退出数据寄存器状态 1</h3><ul><li>Exit1-DR 是 TAP 控制器的一个临时状态。如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Update-DR 状态；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 进入 Pause-DR 状态。</li><li>处于 Exit1-DR 状态时，指令不会被改变。</li></ul><h3 id="pause-dr-暂停数据寄存器状态"><a class="markdownIt-Anchor" href="#pause-dr-暂停数据寄存器状态"></a> Pause-DR 暂停数据寄存器状态</h3><ul><li>Pause-DR 状态允许 TAP 控制器暂时停止 TDI - 移位寄存器 - TDO 串行通道的移位操作。</li><li>处于 Pause-DR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Exit2-DR 状态；如果 TMS 信号处于低电平，则 TAP 一直保持暂停状态。</li></ul><h3 id="exit2-dr-退出数据寄存器状态-2"><a class="markdownIt-Anchor" href="#exit2-dr-退出数据寄存器状态-2"></a> Exit2-DR 退出数据寄存器状态 2</h3><ul><li>Exit2-DR 也是 TAP 控制器的临时状态。如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Update-DR 状态，结束扫描操作；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 重新进入 Shift-DR 状态。</li><li>处于 Exit2-DR 状态时，指令不会被改变。</li></ul><h3 id="update-dr-更新数据寄存器状态"><a class="markdownIt-Anchor" href="#update-dr-更新数据寄存器状态"></a> Update-DR 更新数据寄存器状态</h3><ul><li>在正常情况下，边界扫描寄存器 BSR 的值是被锁存在并行输出管脚中，以免在 EXTEST 或 SAMPLE/PRELOAD 命令下执行移位操作时改变 BSR 的值。当处于 Update-DR 状态时选择的是 BSR 寄存器，那么移位寄存器中的值将在 TCK 的下降沿被锁存到 BSR 寄存器的并行输出管脚中去。</li><li>处于 Update-DR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Select-DR-Scan 状态；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 进入 Run-Test-Idle 状态。</li></ul><h3 id="select-ir-scan-选择指令寄存器扫描状态"><a class="markdownIt-Anchor" href="#select-ir-scan-选择指令寄存器扫描状态"></a> Select-IR-Scan 选择指令寄存器扫描状态</h3><ul><li>Select-IR-Scan 是 TAP 控制器的一个临时状态。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于低电平，TAP 控制器进入 Capture-IR 状态，一个对指令寄存器的扫描操作同时被初始化。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 控制器将进入 Test-Logic-Reset 状态。</li><li>处于 Select-IR-Scan 状态时，指令不会被改变。</li></ul><h3 id="capture-ir-捕获指令寄存器状态"><a class="markdownIt-Anchor" href="#capture-ir-捕获指令寄存器状态"></a> Capture-IR 捕获指令寄存器状态</h3><ul><li>处于 Capture-IR 状态时，指令寄存器中的值被固定设置成 0b0000001，并将它放入连接在 TDI 与 TDO 之间的移位寄存器中。</li><li>处于 Capture-IR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Exit1-IR 状态；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 进入 Shift-IR 状态。</li></ul><h3 id="shift-ir-移位指令寄存器状态"><a class="markdownIt-Anchor" href="#shift-ir-移位指令寄存器状态"></a> Shift-IR 移位指令寄存器状态</h3><ul><li>在 Shift-IR 状态下，在每个 TCK 的上升沿，TDI - 移位寄存器 - TDO 串行通道向右移一位，JTAG 指令从 TDI 管脚上被逐位移入移位寄存器，而移位寄存器中的 0b0000001 则被逐位从 TDO 管脚移出。</li><li>处于 Shift-IR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Exit1-IR 状态；如果 TMS 信号处于低电平，则 TAP 一直进行移位操作。</li></ul><h3 id="exit1-ir-退出指令寄存器状态-1"><a class="markdownIt-Anchor" href="#exit1-ir-退出指令寄存器状态-1"></a> Exit1-IR 退出指令寄存器状态 1</h3><ul><li>Exit1-IR 是 TAP 控制器的一个临时状态。如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Update-IR 状态；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 进入 Pause-IR 状态。</li><li>处于 Exit1-IR 状态时，指令不会被改变。</li></ul><h3 id="pause-ir-暂停指令寄存器状态"><a class="markdownIt-Anchor" href="#pause-ir-暂停指令寄存器状态"></a> Pause-IR 暂停指令寄存器状态</h3><ul><li>Pause-IR 状态允许 TAP 控制器暂时停止 TDI - 移位寄存器 - TDO 串行通道的移位操作。</li><li>处于 Pause-IR 状态时，指令不会被改变。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Exit2-IR 状态；如果 TMS 信号处于低电平，则 TAP 一直处于暂停状态。</li></ul><h3 id="exit2-ir-退出指令寄存器状态-2"><a class="markdownIt-Anchor" href="#exit2-ir-退出指令寄存器状态-2"></a> Exit2-IR 退出指令寄存器状态 2</h3><ul><li>Exit2-IR 也是 TAP 控制器的临时状态。如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Update-IR 状态，结束扫描操作；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 重新进入 Shift-IR 状态。</li><li>处于 Exit2-IR 状态时，指令不会被改变。</li></ul><h3 id="update-ir-更新指令寄存器状态"><a class="markdownIt-Anchor" href="#update-ir-更新指令寄存器状态"></a> Update-IR 更新指令寄存器状态</h3><ul><li>处于 Update-IR 状态时，移位寄存器中的值将在 TCK 的下降沿被锁存到指令寄存器中，一旦锁存成功，新的指令将成为当前的指令。</li><li>如果 TMS 信号在下一个 TCK 上升沿处于高电平，TAP 进入 Select-DR-Scan 状态；如果 TMS 信号在下一个 TCK 上升沿处于低电平，则 TAP 进入 Run-Test-Idle 状态。</li></ul><h3 id="jtag-接口指令集"><a class="markdownIt-Anchor" href="#jtag-接口指令集"></a> JTAG 接口指令集</h3><p>JTAG 接口指令集包含以下常用指令：</p><h4 id="extest-指令"><a class="markdownIt-Anchor" href="#extest-指令"></a> EXTEST 指令</h4><ul><li>外部测试指令，必须全为 0，TAP 强制定义。该指令初始化外部电路测试，主要用于板级互连以及片外电路测试。</li><li>EXTEST 指令在 Shift-DR 状态时将扫描寄存器 BSR 寄存器连接到 TDI 与 TDO 之间。在 Capture-DR 状态时，EXTEST 指令将输入管脚的状态在 TCK 的上升沿装入 BSR 中。EXTEST 指令从不使用移入 BSR 中的输入锁存器中的数据，而是直接从管脚上捕获数据。在 Update-DR 状态时，EXTEST 指令将锁存在并行输出寄存器单元中的数据在 TCK 的下降沿驱动到对应的输出管脚上去。</li></ul><h4 id="samplepreload-指令"><a class="markdownIt-Anchor" href="#samplepreload-指令"></a> SAMPLE/PRELOAD 指令</h4><ul><li>采样/预装载指令，TAP 强制定义。在 Capture-DR 状态下，SAMPLE/PRELOAD 指令提供一个从管脚到片上系统逻辑的数据流快照，快照在 TCK 的上升沿提取。</li><li>在 Update-DR 状态时，SAMPLE/PRELOAD 指令将 BSR 寄存器单元中的数据锁存到并行输出寄存器单元中，然后由 EXTEST 指令将锁存在并行输出寄存器单元中的数据在 TCK 的下降沿驱动到对应的输出管脚上去。</li></ul><h4 id="bypass-指令"><a class="markdownIt-Anchor" href="#bypass-指令"></a> BYPASS 指令</h4><ul><li>旁路指令，必须全为 1，TAP 强制定义。BYPASS 指令通过在 TDI 和 TDO 之间放置一个 1 位的旁通寄存器，这样移位操作时只经过 1 位的旁通寄存器而不是很多位（与管脚数量相当）的边界扫描寄存器 BSR，从而使得对连接在同一 JTAG 链上主 CPU 之外的其他芯片进行测试时提高效率。</li></ul><h4 id="idcode-指令"><a class="markdownIt-Anchor" href="#idcode-指令"></a> IDCODE 指令</h4><ul><li>读取 CPU ID 号指令，TAP 强制定义。该指令将处理器的 ID 号寄存器连接到 TDI 和 TDO 之间。</li></ul><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>一般我们应用只需要记住上下拉电阻即可，内部对于我们来说更像是黑匣子。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/whik1194/article/details/125984568">强大的JTAG边界扫描（1）：基本原理介绍「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_42605300/article/details/121216605">JTAG接口电路上下拉 应用「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://web.archive.org/web/20110713022446/http://www.inaccessnetworks.com/ian/projects/ianjtag/jtag-intro/jtag-intro.html">A Brief Introduction to the JTAG Boundary Scan Interface —— Nick Patavalis</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="JTAG" scheme="https://blog.findingx.cc/tags/JTAG/"/>
    
  </entry>
  
  <entry>
    <title>解决ubuntu24频繁死机</title>
    <link href="https://blog.findingx.cc/2025/02/28/104139/"/>
    <id>https://blog.findingx.cc/2025/02/28/104139/</id>
    <published>2025-02-28T02:41:39.000Z</published>
    <updated>2025-07-11T01:38:06.136Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>ubuntu频繁死机，只要同时开启qq和edge就会卡死，手动清除内存占用无果。但发现了端倪，交换空间太小了只有2GB。于是开始尝试扩容，扩容后解决问题。</p><p>可能由于当前版本是从ubuntu18.04升级上来的，swap空间没有扩大。</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 关闭所有交换空间，-a 选项表示关闭所有已启用的交换空间</span></span><br><span class="line">sudo swapoff -a</span><br><span class="line"><span class="comment"># 显示当前系统中已启用的交换空间信息</span></span><br><span class="line">sudo swapon --show</span><br><span class="line"><span class="comment"># 删除当前的交换文件 /swapfile</span></span><br><span class="line">sudo <span class="built_in">rm</span> /swapfile</span><br><span class="line"><span class="comment"># 创建一个新的 16GB 大小的交换文件 /swapfile</span></span><br><span class="line">sudo fallocate -l 16G /swapfile</span><br><span class="line"><span class="comment"># 设置交换文件的权限为 600，即只有文件所有者有读写权限</span></span><br><span class="line">sudo <span class="built_in">chmod</span> 600 /swapfile</span><br><span class="line"><span class="comment"># 将指定的文件 /swapfile 格式化为交换空间</span></span><br><span class="line">sudo mkswap /swapfile</span><br><span class="line"><span class="comment"># 启用指定的交换文件 /swapfile</span></span><br><span class="line">sudo swapon /swapfile</span><br><span class="line"><span class="comment"># 再次显示当前系统中已启用的交换空间信息</span></span><br><span class="line">sudo swapon --show</span><br><span class="line"><span class="comment"># 以人类可读的格式显示系统的内存使用情况，包括物理内存和交换空间</span></span><br><span class="line">free -h</span><br></pre></td></tr></table></figure><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/02/005.png" alt="资源监控器" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">资源监控器</span></div></div><!-- ## _还没写完.._ --><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/sunyuhua_keyboard/article/details/142485764">「CSDN」ubuntu24.04 怎么调整swap分区的大小，调整为16G</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ubuntu" scheme="https://blog.findingx.cc/tags/ubuntu/"/>
    
    <category term="问题解决" scheme="https://blog.findingx.cc/tags/%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/"/>
    
    <category term="24.04" scheme="https://blog.findingx.cc/tags/24-04/"/>
    
  </entry>
  
  <entry>
    <title>外围电路设计--晶振电路</title>
    <link href="https://blog.findingx.cc/2025/02/22/164406/"/>
    <id>https://blog.findingx.cc/2025/02/22/164406/</id>
    <published>2025-02-22T08:44:06.000Z</published>
    <updated>2025-07-11T01:38:06.134Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="是什么"><a class="markdownIt-Anchor" href="#是什么"></a> 是什么</h2><blockquote><p>什么叫做晶振</p></blockquote><p>晶振是石英晶体谐振器（quartz crystal oscillator）的简称。晶振原理是通过压电效应产生波形。</p><h2 id="在芯片中"><a class="markdownIt-Anchor" href="#在芯片中"></a> 在芯片中</h2><blockquote><p>芯片如何接受外部时钟信号？</p></blockquote><p>这是一个<code>皮尔斯振荡器</code>，芯片内部由他接收信号，将接收到的晶振信号转换成芯片内部能够识别的方波。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/02/004.png" alt="晶体连接方式及器件参数" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">晶体连接方式及器件参数</span></div></div><p>其中电阻以上是芯片内部电路，电阻以下（包括电阻）是晶振外部电路，也就是单片机最小系统的晶振电路部分。</p><p>它实际量出来的波形是频率固定的正弦波。</p><h2 id="计算"><a class="markdownIt-Anchor" href="#计算"></a> 计算</h2><p>负载电容计算公式如下：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>C</mi><mi>L</mi><mo>=</mo><mi>C</mi><mn>1</mn><mo>∗</mo><mi>C</mi><mn>2</mn><mi mathvariant="normal">/</mi><mo stretchy="false">(</mo><mi>C</mi><mn>1</mn><mo>+</mo><mi>C</mi><mn>2</mn><mo stretchy="false">)</mo><mo>+</mo><mi>C</mi><mi>S</mi></mrow><annotation encoding="application/x-tex">CL = C1*C2 / (C1+C2) + CS</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault">L</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord">2</span><span class="mord">/</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord">2</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault" style="margin-right:0.05764em;">S</span></span></span></span></span></p><p>CS为电路板的寄生电容，一般取 3~5pF，取C1 = C2，那么公式可以简化成如下：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>C</mi><mi>L</mi><mo>=</mo><mi>C</mi><mn>1</mn><mi mathvariant="normal">/</mi><mn>2</mn><mo>+</mo><mi>C</mi><mi>S</mi></mrow><annotation encoding="application/x-tex">CL = C1 / 2 + CS</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault">L</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord">1</span><span class="mord">/</span><span class="mord">2</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault" style="margin-right:0.05764em;">S</span></span></span></span></span></p><h2 id="使用"><a class="markdownIt-Anchor" href="#使用"></a> 使用</h2><p>对于我们做方案来说，一般直接获取芯片厂商给的参考图按照要求。芯片厂商已经多次测试投入量产使用，所以一般直接拿图就可以了。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>水一篇文章，晶振其实也不多，实际应用一般拿来即用，除非你是做芯片设计的或者是其他方面需要详细计算参数，一般直接用即可。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/420077606">「知乎」深入解析：单片机晶振脚原理是什么？</a></li><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/530018592">「知乎」皮尔斯振荡器电路工作原理图解，几分钟，立马搞定皮尔斯震荡电路</a></li><li><a href="">「CSDN」</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="技术文章" scheme="https://blog.findingx.cc/tags/%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0/"/>
    
  </entry>
  
  <entry>
    <title>时代的曙光|NOTE</title>
    <link href="https://blog.findingx.cc/2025/02/15/152853/"/>
    <id>https://blog.findingx.cc/2025/02/15/152853/</id>
    <published>2025-02-15T07:28:53.000Z</published>
    <updated>2025-07-11T01:38:06.158Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>上一次写note还是在2025-01-14，一晃一个月过去了，总算闲下来。回顾一下这一个月的事情。（半月一月一更应该不叫weeknote了…</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年二月十五日『上旬记』</span></div></div></div></div></p></div><h2 id="博客"><a class="markdownIt-Anchor" href="#博客"></a> 博客</h2><p>最近打算在本地服务器搭建Halo，通过内网穿刺映射到公网。没成想内网穿刺需要域名备案，懒得搞暂时搁置吧。<a target="_blank" rel="noopener" href="https://blog.liushen.fun/">飞扬老哥</a>建议用airtalk，网上没看到有airtalk+vercel部署，但是有Waline+Vercel，加上之前搭建了一半（就差域名解析了）。目前算是迁移成功，但是没有弄邮件反馈，可能评论的朋友收不到回信反馈了。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/001.png" data-fancybox="true"/></div></div><h2 id="语言模型-deepseek"><a class="markdownIt-Anchor" href="#语言模型-deepseek"></a> 语言模型 Deepseek</h2><p>deepseek 的横空出世带来了极大的影响，下载使用 ollama + deepseekr-r1:8b 模型和 1.5b 模型，效果确实不错。先是测试了 deepseekr-r1:8b 在 lunar lake 16G（CPU Intel® Core™ Ultra 5 226V）运行，效果理想，速度没做具体测试，与（i5-1240P+DDR5-8G）相比感觉 lunar lake 快，可能是CPU更加牛了，或者是 DDR 和 CPU 很近导致的。上述都没有用核显，都是 CPU 运行。</p><p>同样在OnePlus 7Pro上，deepseekr-r1:1.5b 运行效果一般，机器发热，速度比较慢一秒4个token左右。</p><p>deepseek的出现并没有解决了白泽没找到适配语言模型的问题，毕竟发热严重，在低配置芯片速度慢，内存要求高。目前RK3399的NPU只做了视觉方面的适配，如果要做语言模型可能要适配算子，差不多按照参考造个轮子出来。而且deepseek是全功能型，有部分功能可能不需要，可以阉割掉。</p><p>有个 UP 主<code>四叔</code>用 deepseek 写小说，发现deepseek确实能写出惊艳的词藻的提取文章精华的能力，但是在创作上仍然没有人类做得好，他能够细致入微地描述事物，但是写作时缺乏把握故事节奏的能力。</p><p>可以说 deepseek 是一个非常好的总结高手，提炼高手，他能够在现有的海量数据中提取分析总结推算，创新仍然有待提高。</p><h2 id="数据之美"><a class="markdownIt-Anchor" href="#数据之美"></a> 数据之美</h2><p>今天倒腾 mysql 的时候突然想到在哪里听过<code>数据之美</code>这个词，好像是哪位大佬的博客，有提到 AI + 数据的产品形态，我想大致就是知识库吧。当 AI 接入数据后，他能够提取分析数据，存储到数据库，然后下次提问时，AI 能够从数据库中提取答案，或者主动上传数据库，AI回答问题调用数据库即可。这种形态可以形成一种服务业产品，各行各业技术知识错综复杂，如果能够整理出这样一个知识体系，那么不论是专业还是非专业，在工作中可以更好的接轨，嵌入式软件工程师无需对每个IC引脚能够配置的参数了如指掌，硬件工程师也无需像嵌入式工程师对接哪个可以配置输入输出。问问接入数据库的deepseek就知道了，这样的 AI 助理节约了不少时间，能都提高效率。</p><p>终归来说，语言模型从量变达到了质变，deepseek目前来看足够聪明。设想一下，世界上各行各业的人才都制作一份自己行业的知识库，整体汇总起来，接入deepseek这样的语言模型，利用deepseek这样强大的整理总结提取能力，能够实现一个无所不知的AI助理。就像是一个能说话的《银河百科全书》。deepseek 确是一个重量级模型，很快 deepseek 将在一道道曙光下越来越暗淡。</p><p>人工智能缺什么，思维，创新，当下阶段的AI仅仅是一个助力，分析总结，简单的解决问题，终归是在模仿人类行为，就像是一个接口，把人类说的话接到电脑中，理解并处理，给与反馈。</p><h2 id="新设备"><a class="markdownIt-Anchor" href="#新设备"></a> 新设备</h2><p>非常好，手机又坏了。入手一部Redmi Note 14 Pro，用几年过度吧。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/weeknote/002.png" data-fancybox="true"/></div></div><p>为什么说是过度呢，有了解AR行业的会听说这个IC：骁龙AR2，这是个分体式IC，一半在眼镜，一半在手机，未来几年很有可能会往这方面发展，许多AR眼镜厂商没有自己研发手机的实力，于是就有了各种盒子，比如我自己买的雷鸟Air Plus 有配套的盒子，其实本质上就是简单的安卓设备，猜测可能是代工厂设计的。而有了骁龙AR2，手机厂商和眼镜厂商分别用分体式IC，可以将眼镜上的部分算力分担到手机上，这样能减少不少功耗。</p><p>另一个就是移动办公，眼镜是没办法替代笔记本，但不代表笔记本不能做小，笔记本做小了比如盒子（mac mini）或者掌上电脑（树莓派类），移动办公变成了可能，眼镜替代屏幕，而且投影视角非常广，就是随身携带一个大屏幕。</p><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>这是一个最好的时代,这是一个最坏的时代。AI迭代飞速，人类科技进步指数级上升，2007年iphone第一代机型横空出世，18年后的今天智能手机已经非常普及，AI从2017年提出 transformer 概念，到现在deepseek，也就短短七八年的时间。节奏越来越快，几天一个新变化，越来越难以预判未来走势了。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><details class="tag-plugin colorful folding" ><summary><span>问AI：AI迭代飞速，这个时代也好，也坏，好在那里坏在哪里？</span></summary><div class="body"><p>deepseek-r1:8b：</p><blockquote><p>think：<br />嗯，用户问的是“AI迭代飞速，这个时代也好，也坏，好在那里坏在哪里？”看起来他们想了解AI快速发展的利弊。首先，我得分析<br />AI带来的好处，比如技术进步、效率提升、创造力增强，还有对医疗和教育的影响。</p><p>然后，考虑到负面影响，比如失业问题，特别是蓝领工人可能受影响更多，这也是一个重要的问题。此外，隐私和数据安全也是大家<br />关心的点。还有伦理问题，比如算法歧视，这个确实值得深入讨论。</p><p>用户可能想知道AI发展带来的机遇与挑战，以及这些变化对普通人生活有什么具体影响。或许他们也在担心未来会不会失业，或者数<br />据安全怎么办。此外，他们可能也对AI如何改变工作方式和社会结构有疑问。</p><p>所以，在回答时，我需要全面地涵盖这些方面，同时给出一些未来的展望，比如技术融合的趋势，以及人机协作的重要性。这样不仅<br />能帮助用户理解现状，也能让他们对未来有所预期。</p></blockquote><blockquote><p>AI的快速迭代确实带来了前所未有的变革，这个时代既充满了机遇，也伴随着挑战。以下是一些可能的分析：</p><h3 id="好的方面好处"><a class="markdownIt-Anchor" href="#好的方面好处"></a> <strong>好的方面（好处）</strong>：</h3><ol><li><p><strong>技术进步与效率提升</strong>：<br />AI在多个领域推动了巨大的效率提升，例如自动化生产线、智能客服系统、自动驾驶技术等。这使得工作流程更加高效，资源利<br />用更充分。</p></li><li><p><strong>创造力与创新</strong>：<br />AI不仅能够执行重复性任务，还能通过学习和分析数据产生新的想法。例如，AI生成的艺术作品和音乐已经开始影响艺术领域，<br />推动了传统创作方式的变革。</p></li><li><p><strong>医疗与教育的进步</strong>：<br />在医疗领域，AI可以辅助诊断、优化治疗方案；在教育中，个性化教学计划和学习资源的提供让学生能够更有效地掌握知识。</p></li><li><p><strong>社会福利与生活质量</strong>：<br />AI技术可以帮助解决一些社会问题，例如智能城市管理、老年人的监护等，从而提高生活质量。</p></li><li><p><strong>全球经济发展</strong>：<br />China作为AI领域的一个领导者，其快速发展推动了经济增长，并为全球经济贡献了一部分力量。</p></li></ol><h3 id="坏的方面挑战"><a class="markdownIt-Anchor" href="#坏的方面挑战"></a> <strong>坏的方面（挑战）</strong>：</h3><ol><li><p><strong>就业问题</strong>：<br />AI技术可能导致大量传统行业的岗位被取代，例如制造业、客服行业等。虽然AI也创造了新的职业机会，但转型和适应可能带来<br />失业风险，尤其是对低技能劳动者的影响更为显著。</p></li><li><p><strong>隐私与数据安全</strong>：<br />随着AI应用的普及，用户的数据被广泛收集和使用，这引发了严重的隐私和数据安全问题。例如，不同国家对于数据保护法规有<br />不同的标准，可能导致信息泄露和滥用。</p></li><li><p><strong>伦理与道德问题</strong>：<br />AI系统可能会面临伦理决策的问题，比如自动驾驶汽车在紧急情况下如何选择最优解决方案、AI算法是否存在偏见等。这些问题<br />需要社会共同努力来解决。</p></li><li><p><strong>技术垄断与集中化</strong>：<br />一些大公司占据了AI技术的主导地位，这可能导致技术资源的不平等分配，形成“winner-takes-all”的情况，进而加剧社会不<br />平等。</p></li><li><p><strong>人与机关系的变化</strong>：<br />AI的普及可能改变人类与机械的互动方式，甚至影响人类的情感和心理健康。例如，如果AI能够模仿人类情感交流，那么人们可<br />能会面临情感依赖或孤独问题。</p></li></ol><h3 id="未来展望"><a class="markdownIt-Anchor" href="#未来展望"></a> <strong>未来展望</strong>：</h3><p>AI的快速迭代不仅带来了技术进步，也促使人类社会进行深刻的思考。为了应对这一变革，我们需要在以下几个方面努力：</p><ul><li>制定和完善相关法律法规，保护用户隐私和数据安全。</li><li>推动技术伦理教育，让AI系统能够以道德为基础运作。</li><li>帮助人们适应变化，提供职业转型支持，减少就业对传统行业的冲击。</li><li>加强人机协作，充分发挥人类的创造力和决策能力。</li></ul><p>总之，AI带来的变革既是机遇也是挑战。关键在于如何平衡技术创新与社会公平，确保技术进步能够惠及更多人，推动社会整体发展<br />。</p></blockquote></div></details>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>搭建简易ollama服务的PHP聊天页面</title>
    <link href="https://blog.findingx.cc/2025/02/07/110203/"/>
    <id>https://blog.findingx.cc/2025/02/07/110203/</id>
    <published>2025-02-07T03:02:03.000Z</published>
    <updated>2025-07-11T01:38:06.135Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>搜了一圈 github 没有发现基于 PHP 链接 ollama 的项目，大多用 webui （基于docker）或者浏览器插件搞定，于是任务抛给 deepseek，写了个基础页面出来。前面是安装教程后面是代码，我服务器是 php8.2 + brew httpd server。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年二月八日</span></div></div></div></div></p></div><h2 id="安装-ollama"><a class="markdownIt-Anchor" href="#安装-ollama"></a> 安装 ollama</h2><p><a target="_blank" rel="noopener" href="https://ollama.com/download">🔗ollama 下载</a></p><p>双击安装</p><h2 id="下载模型"><a class="markdownIt-Anchor" href="#下载模型"></a> 下载模型</h2><p>macos 下只需shell 输入</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ollama run deepseek-r1:8b</span><br></pre></td></tr></table></figure><p>就会自动下载模型，速度慢下来了可以用<code>Ctrl</code>+<code>C</code>中断然后重新 run 一次。</p><h2 id="增加httpd-timeout-时间"><a class="markdownIt-Anchor" href="#增加httpd-timeout-时间"></a> 增加httpd timeout 时间</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /usr/local/etc/httpd/extra/httpd-default.conf</span><br></pre></td></tr></table></figure><p>找到超时设置Timeout 15，时长增加到600</p><h2 id="php-code"><a class="markdownIt-Anchor" href="#php-code"></a> PHP code</h2><p>那么压力给到本地deepseek，输出代码经过修正如下：</p><details class="tag-plugin colorful folding" ><summary><span>PHP_code</span></summary><div class="body"><figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&lt;?php</span></span><br><span class="line"><span class="comment">// 处理AI对话请求</span></span><br><span class="line"><span class="keyword">if</span> (<span class="variable">$_SERVER</span>[<span class="string">&#x27;REQUEST_METHOD&#x27;</span>] === <span class="string">&#x27;POST&#x27;</span> &amp;&amp; <span class="keyword">isset</span>(<span class="variable">$_POST</span>[<span class="string">&#x27;message&#x27;</span>])) &#123;</span><br><span class="line">    <span class="title function_ invoke__">header</span>(<span class="string">&#x27;Content-Type: application/json&#x27;</span>);</span><br><span class="line"></span><br><span class="line">    <span class="variable">$userMessage</span> = <span class="variable">$_POST</span>[<span class="string">&#x27;message&#x27;</span>];</span><br><span class="line"></span><br><span class="line">    <span class="comment">// Ollama API配置</span></span><br><span class="line">    <span class="variable">$ollamaUrl</span> = <span class="string">&#x27;http://localhost:11434/api/generate&#x27;</span>;</span><br><span class="line">    <span class="variable">$requestData</span> = [</span><br><span class="line">        <span class="string">&#x27;model&#x27;</span> =&gt; <span class="string">&#x27;deepseek-r1:1.5b&#x27;</span>,</span><br><span class="line">        <span class="comment">// &#x27;model&#x27; =&gt; &#x27;deepseek-r1:8b&#x27;,</span></span><br><span class="line">        <span class="string">&#x27;prompt&#x27;</span> =&gt; <span class="variable">$userMessage</span>,</span><br><span class="line">        <span class="string">&#x27;stream&#x27;</span> =&gt; <span class="literal">false</span></span><br><span class="line">    ];</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 发起API请求</span></span><br><span class="line">    <span class="variable">$ch</span> = <span class="title function_ invoke__">curl_init</span>(<span class="variable">$ollamaUrl</span>);</span><br><span class="line">    <span class="title function_ invoke__">curl_setopt</span>(<span class="variable">$ch</span>, CURLOPT_POST, <span class="number">1</span>);</span><br><span class="line">    <span class="title function_ invoke__">curl_setopt</span>(<span class="variable">$ch</span>, CURLOPT_POSTFIELDS, <span class="title function_ invoke__">json_encode</span>(<span class="variable">$requestData</span>));</span><br><span class="line">    <span class="title function_ invoke__">curl_setopt</span>(<span class="variable">$ch</span>, CURLOPT_RETURNTRANSFER, <span class="literal">true</span>);</span><br><span class="line">    <span class="title function_ invoke__">curl_setopt</span>(<span class="variable">$ch</span>, CURLOPT_HTTPHEADER, [<span class="string">&#x27;Content-Type: application/json&#x27;</span>]);</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 设置连接超时时间为 10 分钟（600 秒）</span></span><br><span class="line">    <span class="title function_ invoke__">curl_setopt</span>(<span class="variable">$ch</span>, CURLOPT_CONNECTTIMEOUT, <span class="number">600</span>);</span><br><span class="line">    <span class="comment">// 设置执行超时时间为 10 分钟（600 秒）</span></span><br><span class="line">    <span class="title function_ invoke__">curl_setopt</span>(<span class="variable">$ch</span>, CURLOPT_TIMEOUT, <span class="number">600</span>);</span><br><span class="line"></span><br><span class="line">    <span class="variable">$response</span> = <span class="title function_ invoke__">curl_exec</span>(<span class="variable">$ch</span>);</span><br><span class="line">    <span class="variable">$httpCode</span> = <span class="title function_ invoke__">curl_getinfo</span>(<span class="variable">$ch</span>, CURLINFO_HTTP_CODE);</span><br><span class="line">    <span class="variable">$curlError</span> = <span class="title function_ invoke__">curl_error</span>(<span class="variable">$ch</span>);</span><br><span class="line">    <span class="keyword">if</span> (<span class="variable">$httpCode</span> !== <span class="number">200</span>) &#123;</span><br><span class="line">        <span class="title function_ invoke__">error_log</span>(<span class="string">&quot;API请求失败: HTTP <span class="subst">$httpCode</span>, Curl错误信息: <span class="subst">$curlError</span>&quot;</span>);</span><br><span class="line">        <span class="keyword">echo</span> <span class="title function_ invoke__">json_encode</span>([<span class="string">&#x27;error&#x27;</span> =&gt; <span class="string">&quot;API请求失败: HTTP <span class="subst">$httpCode</span>, Curl错误信息: <span class="subst">$curlError</span>&quot;</span>]);</span><br><span class="line">        <span class="keyword">exit</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="variable">$responseData</span> = <span class="title function_ invoke__">json_decode</span>(<span class="variable">$response</span>, <span class="literal">true</span>);</span><br><span class="line">    <span class="variable">$responseText</span> = <span class="variable">$responseData</span>[<span class="string">&#x27;response&#x27;</span>] ?? <span class="string">&#x27;&#x27;</span>;</span><br><span class="line">    <span class="comment">// 处理 &lt;think&gt;&lt;/think&gt; 部分，用折叠框包裹</span></span><br><span class="line">    <span class="variable">$pattern</span> = <span class="string">&#x27;/&lt;think&gt;(.*?)&lt;\/think&gt;/is&#x27;</span>;</span><br><span class="line">    <span class="variable">$replacement</span> = <span class="string">&#x27;&lt;details&gt;&lt;summary&gt;思考过程&lt;/summary&gt;$1&lt;/details&gt;&#x27;</span>;</span><br><span class="line">    <span class="variable">$responseText</span> = <span class="title function_ invoke__">preg_replace</span>(<span class="variable">$pattern</span>, <span class="variable">$replacement</span>, <span class="variable">$responseText</span>);</span><br><span class="line">    <span class="keyword">echo</span> <span class="title function_ invoke__">json_encode</span>([<span class="string">&#x27;response&#x27;</span> =&gt; <span class="variable">$responseText</span>]);</span><br><span class="line">    <span class="keyword">exit</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="meta">?&gt;</span></span><br><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html lang=<span class="string">&quot;zh-CN&quot;</span>&gt;</span><br><span class="line"></span><br><span class="line">&lt;head&gt;</span><br><span class="line">    &lt;meta charset=<span class="string">&quot;UTF-8&quot;</span>&gt;</span><br><span class="line">    &lt;title&gt;Ollama聊天界面&lt;/title&gt;</span><br><span class="line">    &lt;link href=<span class="string">&quot;https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&amp;display=swap&quot;</span> rel=<span class="string">&quot;stylesheet&quot;</span>&gt;</span><br><span class="line">    &lt;style&gt;</span><br><span class="line">        body &#123;</span><br><span class="line">            font-family: <span class="string">&#x27;Roboto&#x27;</span>, Arial, sans-serif;</span><br><span class="line">            max-width: <span class="number">800</span>px;</span><br><span class="line">            margin: <span class="number">0</span> auto;</span><br><span class="line">            padding: <span class="number">20</span>px;</span><br><span class="line">            background-color: <span class="comment">#F9F9F9;</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .chat-container &#123;</span><br><span class="line">            background-color: white;</span><br><span class="line">            border-radius: <span class="number">8</span>px;</span><br><span class="line">            box-shadow: <span class="number">0</span> <span class="number">1</span>px <span class="number">3</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.12</span>), <span class="number">0</span> <span class="number">1</span>px <span class="number">2</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.24</span>);</span><br><span class="line">            padding: <span class="number">20</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .chat-history &#123;</span><br><span class="line">            height: <span class="number">400</span>px;</span><br><span class="line">            overflow-y: auto;</span><br><span class="line">            border: <span class="number">1</span>px solid <span class="comment">#E0E0E0;</span></span><br><span class="line">            border-radius: <span class="number">4</span>px;</span><br><span class="line">            padding: <span class="number">10</span>px;</span><br><span class="line">            margin-bottom: <span class="number">20</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .message &#123;</span><br><span class="line">            display: flex;</span><br><span class="line">            align-items: flex-start;</span><br><span class="line">            margin-bottom: <span class="number">15</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .avatar &#123;</span><br><span class="line">            width: <span class="number">40</span>px;</span><br><span class="line">            height: <span class="number">40</span>px;</span><br><span class="line">            border-radius: <span class="number">50</span>%;</span><br><span class="line">            background-size: cover;</span><br><span class="line">            margin-right: <span class="number">10</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .user-avatar &#123;</span><br><span class="line">            background-image: <span class="title function_ invoke__">url</span>(<span class="string">&#x27;user_avatar.png&#x27;</span>);</span><br><span class="line">            <span class="comment">/* 替换为用户头像的实际路径 */</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .ai-avatar &#123;</span><br><span class="line">            background-image: <span class="title function_ invoke__">url</span>(<span class="string">&#x27;ai_avatar.ico&#x27;</span>);</span><br><span class="line">            <span class="comment">/* 替换为AI头像的实际路径 */</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .message-content &#123;</span><br><span class="line">            margin: inherit;</span><br><span class="line">            padding: <span class="number">1</span>px <span class="number">30</span>px;</span><br><span class="line">            border-radius: <span class="number">18</span>px;</span><br><span class="line">            box-shadow: <span class="number">0</span> <span class="number">1</span>px <span class="number">2</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.1</span>);</span><br><span class="line">            max-width: <span class="number">80</span>%;</span><br><span class="line">            <span class="comment">/* 把这个值调大以增加聊天框宽度 */</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">        .user-message .message-content &#123;</span><br><span class="line">            background-color: <span class="comment">#E3F2FD;</span></span><br><span class="line">            color: <span class="comment">#333;</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .ai-message .message-content &#123;</span><br><span class="line">            background-color: <span class="comment">#F5F5F5;</span></span><br><span class="line">            color: <span class="comment">#333;</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .input-container &#123;</span><br><span class="line">            display: flex;</span><br><span class="line">            gap: <span class="number">10</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        input[type=<span class="string">&quot;text&quot;</span>] &#123;</span><br><span class="line">            flex: <span class="number">1</span>;</span><br><span class="line">            padding: <span class="number">10</span>px;</span><br><span class="line">            border: <span class="number">1</span>px solid <span class="comment">#E0E0E0;</span></span><br><span class="line">            border-radius: <span class="number">4</span>px;</span><br><span class="line">            font-size: <span class="number">16</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        button &#123;</span><br><span class="line">            padding: <span class="number">10</span>px <span class="number">20</span>px;</span><br><span class="line">            background-color: <span class="comment">#4285F4;</span></span><br><span class="line">            color: white;</span><br><span class="line">            border: none;</span><br><span class="line">            border-radius: <span class="number">4</span>px;</span><br><span class="line">            cursor: pointer;</span><br><span class="line">            font-size: <span class="number">16</span>px;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        button:hover &#123;</span><br><span class="line">            background-color: <span class="comment">#357AE8;</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .think &#123;</span><br><span class="line">            margin-top: <span class="number">14</span>px;</span><br><span class="line">            background: <span class="title function_ invoke__">rgba</span>(<span class="number">187</span>, <span class="number">85</span>, <span class="number">21</span>, <span class="number">0.2</span>);</span><br><span class="line">            <span class="comment">/* 使用 rgba 确保透明度可调整 */</span></span><br><span class="line">            border-radius: <span class="number">8</span>px;</span><br><span class="line">            <span class="comment">/* 添加圆角 */</span></span><br><span class="line">            padding: <span class="number">12</span>px;</span><br><span class="line">            <span class="comment">/* 添加内边距，让内容与边框有一定间隔 */</span></span><br><span class="line">            box-shadow: <span class="number">0</span> <span class="number">1</span>px <span class="number">3</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.12</span>), <span class="number">0</span> <span class="number">1</span>px <span class="number">2</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.24</span>);</span><br><span class="line">            <span class="comment">/* 添加轻微阴影 */</span></span><br><span class="line">            transition: all <span class="number">0.3</span>s cubic-<span class="title function_ invoke__">bezier</span>(<span class="number">.25</span>,<span class="number">.8</span>,<span class="number">.25</span>,<span class="number">1</span>);</span><br><span class="line">            <span class="comment">/* 添加过渡效果，使交互更平滑 */</span></span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        .think:hover &#123;</span><br><span class="line">            box-shadow: <span class="number">0</span> <span class="number">3</span>px <span class="number">6</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.16</span>), <span class="number">0</span> <span class="number">3</span>px <span class="number">6</span>px <span class="title function_ invoke__">rgba</span>(<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.23</span>);</span><br><span class="line">            <span class="comment">/* 鼠标悬停时增加阴影深度 */</span></span><br><span class="line">        &#125;</span><br><span class="line">    &lt;/style&gt;</span><br><span class="line">    &lt;!-- 引入 marked.js 库 --&gt;</span><br><span class="line">    &lt;script src=<span class="string">&quot;https://cdn.bootcss.com/marked/0.8.1/marked.min.js&quot;</span>&gt;&lt;/script&gt;</span><br><span class="line">&lt;/head&gt;</span><br><span class="line"></span><br><span class="line">&lt;body&gt;</span><br><span class="line">    &lt;div <span class="class"><span class="keyword">class</span>=&quot;<span class="title">chat</span>-<span class="title">container</span>&quot;&gt;</span></span><br><span class="line"><span class="class">        &lt;<span class="title">div</span> <span class="title">class</span>=&quot;<span class="title">chat</span>-<span class="title">history</span>&quot; <span class="title">id</span>=&quot;<span class="title">chatHistory</span>&quot;&gt;</span></span><br><span class="line"><span class="class">            &lt;!-- 聊天记录将在这里显示 --&gt;</span></span><br><span class="line"><span class="class">        &lt;/<span class="title">div</span>&gt;</span></span><br><span class="line"><span class="class">        &lt;<span class="title">div</span> <span class="title">class</span>=&quot;<span class="title">input</span>-<span class="title">container</span>&quot;&gt;</span></span><br><span class="line"><span class="class">            &lt;<span class="title">input</span> <span class="title">type</span>=&quot;<span class="title">text</span>&quot; <span class="title">id</span>=&quot;<span class="title">userInput</span>&quot; <span class="title">placeholder</span>=&quot;输入你的消息...&quot;&gt;</span></span><br><span class="line"><span class="class">            &lt;<span class="title">button</span> <span class="title">onclick</span>=&quot;<span class="title">sendMessage</span>()&quot;&gt;发送&lt;/<span class="title">button</span>&gt;</span></span><br><span class="line"><span class="class">        &lt;/<span class="title">div</span>&gt;</span></span><br><span class="line"><span class="class">    &lt;/<span class="title">div</span>&gt;</span></span><br><span class="line"><span class="class"></span></span><br><span class="line"><span class="class">    &lt;<span class="title">script</span>&gt;</span></span><br><span class="line"><span class="class">        // 添加消息到聊天历史</span></span><br><span class="line"><span class="class">        <span class="title">function</span> <span class="title">addMessage</span>(<span class="title">message</span>, <span class="title">isUser</span>) </span>&#123;</span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">chatHistory</span> = document.<span class="title function_ invoke__">getElementById</span>(<span class="string">&#x27;chatHistory&#x27;</span>);</span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">messageDiv</span> = document.<span class="title function_ invoke__">createElement</span>(<span class="string">&#x27;div&#x27;</span>);</span><br><span class="line">            messageDiv.className = `message $&#123;isUser ? <span class="string">&#x27;user-message&#x27;</span>: <span class="string">&#x27;ai-message&#x27;</span>&#125;`;</span><br><span class="line"></span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">avatarDiv</span> = document.<span class="title function_ invoke__">createElement</span>(<span class="string">&#x27;div&#x27;</span>);</span><br><span class="line">            avatarDiv.className = `avatar $&#123;isUser ? <span class="string">&#x27;user-avatar&#x27;</span>: <span class="string">&#x27;ai-avatar&#x27;</span>&#125;`;</span><br><span class="line">            messageDiv.<span class="title function_ invoke__">appendChild</span>(avatarDiv);</span><br><span class="line"></span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">contentDiv</span> = document.<span class="title function_ invoke__">createElement</span>(<span class="string">&#x27;div&#x27;</span>);</span><br><span class="line">            contentDiv.className = <span class="string">&#x27;message-content&#x27;</span>;</span><br><span class="line">            <span class="comment">// 渲染 Markdown 文本</span></span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">renderedMessage</span> = marked.<span class="title function_ invoke__">parse</span>(message);</span><br><span class="line">            contentDiv.innerHTML = renderedMessage;</span><br><span class="line"></span><br><span class="line">            <span class="comment">// 为 details 元素添加 think 类</span></span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">detailsElements</span> = contentDiv.<span class="title function_ invoke__">querySelectorAll</span>(<span class="string">&#x27;details&#x27;</span>);</span><br><span class="line">            detailsElements.<span class="title function_ invoke__">forEach</span>((details) =&gt; &#123;</span><br><span class="line">                details.classList.<span class="title function_ invoke__">add</span>(<span class="string">&#x27;think&#x27;</span>);</span><br><span class="line">            &#125;);</span><br><span class="line"></span><br><span class="line">            messageDiv.<span class="title function_ invoke__">appendChild</span>(contentDiv);</span><br><span class="line"></span><br><span class="line">            chatHistory.<span class="title function_ invoke__">appendChild</span>(messageDiv);</span><br><span class="line">            chatHistory.scrollTop = chatHistory.scrollHeight;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="comment">// 处理发送消息</span></span><br><span class="line">        async <span class="function"><span class="keyword">function</span> <span class="title">sendMessage</span>(<span class="params"></span>) </span>&#123;</span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">userInput</span> = document.<span class="title function_ invoke__">getElementById</span>(<span class="string">&#x27;userInput&#x27;</span>);</span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">message</span> = userInput.value.<span class="title function_ invoke__">trim</span>();</span><br><span class="line"></span><br><span class="line">            <span class="keyword">if</span> (!message) <span class="keyword">return</span>;</span><br><span class="line"></span><br><span class="line">            <span class="comment">// 清空输入框</span></span><br><span class="line">            userInput.value = <span class="string">&#x27;&#x27;</span>;</span><br><span class="line"></span><br><span class="line">            <span class="comment">// 显示用户消息</span></span><br><span class="line">            <span class="title function_ invoke__">addMessage</span>(message, <span class="literal">true</span>);</span><br><span class="line"></span><br><span class="line">            <span class="comment">// 创建 AbortController 用于超时控制</span></span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">controller</span> = <span class="keyword">new</span> <span class="title class_">AbortController</span>();</span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">signal</span> = controller.signal;</span><br><span class="line"></span><br><span class="line">            <span class="comment">// 设置 10 分钟（600000 毫秒）的超时时间</span></span><br><span class="line">            <span class="keyword">const</span> <span class="variable constant_">timeoutId</span> = <span class="title function_ invoke__">setTimeout</span>(() =&gt; &#123;</span><br><span class="line">                controller.<span class="title function_ invoke__">abort</span>();</span><br><span class="line">            &#125;, <span class="number">600000</span>);</span><br><span class="line"></span><br><span class="line">            <span class="keyword">try</span> &#123;</span><br><span class="line">                <span class="keyword">const</span> <span class="variable constant_">response</span> = await <span class="title function_ invoke__">fetch</span>(<span class="string">&#x27;index.php&#x27;</span>, &#123;</span><br><span class="line">                    <span class="attr">method</span>: <span class="string">&#x27;POST&#x27;</span>,</span><br><span class="line">                    <span class="attr">headers</span>: &#123;</span><br><span class="line">                        <span class="string">&#x27;Content-Type&#x27;</span>: <span class="string">&#x27;application/x-www-form-urlencoded&#x27;</span></span><br><span class="line">                    &#125;,</span><br><span class="line">                    <span class="attr">body</span>: `message=$&#123;<span class="title function_ invoke__">encodeURIComponent</span>(message)&#125;`,</span><br><span class="line">                    signal</span><br><span class="line">                &#125;);</span><br><span class="line"></span><br><span class="line">                <span class="comment">// 清除超时定时器</span></span><br><span class="line">                <span class="title function_ invoke__">clearTimeout</span>(timeoutId);</span><br><span class="line"></span><br><span class="line">                <span class="keyword">if</span> (!response.ok) &#123;</span><br><span class="line">                    <span class="keyword">throw</span> <span class="keyword">new</span> <span class="built_in">Error</span>(<span class="string">&#x27;请求失败&#x27;</span>);</span><br><span class="line">                &#125;</span><br><span class="line"></span><br><span class="line">                <span class="keyword">const</span> <span class="variable constant_">data</span> = await response.<span class="title function_ invoke__">json</span>();</span><br><span class="line"></span><br><span class="line">                <span class="keyword">if</span> (data.error) &#123;</span><br><span class="line">                    <span class="title function_ invoke__">addMessage</span>(`错误: $&#123;data.error&#125;`, <span class="literal">false</span>);</span><br><span class="line">                &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">                    <span class="title function_ invoke__">addMessage</span>(data.response, <span class="literal">false</span>);</span><br><span class="line">                &#125;</span><br><span class="line">            &#125; <span class="keyword">catch</span> (error) &#123;</span><br><span class="line">                <span class="keyword">if</span> (error.name === <span class="string">&#x27;AbortError&#x27;</span>) &#123;</span><br><span class="line">                    <span class="title function_ invoke__">addMessage</span>(<span class="string">&#x27;请求超时，请稍后重试&#x27;</span>, <span class="literal">false</span>);</span><br><span class="line">                &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">                    <span class="title function_ invoke__">addMessage</span>(`请求失败: $&#123;error.message&#125;`, <span class="literal">false</span>);</span><br><span class="line">                &#125;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="comment">// 允许通过回车键发送消息</span></span><br><span class="line">        document.<span class="title function_ invoke__">getElementById</span>(<span class="string">&#x27;userInput&#x27;</span>).<span class="title function_ invoke__">addEventListener</span>(<span class="string">&#x27;keypress&#x27;</span>, (e) =&gt; &#123;</span><br><span class="line">            <span class="keyword">if</span> (e.key === <span class="string">&#x27;Enter&#x27;</span>) &#123;</span><br><span class="line">                <span class="title function_ invoke__">sendMessage</span>();</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;);</span><br><span class="line">    &lt;/script&gt;</span><br><span class="line">&lt;/body&gt;</span><br><span class="line"></span><br><span class="line">&lt;/html&gt;</span><br></pre></td></tr></table></figure></div></details><h3 id="效果"><a class="markdownIt-Anchor" href="#效果"></a> 效果</h3><p>代码还有些问题，有较多地方有待优化。<br />如果网络不好断联了就会提示失败，本地运行问题不大。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/02/003.png" alt="PHP 页面效果（未优化）" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">PHP 页面效果（未优化）</span></div></div><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="ollama" scheme="https://blog.findingx.cc/tags/ollama/"/>
    
    <category term="php" scheme="https://blog.findingx.cc/tags/php/"/>
    
  </entry>
  
  <entry>
    <title>我们的文字：漢字</title>
    <link href="https://blog.findingx.cc/2025/01/30/225834/"/>
    <id>https://blog.findingx.cc/2025/01/30/225834/</id>
    <published>2025-01-30T14:58:34.000Z</published>
    <updated>2025-07-11T01:38:06.134Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>看直播的时候主播提到了表音与表意文字，说到表音，英语、法语等都是表音文字，汉语是表意文字，记录下互联网上的一些说法和自己的思考。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年一月三十日</span></div></div></div></div></p></div><h2 id="文字之起源"><a class="markdownIt-Anchor" href="#文字之起源"></a> 文字之起源</h2><p>最近开始搜起了文字起源，上网搜甲骨文（契文）的发现与破译。大多数说法是王懿荣（中国晚清官员、学者）买龙骨（一味药材）时发现骨上刻有字。甲骨文是一种象形文字，表意文字，每一个字有其意义。据研究甲骨文流行于商代，是汉字起源。我们汉字也同样是表意文字，象形文字，写在竹简上，我们当今使用的简体已经简化了太多，繁体更能体现汉字是象形文字。</p><p>表意文字系统，也就是象形文字很好理解，人们通过观察各种自然现象和事物，绘制成图形，成为文字，经过千年，甲骨文演变到现在我们日常所使用的汉字。</p><p>与之相对的就是表音文字系统，世界上大多数人都在使用的是表音文字，英语日语韩语法语都是表音，由音节组成，字母起源网上版本很多，大部分说是古希腊字母演变而来，但究其根源应该是从表意文字系统变化而来。通常会从表意文字系统中截取部分作为自己的文字，经过改写删除原意，用于表音。</p><blockquote><p>最简单易懂的就是日语平假名和片假名，平假名取自中文草书的部分文字，片假名则取自正楷的部分偏旁部首，日文中的汉字也是进过中文汉字改编而来。</p></blockquote><h2 id="中华的算数"><a class="markdownIt-Anchor" href="#中华的算数"></a> 中华的算数</h2><p>讲讲中国人数学好这件事，总是说中国人数学好，能口算心算，大多归功于中小学教育制度，其实并不完全是。十几年前，我还只有几岁的时候，见到过路边卖菜的农村老奶奶老爷爷，拿着秤砣和一杆秤，就能把账算清楚，他们也没有受过小学中学教育，仅仅只是经过口口相传，从父辈们口中学习到。</p><p>这样的口口相传就是文化传承，比如半斤对八两，会说话的孩子几乎都知道，很多很多这样的顺口溜都是这样一代一代流传下来的。半斤对八两这个就是 16 进制，個十百千萬，就是 10 进制，这些进制都在我们的语言文字中能够表现出来，数学好不仅仅是教育制度，也和文化传承以及我们的语言文字息息相关。</p><p>说说进制在语言中的表现，中文用用十进制数数是非常容易的，可能是当初在发明文字的时候已经有了十进制的思维，于是便在文字中有所体现。英文中数字的念法有所不同，从一到十二分别有自己的词，从十三开始才有规律可循；法语的数字更是多，了解法语的朋友应该知道，用法语数数是件非常头疼的事情。</p><h2 id="优势与劣势"><a class="markdownIt-Anchor" href="#优势与劣势"></a> 优势与劣势</h2><p>说回表音文字系统和表意文字系统，他们的优势在哪？</p><p>表音文字系统优势在于相对容易学，容易传播，主旨在沟通，韩语就很典型，听说韩语速成班一两个月就能让你学会说。缺点便是词量大，很臃肿。举个例子说每当一个专业领域诞生一个新事物，新发明的时候就要发明一个单词用于描述，但是新事物源源不断有限字母的组合也是有限的，单词就会非常的长，难以记忆，为了解决这个问题便有了缩写。但是缩写也有问题，不同行业可能存在相同缩写于是就有了隔行如隔山的说法，去到别的专业领域，完全不知道他在做什么，说什么。举个例子，学车的朋友都知道 ABS（防抱死系统缩写），学材料或者了解过 3D 打印的朋友应该也熟悉这个词，ABS（一种塑料）。</p><p>表意文字系统优势在于能传承，能长期记录，上下五千年汉字（繁体）每个字意思没有巨变。劣势在于体量大，学习困难，难以速成，尤其繁体，当代人认识繁体的人很少了。</p><p>正是因为繁体难学难记便有了现代的简体字，简体字早在国民时期就有了苗头，为了解决当时中国人普遍是文盲的现状，开始简化汉字，但无疾而终。也同样在民国时期有一部分人认为应当废除汉字，走全拼音的路，拼音就是表音，易学，一定程度上能解决当时文盲率高的问题。我们小学学习的拼音很容易上手，但是记忆字形、偏旁部首的时候就相对没那么容易了，这也是为什么拼音输入法的普及率比五笔普及率高的原因，只要上过小学就会拼音，而五笔字形需要对汉字字形、笔顺非常了解，并且需要花时间记忆和长时间的使用去熟练他，学习成本较高，没有多少人愿意学五笔。</p><h2 id="汉字的简化"><a class="markdownIt-Anchor" href="#汉字的简化"></a> 汉字的简化</h2><p>中国历史上第一次文字大统一是在秦朝，李斯受命统一文字，将繁多文字统一为小篆，后又逐渐演变成楷书，草书等等。</p><p>简化汉字类似于李斯做的文字变革，不同的是当下文字已经成熟，但是笔画相当复杂不易学，想要在短时间内降低文盲率，必须简化文字，让其简单易学，历史上简化汉字一共有两次，第一次简化是在1956年1月28日，国务院首次公布了《汉字简化方案》，简化原则有三：</p><blockquote><p>1、以述而不作之原则；（只根据目前已有的汉字进行简化，不重新创作新的汉字）<br />2、择社会上比较通行之简体字，最先采用；（社会上普遍流行和通用的简体字最先采用）<br />3、原字笔画甚简者，不再求简。（原来的汉字笔画简单不复杂的，不再简化）</p></blockquote><p>上述原则体现出，在简化汉字过程中不破坏表意功能，因此我们仍然能理解句子的原因。</p><p>第二次简化在1977年12月20日，《人民日报》上公布了《第二次汉字简化方案》。1986年6月，国务院批准了国家语言文字工作委员会《关于废止&lt;第二次汉字简化方案(草案)和纠正社会用字混乱现象的请示》，“二简字”被停止使用。停止的理由是：<strong>“对汉字的简化应持谨慎态度，使汉字形体在一个时期内保持相对稳定，以利于社会应用”</strong>。</p><p>第二次简化，极大程度的破坏了表意功能，导致了汉字的混乱。户籍系统中“萧”姓写作“肖”、“阎”姓写作“闫”等，已难更改。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/02/001.png" alt="大家可以看一下这张粮票的字，你能看懂吗？" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">大家可以看一下这张粮票的字，你能看懂吗？</span></div></div><p>我们如今使用的简体字是将流行于民间的简体字（或称俗字、手头字）加以整理并法定为社会用字的规范。删除了异体字：偏旁易位（“融”—“螎”）；会意字的偏旁不同（“灾”—“災”）。1955年12月公布的文化部和文改会联合发布了《第一批异体字整理表》，根据从简从俗的原则规定了810个正体字，淘汰了1055个异体字。异体字为不规范字，除姓氏和某些特殊场合外，不再使用。</p><blockquote><p>根据国务院1964年2月4日关于简化字问题给中国文字改革委员会的批示:“同意你会在报告中提出的意见:《汉字简化方案》中所列的简化字，用作偏旁时，应同样简化:《汉字简化方案》的偏旁简化表中所列的偏旁，除了四个偏旁(讠、饣、纟、钅)外，其余偏旁独立成字时，也应同样简化。你会应将上述可以用作偏旁的简化字和可以独立成字的偏旁，分别作成字表，会同有关部门下达执行”<br />——《中华人民共和国教育部关于简化字的联合通知(1964年3月7日)》（<a target="_blank" rel="noopener" href="https://wenku.baidu.com/view/5996f403ccc789eb172ded630b1c59eef8c79a91.html?_wkts_=1738500160319&amp;needWelcomeRecommand=1&amp;unResetStore=1&amp;ILK=17385001-0453-8812-0752-040256495254">🔗来自百度文库</a>）</p></blockquote><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>对于古埃及文字的一些思考：在搜索文字起源的时候接触到古希腊、古埃及的文字，才了解到古埃及文字属于表音文字系统，但为什么表音呢。先说汉字，汉字是象形文字，象形文字是通过观察自然现象和事物，绘制成图形，成为文字，该文字已经存在意义，能够进行表达与沟通。那为什么会属于表音文字系统呢？表音的意义是什么？</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p><strong>注：</strong><br /><strong>本人并非专业领域，本文只是个人的一点点思考，做参考即可。</strong></p></blockquote><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://news.qq.com/rain/a/20231119A04W6N00">🔗历经两次简化的汉字，为何在第二次叫停了？「腾讯网」</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="杂谈" scheme="https://blog.findingx.cc/categories/%E6%9D%82%E8%B0%88/"/>
    
    
    <category term="文化" scheme="https://blog.findingx.cc/tags/%E6%96%87%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>黑暗中的汽笛声</title>
    <link href="https://blog.findingx.cc/2025/01/21/121756/"/>
    <id>https://blog.findingx.cc/2025/01/21/121756/</id>
    <published>2025-01-21T04:17:56.000Z</published>
    <updated>2025-07-11T01:38:06.136Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>想不到，那已经是三四年前的事了。每当忆起学生时期，她总不会缺席，说不出的悲喜，心中泛着涟漪。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年一月二十日午夜</span></div></div></div></div></p></div><p>第一次注意到她是一杯果茶。我走得晚，回宿舍的路上，与她擦肩而过，本想搭讪但还是低下了头，默默走了过去。第二次的相遇还是老地方，不同的是我总算是开口说了句 “hi”，其实那天的对话我也记不清了，准确来说慌得不行，回到宿舍脑袋空空。</p><p>我们相处着，她说和我相处的时光很好，要不是她自己的原因，我们可能早就在一起了。我呆呆的跟着她走着，没有做回应，同样我的问题她也没有给准确的答复，后面的一天又一天，好像是拖着。直到毕业后和那位未曾谋面的网友见面，才猛然醒悟，不是她一直拖着，而是我止步不前了，好像她曾好几次，种种信号都在提示我向前走（也许并不是这样，但不重要了），我好像什么都在迟疑，难以表达，不会表达。</p><p>我们走过的路不算多，但每条路都记得，学校里算是走遍了，疫情也不好出门（虽然是可以出去的），去校外机会不多但也去过几次，也都记得清楚，蛮开心的，让我不再那么 e（能说是阴影吗，也不准确）。虽然我们没有走下去，但至少是快乐的，有那段回忆足矣。</p><p>有的刀疤很疼，临近毕业和班里的朋友们在宿舍聊天时又裂开了一次。是经历教会了我需要长满荆棘，危险来临时要学会自保，但两年后的某天我猛然发现，这身荆棘让我失去了你。</p><p>我希望你不会看到这封书信，我想忘了你，我曾以为你不是我最深的那一个，可偏偏是你，让我每当回忆，那个身影，挥之不去。我隔着那雾蒙蒙的玻璃，我转身走了，可不远处的人影，好像还是你，隔着我我穿不过去的屏障。</p><p>实话说，毕业两年状态慢慢回来了，第一次是认识了新同事，第二次是加入博客社区，我仍然时不时怀念大学带走的那些日子，你永远不会缺席。</p><p>若不是今天下班晚了些，赶着夜色，走回家的路，模糊的镜头拍不出想要的效果，一切都是那么的相似，我也不会回首往事。</p><p>今天的月十分明亮，月光透过列车的窗，我坐在车窗旁。月光告诉我，过去的风景让他过去吧，你永远不知道下一道风景是什么。我看着窗外，树影稀疏了，那银色的田野里，星星点点的，黄绿色的光，闪烁着。那夜，在黑暗中，我听见了火车的汽笛声，从遥远而来，又开往远方。</p><p>这张画（头图）我收藏了好久好久，一直挂在空间墙上。(插画师：Mimi N[SUN Project])，他的插花我都看过，每一张都十分喜欢。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/headimg/tobelove.jpg" data-fancybox="true"/></div></div><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>书写此文，我希望就此放下（心中的执念？），放下那些不论好的还是坏的回忆，至此，割舍去，愿隐匿于最深处，再被翻出时，寥寥带过可好。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="杂谈" scheme="https://blog.findingx.cc/categories/%E6%9D%82%E8%B0%88/"/>
    
    
    <category term="往事" scheme="https://blog.findingx.cc/tags/%E5%BE%80%E4%BA%8B/"/>
    
  </entry>
  
  <entry>
    <title>片上SOC外围硬件设计参考指南</title>
    <link href="https://blog.findingx.cc/2025/01/15/193849/"/>
    <id>https://blog.findingx.cc/2025/01/15/193849/</id>
    <published>2025-01-15T11:38:49.000Z</published>
    <updated>2025-07-11T01:38:06.135Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>本文的初衷是希望能让非电学专业的人能看明白，就像24年更新的<a href="/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/">🔗元器件之旅</a>一样（但是得懂一点高数）。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年一月九日</span></div></div></div></div></p></div><h2 id="总则"><a class="markdownIt-Anchor" href="#总则"></a> 总则</h2><p>硬件设计不仅仅是原理重要，layout 也非常重要，layout是讲硬件线路变成现实的一环，这其中的原理相当的多，高压、低压、SI、EMI各不相同。</p><p>本文简述片上SOC需要的硬件接口和电源部分以及功能接口，是概述，每一部分后面可以单独出一篇细讲原理，具体细致到某一种协议，某一种平台电源方案都需要具体情况具体分析，篇幅不想写太长了，后面会把所有谈到的部分逐一展开讲解，每种设备的硬件原理以及涉及到的通信协议时序逻辑。</p><blockquote><p>本文均参考自网友文章和CPU厂商参考设计文档。</p></blockquote><h2 id="最小系统设计建议"><a class="markdownIt-Anchor" href="#最小系统设计建议"></a> 最小系统设计建议</h2><h3 id="晶振"><a class="markdownIt-Anchor" href="#晶振"></a> 晶振</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/001.png" alt="晶体连接方式及器件参数" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">晶体连接方式及器件参数</span></div></div><blockquote><p>电容C1102、C1103的值需要根据晶体的实际标称负载电容值选择，8pF为原厂选用晶体所对应容值，不为通用值。</p></blockquote><p>部分芯片会说明晶振工作的作用，比如RK3399提到：芯片在待机时，会将内部时钟源切换到外接的32.768KHz时钟，通过降低工作频率以降低系统功耗。</p><p>这里只举到了RK3399这种IC，对于大到intel和AMD，小到STM32等微控制器都是一样的逻辑。晶振是芯片的脉搏来源，是各种数电骚操作的根基。</p><blockquote><p>参考本站文章（挖个坑，稍后补）–&gt;<a href="/">晶体谐振器与负载电容及其计算方法</a></p></blockquote><h3 id="复位电路"><a class="markdownIt-Anchor" href="#复位电路"></a> 复位电路</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/002.png" alt="复位线路" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">复位线路</span></div></div><p>复位也是很重要的操作，当IC跑飞可以通过复位让其重新启动。这个连C51都有，不多做介绍。（多提一句，这个电容C1100是用来消抖的，开关摁下瞬间并不是理想瞬间拉低，在某一瞬间是会产生抖动的，波形不稳定，这里利用电容电压瞬间不可变的特性实现消抖，想详细了解可以量测开关摁下时的波形或者百度。）</p><h3 id="debug"><a class="markdownIt-Anchor" href="#debug"></a> Debug</h3><h4 id="jtag"><a class="markdownIt-Anchor" href="#jtag"></a> JTAG</h4><p>协议举例：<a target="_blank" rel="noopener" href="https://www.intel.com/programmable/technical-pdfs/655055.pdf"> IEEE 1149.1 (JTAG) Boundary-Scan<br />Testing for MAX II Devices</a></p><p>JTAG信号引脚一共有4个或者5个（其中一个可选）。这些引脚仅用于测试目的，控制JTAG完成1149.1协议的操作。引脚信息如下：</p><ul><li><p><strong>Test clock input（TCK）</strong>：该引脚为测试逻辑提供时钟，由于受板级以及芯片pad限制，一般频率为10MHz，频率占空比一般为50%。TMS和TDI的数据在TCK的上升沿被采样。数据在时钟的下降沿输出到TDO。<strong>建议下拉</strong>。</p></li><li><p><strong>Test mode select input（TMS）</strong>：用于控制JTAG内部状态机跳转，切换到指定，该信号在TCK上升沿时被采样。TMS用来设置JTAG口处于某种特定的测试模式，用于控制TAP状态机。<strong>必须上拉。</strong></p></li><li><p><strong>Test data input（TDI）</strong>：输入到指令寄存器（IR）或数据寄存器（DR）的数据出现在TDI输入端，在TCK的上升沿被采样。建议上拉，<strong>上拉电阻阻值不能小于1K</strong>。</p></li><li><p><strong>Test data output（TDO）</strong>：来自指令寄存器或数据寄存器的数据在时钟的下降沿被移出到TDO。<strong>不用上下拉</strong>，悬空时，尽量引出测试点，同时应避免将TDO作为I/O使用。</p></li><li><p><em><em>Test reset input（TRST</em>）</em>*：JTAG 内部逻辑全局异步复位信号，<strong>一般低电平有效</strong>。TRST可以用来对TAP Controller进行复位（初始化）。因为通过TMS也可以对TAPController进行复位（初始化）。所以有四线JTAG与五线JTAG之分。</p></li><li><p><strong>可选引脚RTCK</strong>：测试时钟返回信号。RTCK由目标端反馈给仿真器的时钟信号，用来同步TCK信号的产生，不使用时直接接地。</p></li><li><p><strong>可选引脚nSRST</strong>：目标系统复位信号。与目标板上的系统复位信号相连，可以直接对目标系统复位。同时可以检测目标系统的复位情况，为了防止误触发应在目标端加上适当的上拉电阻。</p></li></ul><h4 id="swd"><a class="markdownIt-Anchor" href="#swd"></a> SWD</h4><ul><li><p><strong>VRef</strong>：目标板参考电压信号。用于检查目标板是否供电，直接与目标板VDD联，并不向外输出电压(<strong>必须</strong>)</p></li><li><p><strong>GND</strong>：公共地信号(<strong>必须</strong>)</p></li><li><p><strong>SWDIO</strong>：串行数据输入输出，作为仿真信号的双向数据信号线，建议上拉(<strong>高速下载时一定需要上拉</strong>，<strong>必须</strong>)</p></li><li><p><strong>SWCLK</strong>：串行时钟输入，作为仿真信号的时钟信号线，建议下拉(<strong>高速下载时一定需要下拉</strong>，<strong>必须</strong>)</p></li><li><p><strong>SWO</strong>：串行数据输出引脚，CPU调试接口可通过SWO引脚输出一些调试信息。该引脚是<strong>可选的</strong></p></li><li><p><strong>RESET</strong>：仿真器输出至目标CPU的系统复位信号。该引脚<strong>可选</strong>，建议选择上，因为ULINK是一定需要该管脚的，使得仿真器能够在连接器件前对器件进行复位，以获得较理想的初始状态，便于后续连接仿真。</p></li></ul><h3 id="ddr电路"><a class="markdownIt-Anchor" href="#ddr电路"></a> DDR电路</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/003.png" alt="RK3399DDR3拓扑" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">RK3399DDR3拓扑</span></div></div><p>对于内存来说，细节非常多，可以单独出一篇文章了，这里仅仅给出了RK3399DDR3拓扑，大概看下有哪些线需要链接上。每一代的DDR都有自己的标准DDR3和DDR4的标准就不太一样，具体情况具体分析。</p><p>DDR3上电时序如下：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/004.png" alt="DDR3上电时序" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">DDR3上电时序</span></div></div><h3 id="emmc电路"><a class="markdownIt-Anchor" href="#emmc电路"></a> eMMC电路</h3><p>线路上一般直接连接就可以，没有上下拉电阻要求。当然，这类存储设备在进入休眠时会有掉电上电需求，具体情况看CPU的规格书，上面会详细说明如何开关电源。</p><ul><li><strong>eMMC_DQ[7:0]</strong>：eMMC数据发送/接收</li><li><strong>eMMC_CLK</strong>：eMMC时钟发送</li><li><strong>eMMC_CMD</strong>：eMMC命令发送/接收</li><li><strong>eMMC_STRB</strong>：HS400模式下，eMMC时钟接收软件配置内部下拉，无需外部下拉电阻。</li></ul><h3 id="spi"><a class="markdownIt-Anchor" href="#spi"></a> SPI</h3><p>为什么SPI也列入最小系统设计中？许多比较复杂的芯片如FPGA、CPU等等都有从SPI启动，比如BIOS就是SPI通信（严格来说不是标准SPI）。</p><ul><li><strong>SPI1_TXD（MOSI）</strong>：SPI数据发送</li><li><strong>SPI1_RXD（MISO）</strong>：SPI数据接收</li><li><strong>SPI1_CLK</strong>：SPI时钟发送，串联22ohm电阻 （这个电阻应该是阻抗匹配时用到的）</li><li><strong>SPI1_CSn0</strong>：SPI片选信号</li></ul><h2 id="电源系统设计简述"><a class="markdownIt-Anchor" href="#电源系统设计简述"></a> 电源系统设计简述</h2><p>电源方案在这里不好讲，因为每个芯片都不一样，先举个例子。</p><h3 id="x86"><a class="markdownIt-Anchor" href="#x86"></a> X86</h3><p>以前的 <strong>Intel CPU</strong> 电源方案采用的是 Controller+DrMOS ，具体如下图：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/005.png" alt="经典Controller+DrMOS模型" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">经典Controller+DrMOS模型</span></div></div><p>可以精准控制几路电源输出，CPU的电压很低但是电流非常大 80A+ 都是正常的（用功率计算公式反推一下就能知道，假设电压是0.9V），最新出的Lunar Lake的 DDR 部分已经和 CPU 绑定在一起了，时序自然也都有要求。</p><h3 id="arm"><a class="markdownIt-Anchor" href="#arm"></a> ARM</h3><p>而<strong>ARM</strong>架构如瑞芯微或者高通等，他们采用的电源方案不太一样，他们的电源分支非常细致，导致会有非常多的Buck和ldo，例如rk3399使用的RK809-3，有5路Buck和9路ldo。<s>大多是抄图的，真正做这些设计从理论到实践的都是原厂，OEM，ODM都是用着就行</s></p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/006.png" alt="RK809-3简介" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">RK809-3简介</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/007.jpg" alt="RK3399实际使用的电源数量" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">RK3399实际使用的电源数量</span></div></div><h2 id="功能接口设计建议"><a class="markdownIt-Anchor" href="#功能接口设计建议"></a> 功能接口设计建议</h2><h3 id="存储卡电路"><a class="markdownIt-Anchor" href="#存储卡电路"></a> 存储卡电路</h3><p>其实就是TF卡，CPU 中叫做 SDMMC 控制器。硬件层面没什么好说的，把桥搭上，硬件层面就没有了。</p><ul><li><strong>SDMMC_DQ[3:0]</strong>：SDMMC数据发送/接收，上拉，串联22ohm电阻</li><li><strong>SDMMC_CLK</strong>：SDMMC时钟发送，下拉</li><li><strong>SDMMC_CMD</strong>：SDMMC命令发送/接收，上拉 ，串联22ohm电阻</li></ul><h3 id="以太网口电路"><a class="markdownIt-Anchor" href="#以太网口电路"></a> 以太网口电路</h3><p>RMII接口(MAC-to-PHY的RMII)：</p><ul><li><strong>MAC_TXCLK</strong>：数据发送的参考时钟【串联22ohm电阻】</li><li><strong>MAC_RXCLK</strong>：数据接收的参考时钟【直连】</li><li><strong>MAC_TXD[1:0]</strong>：数据发送 【串联22ohm电阻】</li><li><strong>MAC_RXD[1:0]</strong>：数据接收【直连】</li><li><strong>MAC_TXEN</strong>：发送数据使能 【串联22ohm电阻】</li><li><strong>MAC_RXDV</strong>：接收数据有效指示 【直连】</li><li><strong>MAC_MDC</strong>：配置接口时钟 【直连】</li><li><strong>MAC_MDIO</strong>：配置接口I/O 【直连】</li><li><strong>MAC_CLK</strong>：主时钟输出，50MHz 【串联22ohm电阻】</li></ul><p>这是以太网七层链路映射，对于硬件来说，主要是物理层，<strong>数据链路层</strong>主要是<strong>将</strong>不同的传输协议（UDP/TCP）加上其他的层如IP层等等形成的<strong>以太网数据包</strong>转换成<strong>电信号</strong>。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/008.png" alt="太网七层链路" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">太网七层链路</span></div></div><p>对于RK3399来说，MAC部分已经集成到CPU中了，不像Intel，需要从PCIE转出来（映像中只有一个平台的有，其他的CPU都没有），设计相对简单些，当然也有MAC和PHY集成方案。</p><h3 id="usb电路"><a class="markdownIt-Anchor" href="#usb电路"></a> USB电路</h3><h4 id="usb-20"><a class="markdownIt-Anchor" href="#usb-20"></a> USB 2.0</h4><p>没什么好说的，非常简单。</p><ul><li>+5 VDC</li><li>Data -</li><li>Data +</li><li>Ground</li></ul><h4 id="usb-30"><a class="markdownIt-Anchor" href="#usb-30"></a> USB 3.0</h4><p>USB 3.0 相比 USB 2.0 多了一个差分信号，速度会快很多，属于高速信号（SI），越高速的信号layout要求越严格，例如TBT等等。</p><ul><li>针脚编号 1: 红色 - VBUS</li><li>针脚编号 2: 白色 - D−</li><li>针脚编号 3: 绿色 - D+</li><li>针脚编号 4: 黑色 - GND</li><li>针脚编号 5: 蓝色 - StdA_SSRX− / StdB_SSTX−</li><li>针脚编号 6: 黄色 - StdA_SSRX+ / StdB_SSTX+</li><li>针脚编号 7: Shield - 信号地用于降低噪声干扰</li><li>针脚编号 8: 紫色 - StdA_SSTX− / StdB_SSRX−</li><li>针脚编号 9: 橙色 - StdA_SSTX+ / StdB_SSRX+</li></ul><h3 id="音频电路"><a class="markdownIt-Anchor" href="#音频电路"></a> 音频电路</h3><p>最常见的是I2S，在I2C基础上做了一点点变更。还有PCM。</p><ul><li><strong>I2S_SCLK</strong>          下拉   串联22ohm电阻   I2S系统时钟输出，供I2S0&amp;I2S1设备工作</li><li><strong>I2S_SCLK</strong>          下拉   串联22ohm电阻   I2S位时钟输出</li><li><strong>I2S_LRCK_TX/RX</strong>    下拉   串联22ohm电阻   I2S声道选择输入/输出</li><li><strong>I2S_SDI0</strong>          下拉   串联22ohm电阻   I2S数据输入通道0</li><li><strong>I2S_SDI1SDO3</strong>      下拉   串联22ohm电阻   I2S数据输入通道1/输出通道3</li><li><strong>I2S_SDI2SDO2</strong>      下拉   串联22ohm电阻   I2S数据输入通道2/输出通道2</li><li><strong>I2S_SDI3SDO1</strong>      下拉   串联22ohm电阻   I2S数据输入通道3/输出通道1</li><li><strong>I2S_SDO0</strong>          下拉   串联22ohm电阻   I2S数据输出通道0</li></ul><p>Codec 在这里就暂时不讲了，方案很多，这里写不完。</p><h3 id="视频电路"><a class="markdownIt-Anchor" href="#视频电路"></a> 视频电路</h3><h4 id="edp"><a class="markdownIt-Anchor" href="#edp"></a> eDP</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/010.png" alt="eDP" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">eDP</span></div></div><p>eDP控制器参考电阻R1704需选用1%精度的电阻，该电阻会影响眼图信号质量；</p><h4 id="mipi"><a class="markdownIt-Anchor" href="#mipi"></a> MIPI</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/011.png" alt="mipi" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">mipi</span></div></div><p>MIPI-DSI控制器参考电阻R1707需选用1%精度的电阻，该电阻会影响眼图信号质量；</p><h4 id="hdmi"><a class="markdownIt-Anchor" href="#hdmi"></a> HDMI</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/012.png" alt="HDMI" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">HDMI</span></div></div><p>HDMI 需要注意防倒灌，在 CEC 的 DDC 上需要添加电瓶转换</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/013.png" alt="HDMI" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">HDMI</span></div></div><h3 id="摄像头电路"><a class="markdownIt-Anchor" href="#摄像头电路"></a> 摄像头电路</h3><h4 id="mipi-csi"><a class="markdownIt-Anchor" href="#mipi-csi"></a> MIPI CSI</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/014.png" alt="MIPI-CSI" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">MIPI-CSI</span></div></div><p>控制器参考电阻R1602&amp;R1603请选用1%精度的电阻，该电阻会影响眼图信号质量；</p><h3 id="uart电路"><a class="markdownIt-Anchor" href="#uart电路"></a> UART电路</h3><ul><li><strong>UART_RX</strong>      ： UART数据输入</li><li><strong>UART_TX</strong>      ： UART数据输出</li><li><strong>UART_CTSn</strong>    ： UART允许发送信号</li><li><strong>UART_RTSn</strong>    ： UART请求发送信号</li></ul><h3 id="sdio电路"><a class="markdownIt-Anchor" href="#sdio电路"></a> SDIO电路</h3><ul><li><strong>SDIO_DQn[0:3]</strong>   ： 串联22ohm电阻  SDIO数据发送/接收</li><li><strong>SDIO_CLKOUT</strong>     ： 直连          SDIO时钟发送</li><li><strong>SDIO_CMD</strong>        ： 直连           SDIO命令发送/接收</li></ul><h3 id="spdif"><a class="markdownIt-Anchor" href="#spdif"></a> SPDIF</h3><p>SPDIF全称为Sony/Philips Digital Interface Format是SONY、PHILIPS数字音频接口的简称。就传输载体而言，SPDIF又分为同轴和光纤两种，其实他们可传输的信号是相同的，只不过是载体不同，接口和连线外观也有差异。但光信号传输无需考虑接口电平及阻抗问题，接口灵活且抗干扰能力更强。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/015.png" alt="SPDIF使用同轴接口" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">SPDIF使用同轴接口</span></div></div><h3 id="pcie电路"><a class="markdownIt-Anchor" href="#pcie电路"></a> PCIe电路</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/016.png" alt="PCIE" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">PCIE</span></div></div><p>TX信号线的耦合电容应靠近PCIe连接座放置，RX电容由设备端提供；</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>片上SOC设计有非常多细节，复杂的如FPGA和CPU，简单的就是嵌入式微控制器。在电子设计中，大多如此，至少在当前10~20年变化不大，具有科技感的AR、XR都是微型片上SOC。从外围电路设计上其实没有多少难度，核心是光机的光波导镜片以及核心SOC。乍眼一看其实硬件设计原理上基本到头了，除非材料革命。硬件创造世界，软件改变世界。现在这个时代四处充斥着软件的影子，你对手机的每一步操作，对 AI 讲的每一段语音都是软件在起作用，硬件只不过是载体而已。当然不排除芯片设计了，芯片设计是纯粹的硬件设计（可能也不准确，FPGA 之类的又有程序参与），从简单的触发器寄存器，通过复杂的级联成CPU，PC的诞生至今也不过四五十年左右。希望未来能来得更快点。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="技术文章" scheme="https://blog.findingx.cc/tags/%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0/"/>
    
  </entry>
  
  <entry>
    <title>成长路上</title>
    <link href="https://blog.findingx.cc/2025/01/14/095958/"/>
    <id>https://blog.findingx.cc/2025/01/14/095958/</id>
    <published>2025-01-14T01:59:58.000Z</published>
    <updated>2025-07-11T01:38:06.158Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>最近太忙了，时间不允许，周记往后改成半月记或者月记吧，尽量回多输出一些内容。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年一月十日『上旬记』</span></div></div></div></div></p></div><h2 id="不要小看自己的一点点进步"><a class="markdownIt-Anchor" href="#不要小看自己的一点点进步"></a> 不要小看自己的一点点进步</h2><p>前段时间和大学同学聊微信。从毕业之后，我们从事了不同行业，工作上多少有点交集。刚毕业那会找工作目标都不是很明确，只知道我们的专业能找什么杨的工作，但是行业很少思考过。</p><p>他是做汽车电源方面的，那玩意着实复杂，汽车上的电源设计没有集成方案，大多是手动搭建放大器，一级一级处理电路波形。短短的这两年时间，他的进步是飞速的，刚毕业从将近零基础开始，到现在虽不能说精通，但也是一点一点的微小进步积累起来的。</p><p>理论规理论，实践出真知，不要小看自己的一点点进步。路还很长，要走好每一小步。</p><h2 id="忙于工作"><a class="markdownIt-Anchor" href="#忙于工作"></a> 忙于工作</h2><p>到过年前的这几个星期估计都有的忙了，手上接到了一个项目，第一次做这么大改动的图纸，难免有点担心，某些地方会有疏漏，事实也是这样，一两天就能把图做完，后面的半个月时间一直在修补遗漏和 layout 需要修改的地方。</p><p>也是到今天，才真正意义上理解了 Intel 硬件部分包括电源以及时序部分的逻辑。大体上所有 CPU 类的基本都一样吧，只是需要看看芯片手册。算到现在应该完完整整的两年了。原本刚拿到项目时改动几乎屈指可数，于是便接下了，结果第二天开会说要大改，差一点就想放弃了，因为相对精力会花的更多。</p><h2 id="玩机"><a class="markdownIt-Anchor" href="#玩机"></a> 玩机</h2><p>玩机人总有一个不眠夜，是的，他成砖头了，不到 18 小时的时间，从正常使用的变成了刷机串口都抓不到的砖头，连刷两次，以为是转机，但却将它一步一步推向深渊。这是台 mtk 的机子，mt6765，以后真的不能乱刷系统了，他不像瑞芯微，瑞芯微有强刷模式，不论程序是否有问题，进入强刷模式都能将砖头救活，折腾了一天无果，放弃了。以后刷机还是找好教程，每个平台都有所不同，不过可能这也是我最后一次玩机了。</p><h2 id="水逆"><a class="markdownIt-Anchor" href="#水逆"></a> 水逆</h2><p>人特别是在不顺的时候，常常祸不单行（手机喇叭坏了，电话接不了，后摄坏了一个+前摄坏了，iphone5被锁机，然后备用机刚刚被我刷坏了…），因此不顺是不要轻易做决定，很可能会更糟。我想我需要挑选一天，早早下班，漫步在街头巷尾，放松心情，感受城市的喧嚣。虽然无法摆脱一些不愉快，但至少不会深陷负反馈的泥潭。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/2025/01/009.jpg" data-fancybox="true"/></div></div><h2 id="教育"><a class="markdownIt-Anchor" href="#教育"></a> 教育</h2><p>中国的教育最耳熟能详的就是高考。对于很多人来说是转折点。高考源于什么？</p><p>我国的高考将中国从农业大国迅速变成工业大国，但还没有彻底转变，当代中国教育强调理科学特别是数学，都是为了培养大批工程师。走的是前苏联，前苏联真的是德意志的路。这么多年的工业化，至今有一样东西仍然没有变，就是农业全面自动化，第七次人口普查（2021）数据显示中国农村人口占总人口36.11% ，而日本仅 8%，美国仅 2%，在中国一个农民能养活七个中国人（2014 年数据），在德国一个农民能养活一百五十个人（2014 年数据）。彻底解决了农业自动化问题才是走出当下困境的关键。</p><p>以前常听有人批判高考制度，和英美去比较。但这不是同一类教育制度，是没办法直接比较的。从当下中国仍然没有完全从农业国度蜕变到工业国度。至少在没有完全实现农业自动化前，中国的教育制度不会有很大变化。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>将鼠标静音</title>
    <link href="https://blog.findingx.cc/2025/01/01/004915/"/>
    <id>https://blog.findingx.cc/2025/01/01/004915/</id>
    <published>2024-12-31T16:49:15.000Z</published>
    <updated>2025-07-11T01:38:06.134Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>记录新年2025第一天熬夜折腾鼠标，新年第一天熬夜。生命在于折腾，只是不经意间来到了 2025</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二五年一月一日</span></div></div></div></div></p></div><p>鼠标不太灵敏了，打算拆开弄弄，发现是导光柱歪了，摆正之后不会再指针不会再飞了。一时兴起想拆开鼠标摁键看一看到底是哪里在响。</p><p>拆开长这样</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/将鼠标静音/1.png" alt="开关内部结构" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">开关内部结构</span></div></div><p>当你摁下时</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-6" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/将鼠标静音/2.png" alt="常态"/><div class="image-meta"><span class="image-caption">常态</span></div></div><div class="grid-cell"><img data-fancybox="gallery-6" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/将鼠标静音/3.png" alt="闭合（摁下）"/><div class="image-meta"><span class="image-caption">闭合（摁下）</span></div></div></div><p>响的原因在于，金属片弧形部分有弹力，右侧力度达到能够促使金属片形变程度后，左侧会立即闭合，产生鼠标点击声音，想要消除只需把金属片反过来，例如：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/将鼠标静音/5.png" alt="翻过来后就静音了" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">翻过来后就静音了</span></div></div><p>这样声音减小了很多，但也带来了问题，手指触感没有之前那么好，软绵绵的，摁下去阻力非常小。</p><p>如果你想在深夜使用非静音鼠标，可以试试这个方法，但需要注意的是，有的鼠标用的并非是这种摁键，如果是方形无法拆卸的那种就不适用了。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>从二四年最后一天晚上开始倒腾鼠标，修修补补，转眼间就 2025 年了，今年跨年没了曾经的感觉。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="鼠标" scheme="https://blog.findingx.cc/tags/%E9%BC%A0%E6%A0%87/"/>
    
    <category term="硬件" scheme="https://blog.findingx.cc/tags/%E7%A1%AC%E4%BB%B6/"/>
    
    <category term="DIY" scheme="https://blog.findingx.cc/tags/DIY/"/>
    
  </entry>
  
  <entry>
    <title>2024·年终</title>
    <link href="https://blog.findingx.cc/2024/12/31/212542/"/>
    <id>https://blog.findingx.cc/2024/12/31/212542/</id>
    <published>2024-12-31T13:25:42.000Z</published>
    <updated>2025-07-11T01:38:06.155Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>很快，时间来到了年末，距离25年还有五天，龙年告一段落，明年将迎来 <code>Python</code> 年，又是一个轮回。这是我第一次写年终总结，虽然标题是 2024 年终总结，但感觉更像是建站这四年来的以及自身的总结思考，四年的回忆太多太多，挑着说说吧。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十二月二十七日『年终』</span></div></div></div></div></p></div><h2 id="我的第一个博客和第一篇文章"><a class="markdownIt-Anchor" href="#我的第一个博客和第一篇文章"></a> 我的第一个博客和第一篇文章</h2><p>小站历经了将近五个春秋，是的，我第一篇是 hello world，我仍然保留着，曾经是置顶，后来频繁换主题就没有继续了。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/9.png" alt="helloworld.md" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">helloworld.md</span></div></div><h3 id="我是怎么发现博客的"><a class="markdownIt-Anchor" href="#我是怎么发现博客的"></a> 我是怎么发现博客的</h3><p>时间太久记不清了，我想应该是国光。国光是网安行业的博主，而我当时又痴迷于此，有幸注意到了<code>由 hexo 强力驱动</code>的字样，于是四处搜寻，有了 GitHub 账号，搭建了第一个博客，主题是 next。</p><h3 id="记录生活或技术文章"><a class="markdownIt-Anchor" href="#记录生活或技术文章"></a> 记录生活或技术文章</h3><p>真正开始写博客应该是今年年四月吧，虽然小站是 2020 年建立的，至今过去了近五年，之前的文章更新得很零散，更新断断续续。今年一年的文章数量抵过前几年的文章数总和。2024 年以前的文章，都是记录我在课余时间学习和参赛时，见到和学到的东西，或者一些自认为好玩的的东西，记录一下折腾过程。24 下半年开始稍微转向记录生活，不时更新技术文章。</p><h3 id="博客社区"><a class="markdownIt-Anchor" href="#博客社区"></a> 博客社区</h3><p>第一个博客社区是 Volantis 主题交流群，算是我第一个开始自己学着魔改的博客，看群里的大佬们分享交流前端技术，跟着魔改。</p><p>第二个社区就是开往了，加入开往是今年十月的事，虽然才两个月，感觉像是找到了组织。记得早在 23 年还是 22 年曾见到过有些博客上有开往的图标，可能当时没太关注吧。也正是开往，让我认识了很多的小伙伴，也让我认识了很多的大佬，膜拜大佬恒等式（群除我佬）：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mfrac><mi mathvariant="normal">群</mi><mi mathvariant="normal">我</mi></mfrac><mo>=</mo><mi mathvariant="normal">佬</mi></mrow><annotation encoding="application/x-tex">\frac{群}{我}=佬</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.363em;vertical-align:-0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.677em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord cjk_fallback">我</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord cjk_fallback">群</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0em;vertical-align:0em;"></span><span class="mord cjk_fallback">佬</span></span></span></span></span></p><h3 id="博客主题"><a class="markdownIt-Anchor" href="#博客主题"></a> 博客主题</h3><p>可能都会有这个经历吧，折腾主题，隔几天折腾一下，隔几个月换个主题，我在 21 年前后就是这样，前前后后折腾了 15 个主题。</p><h2 id="我大学的四年"><a class="markdownIt-Anchor" href="#我大学的四年"></a> 我大学的四年</h2><p>熟悉我的朋友可能知道，我是零零后，01年生，也就是19级学生。2019年开始了为期四年的大学生活。高考的失利让我别无选择（也不算是失利吧，简言之就是偏科）。专业选了电子信息，起初我的本意是读计算机的，那时候我可能也就只知道计算机这个专业吧。</p><p>一切都是新的，我十分期待这四年的时光。初次班会，在老教授的介绍下，大致摸到了这四年的路，只是模糊的，看不清。电子信息基础是电学，但实则并非纯电，还有如嵌入式和FPGA等偏软方面的课程，越是到后面，分的越细，几乎都是和芯片打交道的学科，用程序控制硬件。</p><p>虽然说没有选计算机，但电子信息却正是我喜爱的。刚入学听说社团招新，我就加入了科协。加入科协也是运气，入学前在新生群遇到了很E的社长（社长也是电子信息专业），起初我只是想知道我要这四年将要学什么而已，后来聊着聊着便起了兴趣。刚入学的小半年学了C51，下学期入手ESP32和小程序好，大二真正意义上实操STM32。其实这时候我已经偏离了协会成员们的主要方向，参赛大多与小车有关，还有就是蓝桥杯和电赛。我执着于物联网硬件和网安，差不多在大二这一年的时间里都在做物联网相关的东西，几乎每一片板子都带有espressif家的芯片。</p><p>这是我 19 年的老照片，当时进了协会，老师给了我们一间实验室。实验室比较偏，每天都在放音乐，也不会扰民。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/1.jpg" alt="19年的老照片" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">19年的老照片</span></div></div><p>实验楼的机房当时刚装修好，没有人上课，就问老师借用了机房。（近乎住在那里了</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/2.jpg" alt="机房" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">机房</span></div></div><p>当时每天必用的设备除了电脑就是树莓派，树莓派我入手于21年，两年的时间我在树莓派上也折腾了不少东西，openwrt，以及各种系统安装，第一个mc服务器就是在上面搭建的。后来贸易战持续，价格飞升，涨了一倍不止，于是转手卖了。</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-1" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/3.jpg" alt="树莓派win10"/><div class="image-meta"><span class="image-caption">树莓派win10</span></div></div><div class="grid-cell"><img data-fancybox="gallery-1" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/4.jpg" alt="树莓派linux服务器"/><div class="image-meta"><span class="image-caption">树莓派linux服务器</span></div></div></div><p>后两年（大三和大四）一直在关注人工智能机器学习什么的，为毕设做准备。刚开始玩视觉的时候，在实验室一坐一整天。摄像头就在实验室摆着，进来个人自动扑捉。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/5.jpg" alt="一只被误认为是人的书包" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">一只被误认为是人的书包</span></div></div><p>我的毕业设计做的是姿势识别方面，轻量级应用，原本demo是跑在手机等平台的，甚至有js的代码，对没错，在浏览器调用你的摄像头进行识别，安卓App本质上也就是个浏览器窗口。为了做毕设自己摔了不少回，后来发现可以用别人摔倒的视频替我摔倒。。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/test_5.jpg" alt="为了做毕设摔了不少回的我" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">为了做毕设摔了不少回的我</span></div></div><p>我属于什么都看但什么都学但学得不精。就机器视觉吧，感觉是原理都明白，实践起来的时候感觉就是一行命令的事情，之前学的原理好像都没用上。后来才知道他们都是写好的库，算法都包在库里。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/6.jpg" alt="image" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">image</span></div></div><p>同样也是大三，接触到的游戏越来越多，手游，端游，这一年运动少了，几乎就没有离开过实验室（几乎是住在实验室了）。</p><p>这四年有很多失去的和得到的，也有很多的遗憾，但一切都在23年5月的毕业典礼结束了，结束了我的校园生活，结束了我的学生时代。</p><p>这四年有个小插曲也应当被记住，那就是疫情，疫情夺走了我大学的三年，三年被封锁，没有办法出校门（有一年还是在家上网课），去想去的地方。现在回想，感觉大学和高中差别不大，只是学校大了一点。</p><h2 id="这一年打工人的我"><a class="markdownIt-Anchor" href="#这一年打工人的我"></a> 这一年打工人的我</h2><p>运气占了很大成分。</p><p>毕业了没有读研，直接转变身份为社畜。这份工作是运气吧，大四上学期末开始海投简历，看到和电子相关就投，闭着眼睛投了可能都有一两百份了吧，一家PC厂回复并沟通后，人事一面顺利通过；二面的时候有点紧张，技术面试有几道问题答的不完全正确，还有一道错了，本不抱希望，却在几天后收到了录用通知。</p><p>报道第一天看了宿舍，签了三方和保密协议，认识了几个朋友。</p><p>印象最深的就是第一次看图纸，几十页的原理图放在我面前，脑袋一阵嗡嗡作响，不知道怎么看，不知道从哪部分看起。大学接触过最复杂的最多页面的图纸也就是稚晖君的小电视了，全志H3和一个DDR，讲真那时候没看太明白，知道大概怎么回事。而现在面前这份几十页的图纸让我不知所措，我想着，完蛋了，我这哪里搞得定呐，两三千个电子元件，几万条net（线路）。后来换了个想法安慰自己说，还有比这更复杂的比如服务器和芯片设计什么的，先试试吧，不懂就问。</p><p>还是运气，我遇到一个好师傅，入职第一天分到了座位，对环境陌生的我选了一个靠窗近一点的地方，结果几天后熟悉了发现，边上就是领导，而且是好几个。摸鱼都没法摸鱼了QAQ。</p><p>说远了，师傅很有耐心，我对图纸有任何不懂的都会一一解答，给我讲解大致的原理，捋清思路，懂得很快。当时的感觉就是醍醐灌顶，重看一遍秒懂其中玄机。</p><p>任何工作都需要细心，而我恰好存在小毛病（当年高考数学就是这么丢分的），如今又做了一份一个小错误将会付出巨大成本的工作。现在我开始独立做项目，既有期待又有担忧，希望自己能做到做好吧。</p><h2 id="这一年业余中的我"><a class="markdownIt-Anchor" href="#这一年业余中的我"></a> 这一年业余中的我</h2><p>先从我的设备说说吧，这是一台黑果和一台window，还有一台联想M910X和我那陪伴我五六年的Kindle8（没有拍照，在以往的文章中有）</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/7.jpg" alt="黑果和win" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">黑果和win</span></div></div><p>黑果是我毕业这小半年才学会安装的，一台仿MacBook Pro，一台仿iMac。黑苹果MacBook Pro是我的主力机，黑苹果iMac已经成为服务器了，搭建了php和一些web服务。</p><p>Kindle已经陪伴我五六年了，高中还是经常用，那时候本人还处于“离线模式”，不会上网冲浪。大学之后Kindle就开始积灰，直到今年下半年，我终于想起了他。给他越狱，解锁各种功能。</p><p>从今年年初开始，我突然意识到，前半年（23年6月后到24年初）的时间我都在研究工作方面的内容，却忘记了自己的爱好。于是捡起来博客，捡起了嵌入式，捡起了运维。早在今年三四月份就有了做机器人的想法，闲鱼上的都太贵，没舍得花钱。那时候已经有了大致的构思，要怎样的框架，以及如何实现。蒸汽核心是第一个赋予实施的小制作。功夫不负有心人，十一月在闲鱼捡漏捡到了RK3399PRO，NPU带有DDR的核心板，话不多说，直接买三个，本来想买四个的，商家之后三个了。希望能在25年带着白泽号出门看世界吧。感觉最近每次周记老在讲白泽号，总感觉不太好（）</p><h3 id="mc"><a class="markdownIt-Anchor" href="#mc"></a> MC</h3><p>有段时间和朋友联机MC，这里放些图。最开始是和朋友玩起床战争，爽玩PVP。后来就是这个，整合包叫什么忘记了。</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.03.52.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.02.46.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.07.07.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_22.45.22.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.24.23.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.24.11.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.19.53.png"/><div class="image-meta"></div></div><div class="grid-cell"><img data-fancybox="gallery-2" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/mc/2023-08-31_23.19.48.png"/><div class="image-meta"></div></div></div><h2 id="我的主力工具"><a class="markdownIt-Anchor" href="#我的主力工具"></a> 我的主力工具</h2><h3 id="siyuan"><a class="markdownIt-Anchor" href="#siyuan"></a> Siyuan</h3><p>我的工作流是23年和24年逐渐成型的，第一个助力软件是siyuan，23年笔记主力工具，24年没怎么写，主要在博客更新文章。siyuan知识库里的文章数已经很多了，右侧的关系图只打开了标题统计。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/12.png" alt="我的工作流" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">我的工作流</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/11.jpg" alt="我的热力图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">我的热力图</span></div></div><h3 id="kodbox"><a class="markdownIt-Anchor" href="#kodbox"></a> Kodbox</h3><p>这是一个企业网盘软件，他不仅是个网盘，上面还有项目管理和其他众多插件，免费版最多可以10人使用。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/13.png" alt="kod插件管理" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">kod插件管理</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/14.png" alt="kod项目管理" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">kod项目管理</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/15.png" alt="kod文件管理" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">kod文件管理</span></div></div><h3 id="sourcetree"><a class="markdownIt-Anchor" href="#sourcetree"></a> Sourcetree</h3><p>这是一个图形化git工具，只有win和mac，linux没有。适用于懒得记git命令和git小白。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/2024/16.png" alt="kod文件管理" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">kod文件管理</span></div></div><h2 id="2025"><a class="markdownIt-Anchor" href="#2025"></a> 2025</h2><p>希望2025年的我</p><p>能在坚持更新博客，<br />能带白泽号看世界，<br />能脱单，<br />能在专业上更进一步，<br />能完全独立处理复杂的图纸，<br />能每月读一本书，<br />能每周坚持打乒乓球，<br /><em>…暂时想到这些，想到再更新…</em></p><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>感谢读到这里的朋友，我的文笔不是很好，持续更新写周记的也是想提升吧。2024年已经离去，忘记那些不开心的事，带着希望迎接2025。25的一切都是崭新的，希望学生的你能学业有成，考公的你能早日上岸，抗争病魔的你能早日康复，打工人的你能步步高升。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-51</title>
    <link href="https://blog.findingx.cc/2024/12/20/162627/"/>
    <id>https://blog.findingx.cc/2024/12/20/162627/</id>
    <published>2024-12-20T08:26:27.000Z</published>
    <updated>2025-07-11T01:38:06.158Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>是忙忙碌碌的一周，工作占据了我大部分的日常，好在一切顺利，没有被高强度的工作拉跨。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十二月二十日『第五十一周』</span></div></div></div></div></p></div><h2 id="小记"><a class="markdownIt-Anchor" href="#小记"></a> 小记</h2><p>每天都会路过一条街，两侧都是路边摊，浓郁的烧烤味和酱香味散布在整条街道。自从地摊经济开始发展，确实不在是冷冰冰的城市了，有了些许生活的气息。</p><p>小时候牵着父母的手，周围都是高大的黑色人影和冰冷的玻璃块，那时候不是很明白，就只是跟着走着。回想起那时候看到的，就像是《齐马蓝》里面的街道（可能是个头太小了或者是记忆模糊了吧）。</p><h2 id="linux-macos"><a class="markdownIt-Anchor" href="#linux-macos"></a> Linux &amp; macos</h2><p>如今本地服务又重新上线了，项目管理和云盘存储以及 mc 服务器全部迁移完毕，mysql 由于没有导出数据库，如果要从系统文件中恢复，需要安装同版本然后搭建，懒得弄了，反正数据量不大，手动重新配置吧。</p><p>我开始由于，要继续使用 Linux 做服务器还是改用常用的 macOS 搭建，我选择 macOS，原因很简单，不想频繁切换系统，Linux 和 macOS 是安装在一台物理服务器上的。</p><p>相比之下 Linux 确实跑服务或者开发环境相对好一点点，但是软件生态很多厂家都没有适配 Linux 的软件，前几天看到微信竟然出了 Linux 版本，用起来感觉不错，大部分 pc 上的功能他都有，还能刷朋友圈。macOS 的话 ui 方面没得说，软件生态也不错，跑跑 apachectl 和 mysql 什么问题不大。其实有一点奇怪在于，Linux 下开 mc 服务器，CPU 占用率 40% 以上，但是 macOS 占用率就不是很高，可能是对内核分配的机制不太一样吧</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202451/1.png" alt="活动监视器" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">活动监视器</span></div></div><h2 id="白泽号"><a class="markdownIt-Anchor" href="#白泽号"></a> 白泽号</h2><p>上一版回来了，也测试了功能，整体单个差不多这样，两个上下搭起来， 然后是一个失误，开机键没接，还得飞线，下一版再改。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202451/6.jpg" alt="pcba" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">pcba</span></div></div><p>最近在看机器学习和 NLP 相关的资料，按计划排因该到做 NLP 部分了，但是发现好些知识储备不足，还得学学。好在有些基础，曾经了解过机器视觉方面的东西，理解起来不是很难。最开始看 NLP 课程发现机器学习的部分知识已经忘记了，回头又去看吴恩达的机器学习课程。想从底层开始写，还是要学扎实点。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202451/2.png" alt="甘特图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">甘特图</span></div></div><p>硬件第二版相对第一版更注重 layout 设计而不是原理部分，原理部分第一版已经调通了。</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-9" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202451/3.png" alt="3D正面"/><div class="image-meta"><span class="image-caption">3D正面</span></div></div><div class="grid-cell"><img data-fancybox="gallery-9" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202451/4.png" alt="3D背面"/><div class="image-meta"><span class="image-caption">3D背面</span></div></div></div><p>这版呢，升级了一下，苦于信号质量和层数之间的选择，用了 6 层板。脑袋部分嘛，用独立电源设计，外设有外设的电源，这样能减小体积，也能将核心单独从整体中抽离出来成为小型机器人。背面预留了一个小借口，和外部 MCU 通讯，通过 MCU 上连接的外部传感器感受世界。结构正在构建中，还没形成具体形态。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202451/5.png" alt="layout" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">layout</span></div></div>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-50</title>
    <link href="https://blog.findingx.cc/2024/12/13/164452/"/>
    <id>https://blog.findingx.cc/2024/12/13/164452/</id>
    <published>2024-12-13T08:44:52.000Z</published>
    <updated>2025-07-11T01:38:06.157Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>所以，机器人三(四)定律是符合常理的吗？是为了构建而构建的，还是他就是真理。机械师时常在想，人类处理信息的本质是什么，创造的本质又是什么…</p></div></div><div class="footer"><div class="author-date"><span class="author">白泽号的机械师</span><span class="date">二〇二四年十二月九日『第五十周』</span></div></div></div></div></p></div><h2 id="小记"><a class="markdownIt-Anchor" href="#小记"></a> 小记</h2><p>未来几天又是速冻，短短几天，见证一年四季。也可能是这样的季节，或许是新冠又找上门来了，每一根骨头都在嚎叫，但好在来得快也去得快，元气恢复了大半，头还晕呼呼的，就开始上网冲浪了。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202450/6.png" alt="天气" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">天气</span></div></div><p>时间过得真快，不，是太快了，从未有过这样的感受，可能是三点一线的重复吧，每一天都是三点一线，家-地铁-公司，公司-地铁-家。记得毕业后的那半年，爬过山，去过书城，拍过晚霞，追过日出，和老友一起打球，和朋友一起看海，和同学一起聚餐，有空会去打一打舞萌，没空就去手机打屁股肉。也许周围的朋友们是工作的工作，考研的考研，赶论文的赶论文，大家甚至都不在一个城市，相聚的成本越来越高。我更多的精力也放在了阅读和对专业的深究上，我时常在想，那些涉猎范围及广的人是怎样安排处理自己的时间的，也许是有更高效的获取途径吧。</p><p>也偏偏是在这周，事情从四面八方袭来，先是工作负荷猛增到 90%，再是认证材料和政策的问题，接着服务器卖掉了，导致我的 MC 服务器以及项目管理软件无法及时迁移，让所有的事情都被打乱了。乱，真的忙不过来。好在事情不是很多，但都是很重要的事，以后服务器需要用更加便捷的备份迁移方式，一旦出了岔子，世界都乱了。我想可能得把白泽号搁置一下了。</p><h2 id="博客字体"><a class="markdownIt-Anchor" href="#博客字体"></a> 博客字体</h2><p>在小氯周记看到了<a target="_blank" rel="noopener" href="https://chinese-font.netlify.app/zh-cn/">中文网字计划</a>，进去一看，页面字体不正是我的博客正在用的吗，找到老宋体点开，终于找到了在线调用他的方式了，我的博客之所以加载慢，部分原因是 3M 的字体需要下载到本地<s>主要因素是素材太多了</s>，原本的字体有27M左右，这还是删除了繁体日韩语之后再压缩的大小，现在终于可以一行代码调用了。</p><h2 id="白泽号"><a class="markdownIt-Anchor" href="#白泽号"></a> 「白泽号」</h2><p>白泽号大脑部分的神经细胞大部分构建好了，机械师能够看见他思维框架，至于细胞的分工还没有明确，所以只能做一些简单的反射，展示心灵视窗，读取外部信息如 USB，TFcard。白泽号的眼睛和耳朵以及可能存在的四肢机械师没有做，机械师有点忙<s>其实机械师在摆烂中，在 MC 的世界里无法自拔</s>。</p><p>机械师一直在考虑白泽号的名字，曾想过取名为「玖」，9宇宙中最大的数字，或许是因为看了《机器人9号》的缘故吧。但思来想去，在敲下这行字的时候改变了想法，还是白泽号。白泽，中国古代神话中的瑞兽。<strong>能言语，通万物之情，知鬼神之事</strong>，“王者有德”才出现，能辟除人间一切邪气。机械师希望他能够能通语言，会思考，通晓天地之事物。</p><p>对于人类生活的城市，太多的台阶直觉上没有哪种车轮或履带能够比双足、四足更好，机械师在想，是否要为他打造两条腿，虽然这与机械师的想法不完全相符，毕竟是为了适配不同的环境而生，若是想要切换到如室内这样平坦的地面，轮子或许是更好的选择。</p><p>机械师在第一次给白泽号充电时，心灵视窗的出现让机械师开心坏了(<s>一句卧槽，响彻云霄</s>)。机械师给这个初版的的版本命名为<code>B1.0.0_GB0.1.20241129_Base</code>，没错，这个版本号是有点长，这里包含了软件硬件的版本信息，至于结构嘛，暂时不加入了，结构与场景相匹配比较合适一点。下一版的版本号也计划了<code>BaiZe_V1.0.0_GB0.1.2024XXXX_Base</code>，补上了初版没有添加 <code>baize</code> 缩写。同时也对蒸汽核心进行了重构，更新为<code>CoreOfSteam_V1.0.0_GB0.1.2024XXXX_Base</code>，初版由于 IC 的资料相对较少，且产品老旧 bug 多，正在考虑哪一款能胜任心脏的职位。</p><div class="tag-plugin gallery grid-box" size="xl" ratio="origin"><div class="grid-cell"><img data-fancybox="gallery-7" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202450/1.jpeg" alt="记录第一次充电"/><div class="image-meta"><span class="image-caption">记录第一次充电</span></div></div><div class="grid-cell"><img data-fancybox="gallery-7" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202450/2.jpg" alt="看到老旧的心灵视窗"/><div class="image-meta"><span class="image-caption">看到老旧的心灵视窗</span></div></div><div class="grid-cell"><img data-fancybox="gallery-7" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202450/3.jpg" alt="大脑信息"/><div class="image-meta"><span class="image-caption">大脑信息</span></div></div><div class="grid-cell"><img data-fancybox="gallery-7" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202450/4.jpg" alt="两瓣大脑组"/><div class="image-meta"><span class="image-caption">两瓣大脑组</span></div></div></div><p>初代的神经线路也就是简简单单的点对点接通，没有复杂逻辑，毕竟还是版本还是在 Base 阶段。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202450/5.png" alt="神经线路" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">神经线路</span></div></div><p>计划着后面开个白泽号的专栏，或者考虑新开一个网站给白泽号，为白泽号添加了语言中枢（NLP）后再让他来说自己的故事吧。最近机械师的工作也忙了起来（这回不是沉迷 MC 了），机械师希望能白泽号能尽早地看到人类的世界。（其实这颗 IC 真的不知道能不能跑出理想效果，好在我有两个，第三个没修好。当下最新出的 NPU 比现在手头这款速度快好几倍，还支持零拷贝。）</p><h2 id="建模的逻辑"><a class="markdownIt-Anchor" href="#建模的逻辑"></a> 建模的逻辑</h2><p>机械师为白泽号 3D 建模的工具是闭源工具，机械师要开源白泽号，那么结构设计部分便成了绊脚石。于是机械师百般寻找开源并社区支持不错的的CAD建模工具，但始终无果，想尝试回到老朋友Blender做精密建模，偶然间想到Blender的社区如此强大，虽然自身没有精密建模的功能，说不定社区的大佬们已经做好了轮子，顺着思路一搜还真搜到了，<strong>PDT插件</strong>。同时再有测量插件<strong>MeasureIt</strong>的加持，可以从<strong>CAD设计师</strong>的角度建模了。游戏建模或者ID设计者和CAD设计师的建模逻辑大有不同，前者是通过3D网格添加顶点以调整曲面形状行程复杂的形状，后者则是从平面挤出响应的立方体以及多边形，然后再去切割，这样能够达到更高的精度。</p><p>只可惜我尝试安装时，由于版本更新还未兼容，无法安装使用。</p><p>在此引用一段<a target="_blank" rel="noopener" href="https://docs.blender.org/manual/zh-hans/3.4/addons/3d_view/precision_drawing_tools/introduction.html">PDT</a>简介的话，他这里说的十分透彻</p><blockquote><p><strong><a target="_blank" rel="noopener" href="https://docs.blender.org/manual/zh-hans/3.4/addons/3d_view/precision_drawing_tools/introduction.html#interestingly">有趣的是</a></strong><br />在 <code>CAD设计师</code> 和 <code>多边形建模师</code> 的工作方式上肯定是有区别的。多边形建模师，也就是传统的<code>Blender</code>用户，往往从一个基本的原始3D网格开始，比如一个立方体，或者一个圆柱体，然后开始添加边缘循环来切割它，挤出部分来使其更加复杂，添加 <code>孔</code> ，然后再加工这些。他们通常会使用细分修改器来使模型更加详细，而CAD设计师认为这些修改器在很大程度上是不合适的，会降低精度。这意味着CAD建模者的网格中会有更多的顶点，但在考虑到所有因素后，可能是差不多的。</p><p>CAD建模人员几乎不会根据以前的图纸或照片来建模，他们总是只根据报价的尺寸来工作。为此，想想一张比例为50:1的图纸 - 一条宽度为0.5毫米的线在现实世界中实际上是25毫米厚。许多图纸上都写着<strong>不要按比例</strong>的口号 - 这是有原因的，古老的传统手绘图纸首先不一定是准确的。</p><p>传统的CAD设计师（我用 CAD 这个词指的是被认为是计算机辅助设计的产品，如SolidWorks、AutoCAD、MicroStation等）倾向于制作一个精确的平面环，如支架的正面或建筑物的墙壁，然后将其挤出，或 &quot;翻转 &quot;为一个三维网格。长期以来，人们一直认为这种方法会带来更精确的模型，例如，可以用于3D打印。</p><p>PDT旨在将这种工作方法引入Blender，使所有类型的CAD设计师都能从中受益，并增强多边形建模器的工具。它是由一位在绘图室有多年经验的前机械设计工程师开发的，使用手绘和CAD技术。</p></blockquote>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-49</title>
    <link href="https://blog.findingx.cc/2024/12/06/164452/"/>
    <id>https://blog.findingx.cc/2024/12/06/164452/</id>
    <published>2024-12-06T08:44:52.000Z</published>
    <updated>2025-07-11T01:38:06.157Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>停下脚步，看看那一望无际的星空，那是浩瀚宇宙千年前的光，那是宇宙的历史，我们所看到的，多是来自亿万年前的景色</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十二月二日『第四十九周』</span></div></div></div></div></p></div><h2 id="小记"><a class="markdownIt-Anchor" href="#小记"></a> 小记</h2><p>周一的天空是云山蓝的(#2f90b9)，风很轻，天上没有一丝云。晚上回家，刚出地铁站，一股寒意扑面而来，不由得抬头看了一眼天空，漆黑的夜色点缀着十来颗星。看着夜空的星图，熟悉又陌生。！那是猎户座，百光年外的蓝巨星（参宿七）发出的光芒。思绪立刻回到了奋力拼搏的高三，黎明十分，洗漱完后带上眼镜看向天空，七颗北斗星印在深邃的画布上我盯着它许久，那是我第一次看见星图，第一次看见北斗七星。那一年，一连好几天都有，他就那样高高的挂着。奶奶说七星会随着最亮的勺柄转动。这几天我起床后都会去看看，看它是不是真的在转动。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202449/4.png" alt="猎户座" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">猎户座</span></div></div><p>又是平凡的一个工作日，下了公交过了繁忙的十字路口，转过围墙，一簇阳光从楼与树见散落，丁达尔告诉我们，光波的波长稍大于雾气微粒就会发生散射，微粒越接近光波长效应越明显。这就是我们小学二年级熟知的丁达尔效应。走过光柱，感受日光带来的温暖。</p><p><s>&lt;img src=&quot;./images/没拍照片.jpg&quot;/&gt;</s></p><h2 id="心脏拼接"><a class="markdownIt-Anchor" href="#心脏拼接"></a> 「心脏」拼接</h2><p>板子终于回来了，焊接的时候发现，立创的板子预热后有股清香，不知道是不是加了什么新材料，也有可能是我那低温锡膏的味道。曾经设想过很多，但从没实践过，希望能一切顺利吧~<br />我这个一拖再拖的性子回板都两三天了，还没焊接完。</p><p><s>不要问那个歪歪的大方块为啥歪，问就是画小了</s></p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202449/1.jpg" alt="第一条管道" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">第一条管道</span></div></div><h2 id="又是折腾"><a class="markdownIt-Anchor" href="#又是折腾"></a> 又是折腾</h2><p>其实也不算折腾，搭建了一个MC服务器，内存着实有点不够用。需要用 Java17 才行，很久很久以前，用<a href="/2022/06/08/120705/">树莓派4搭建过MC服务器</a>，现在还需要搞个内网穿刺公网才能访问。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202449/1.png" alt="客户端" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">客户端</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202449/2.png" alt="服务端" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">服务端</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202449/3.png" alt="挖树的性能" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">挖树的性能</span></div></div>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>初识法语键盘</title>
    <link href="https://blog.findingx.cc/2024/12/05/225718/"/>
    <id>https://blog.findingx.cc/2024/12/05/225718/</id>
    <published>2024-12-05T14:57:18.000Z</published>
    <updated>2025-07-11T01:38:06.147Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>法语键盘是学习法语的必修课，否则记笔记和写文章都会寸步难行。法语键盘有两种主流，加拿大和法国。加拿大法语键盘和标准英美键盘十分接近，而法国键盘则有很大的不同，尤其是元音键和字母键的位置。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十二月五日</span></div></div></div></div></p></div><h2 id="法语键盘的布局"><a class="markdownIt-Anchor" href="#法语键盘的布局"></a> 法语键盘的布局</h2><p>对于常用字母部分，区别主要在qa和zw位置相反，其他符号位置有很大不同。windows上需要根据不同的键盘先后摁下才能输入特殊字符，如果是macOS长摁选择即可。</p><p>法国法语键盘的布局：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/1.png" alt="法国法语键盘布局" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">法国法语键盘布局</span></div></div><p>加拿大法语键盘的布局：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/2.png" alt="加拿大法语键盘布局" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">加拿大法语键盘布局</span></div></div><h2 id="特殊符号"><a class="markdownIt-Anchor" href="#特殊符号"></a> 特殊符号</h2><ol><li>L’accent aigu 闭音符(尖锐的音符)：é</li><li>L’accent grave 开音符：è, à, ù</li><li>L’accent circonflexe 长音符：ê, â, î, ô, û</li><li>Le tréma 分音符：ë, ï, ü</li><li>La cédille 软音符：ç</li></ol><h2 id="加拿大法语键盘输入方法"><a class="markdownIt-Anchor" href="#加拿大法语键盘输入方法"></a> <strong>加拿大法语</strong>键盘输入方法</h2><h3 id="长音符ê-â-î-ô-û"><a class="markdownIt-Anchor" href="#长音符ê-â-î-ô-û"></a> 长音符：ê, â, î, ô, û</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/CA-1.gif" alt="加拿大法语键盘布局--长音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">加拿大法语键盘布局--长音符</span></div></div><h3 id="开音符è-à-ù"><a class="markdownIt-Anchor" href="#开音符è-à-ù"></a> 开音符：è, à, ù</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/CA-2.gif" alt="加拿大法语键盘布局--开音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">加拿大法语键盘布局--开音符</span></div></div><h3 id="软音符ç"><a class="markdownIt-Anchor" href="#软音符ç"></a> 软音符：ç</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/CA-4.gif" alt="加拿大法语键盘布局--软音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">加拿大法语键盘布局--软音符</span></div></div><h3 id="shift"><a class="markdownIt-Anchor" href="#shift"></a> Shift</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/CA-5.gif" alt="加拿大法语键盘布局--Shift" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">加拿大法语键盘布局--Shift</span></div></div><h3 id="分音符ë-ï-ü"><a class="markdownIt-Anchor" href="#分音符ë-ï-ü"></a> 分音符：ë, ï, ü</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/CA-3.gif" alt="加拿大法语键盘布局--分音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">加拿大法语键盘布局--分音符</span></div></div><h2 id="法国法语键盘输入方法"><a class="markdownIt-Anchor" href="#法国法语键盘输入方法"></a> <strong>法国法语</strong>键盘输入方法</h2><h3 id="长音符ê-â-î-ô-û-2"><a class="markdownIt-Anchor" href="#长音符ê-â-î-ô-û-2"></a> 长音符：ê, â, î, ô, û</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/FC-1.gif" alt="法国法语键盘布局--长音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">法国法语键盘布局--长音符</span></div></div><h3 id="开音符è-à-ù-2"><a class="markdownIt-Anchor" href="#开音符è-à-ù-2"></a> 开音符：è, à, ù</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/FC-2.gif" alt="法国法语键盘布局--开音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">法国法语键盘布局--开音符</span></div></div><h3 id="shift-2"><a class="markdownIt-Anchor" href="#shift-2"></a> Shift</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/FC-4.gif" alt="法国法语键盘布局--Shift" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">法国法语键盘布局--Shift</span></div></div><h3 id="分音符ë-ï-ü-2"><a class="markdownIt-Anchor" href="#分音符ë-ï-ü-2"></a> 分音符：ë, ï, ü</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/初识法语键盘/FC-3.gif" alt="法国法语键盘布局--分音符" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">法国法语键盘布局--分音符</span></div></div><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="法语" scheme="https://blog.findingx.cc/tags/%E6%B3%95%E8%AF%AD/"/>
    
  </entry>
  
  <entry>
    <title>解决安卓端 Kindle APP无法与 Kindle 硬件同步</title>
    <link href="https://blog.findingx.cc/2024/12/03/125011/"/>
    <id>https://blog.findingx.cc/2024/12/03/125011/</id>
    <published>2024-12-03T04:50:11.000Z</published>
    <updated>2025-07-11T01:38:06.154Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>在 18 年前后入手 Kindle 8，官方价 558 ，高中经常用，大学积了 4 年灰…最近这半年来又开始用起来了，路上看看书什么的。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十二月三日</span></div></div></div></div></p></div><p>亚马逊 Kindle 业务退出了中国市场，随之带来了很多问题，我的国行 Kindle 无法享用云端存储和同步功能了，不得不转移到美区账户。</p><p>转美区账户也简单，网上有教程，这里也不再赘述，Kindle 最好用的功能之一就是多端同步，忘记带 Kindle 或者不方便带时可以用手机无缝衔接，非常方便。但因为退出中国市场之后手机 App 没办法同步了，一加应用商城下载的登录自己账号没有问题，但是无法同步；国际版的 App 账号密码一输入就返回到主界面，根本没有登录成功。</p><p>后来我发现了一个问题，他的商城界面自动链接到了中国亚马逊官网，这就有点问题了，通过连接节点登录理论上会记录节点 IP 进而进行定位，但他的逻辑好像不是这样，我回想起同步 Kindle8 硬件的时候有个操作是将语言设置为英文，于是我便试了试将手机的语言设置成英文，果然再开启 App 的时候商城自动选择了亚马逊官网而不是中国亚马逊官网，接着登录账号就直接同步了！传书成功。</p><div class="tag-plugin image"><div class="image-bg" style="padding:16px;"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202449/1.jpeg" alt="kindle" data-fancybox="true" style="width:200px;"/></div><div class="image-meta"><span class="image-caption center">kindle</span></div></div><h2 id="正文"><a class="markdownIt-Anchor" href="#正文"></a> <s>正文</s></h2><ol><li>将设备语言更换成英文</li><li>打开 Kindle App 登录账号</li><li>耐心等待登录即可</li><li>同步成功后返回设置界面调回中文</li></ol><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>这小半年来只读了几本书，感触最大的就是读得太慢了，还是需要提升一下阅读速度，觉得离一分钟 500 字还差得远，而且读的时候部分人物场景的描述也没有细读，有诸多细节会被忽略，路漫漫其修远兮，慢慢走吧～</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="Kindle" scheme="https://blog.findingx.cc/tags/Kindle/"/>
    
    <category term="Amazon" scheme="https://blog.findingx.cc/tags/Amazon/"/>
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-48</title>
    <link href="https://blog.findingx.cc/2024/11/29/164452/"/>
    <id>https://blog.findingx.cc/2024/11/29/164452/</id>
    <published>2024-11-29T08:44:52.000Z</published>
    <updated>2025-07-11T01:38:06.157Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>来自远方的风比远方更远，小雪已过，来迟的冬天终于还是来了，这样的天气，冷的刚刚好。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月二十七日『第四十八周』</span></div></div></div></div></p></div><h2 id="小记"><a class="markdownIt-Anchor" href="#小记"></a> 小记</h2><p>前阵子可能是寒流和暖流在大战，碎裂的兵器化成雨滴，阴雨连绵。乌云还未散去，天空呈现乌青，清晨的朝霞散布在天上，星星点点。看来寒流打赢了，温润的日光照散了乌云，蓝天之下，十分爽朗。</p><p>凛冬已至，那是来自密西西比寒暄，远方的风吹开了路边的紫花风铃木，让这座冰冷的城市多了些许浪漫。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202448/1.jpeg" alt="来自朋友的摄影" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">来自朋友的摄影</span></div></div><h2 id="机械师"><a class="markdownIt-Anchor" href="#机械师"></a> 机械师</h2><p>闲了就上闲鱼逛，逛着逛着还真淘到了好玩的东西，不过需要底板，上网找资源，搜集了不少，话不多说直接开干！</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202448/2.png" alt="搭建的神经血脉" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">搭建的神经血脉</span></div></div><p>但万事皆不能急于求成，<strong>欲速则不达</strong>。还没发 PCB 就已经将初版原理图改得面目全非了<s>因为第一版太急，错了好多地方</s>。挨个对比了所以有的线路，才完成了最基础的框架搭建，上面的图纸也只是个初步验证商家发来的板子是否能开机，并非最终版本。幻想能开机，准备把这三片叠加起来做个集合体，如果成功了，我的博客风格可能会在漫长的「创造」过程中有稍许变化。近期技术文章更新会停滞一段时间。嵌入式Linux编译终于算是编译成功了，但还有Uboot没有编译成功。</p><p>对于由「电细胞」构成的「电子生命体」而言，我们这些机械师更像是人类的医生，我们更像是造物者，一个机械电子时代的造物者，虽然不能像维克托那样的机械飞升，但也足以通过双手创造出属于自己理想的「电子生命体」。</p><h2 id="电子生命体无需类人"><a class="markdownIt-Anchor" href="#电子生命体无需类人"></a> 「电子生命体」无需类人</h2><p>长达几亿年的生物进化，创造了无数种类的生命。适应环境的特征和基因才会留存下来，这是自然的智慧。石炭纪时代，十米到二十米不等的巨大蕨类是当时的地球霸主，原因是它们进化出了<strong>木质素</strong>，没有消费者能够吸收转化，那个时代含氧量剧增，消费者生命体型越来越大，一只巨脉蜻蜓双翅长达 75 厘米（就像地心游记描述的远古巨虫）。随后雨林面积大幅度减小，有一种假说是闪电产生火焰，富含氧气的雨林持续燃烧，产生了一场小规模灭绝事件。</p><p>渺小的人类也只是漫长轮回中的一环，是自然的一份杰作罢了。</p><p>「电子生命体」（称之为硅基生命更贴切呢）不同于碳基生命，人类的智慧能赋予它更多的可能，自身的材料可以抗拒碳基生命所不能抗拒的环境变化。「电子生命体」应有其专项，对于不同的场景有不同的形态，可以是多个分身，主脑集中控制，或是悬浮大气中，无足，多四肢，总能能不断变换切换形态去适配作业场景。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-47</title>
    <link href="https://blog.findingx.cc/2024/11/23/164452/"/>
    <id>https://blog.findingx.cc/2024/11/23/164452/</id>
    <published>2024-11-23T08:44:52.000Z</published>
    <updated>2025-07-11T01:38:06.156Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>折腾折腾还是折腾，本周主题——折腾，其实有点想挂闲鱼，毕竟是 32 位，限制太多，能有个 64 位的可玩性更高。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月二十三日『第四十七周』</span></div></div></div></div></p></div><h2 id="折腾"><a class="markdownIt-Anchor" href="#折腾"></a> 折腾</h2><p>本周折腾折腾还是折腾，虽然很抓狂但是很快乐。</p><p>最近这个月清理东西，翻出了压箱底的卡片电脑（当时好像闲鱼捡漏，早知道再多买三张，四个做一个集群不好嘛），于是上网找资源，安装系统，虽然只有 2G 内存，就是 ARMv7l 架构不是很舒服，好多软件不支持，但对于简单的网盘博客等也算足够了，基本的程序都能找到对应版本。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202447/1.png" alt="卡片电脑" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">卡片电脑</span></div></div><p>安装了 nginx 和 php 这样可以搭建 wordpress 站点了，很久很久以前用过 argon 主题，不过主题作者 hexo 的开发终止了，主要在 wordpress 更新，那时候由于各方因素没能搭建属于自己的服务器，于是没有继续使用 argon。当前服务器虽然不是很完善，但也基本没大问题，wordpress 站点还在优化中。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202447/2.png" alt="1Panel界面" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">1Panel界面</span></div></div><p>选择用卡片电脑原因之一当然是觉得存储无限，其二是他可以控 GPIO，就像是搭建了自己的站点，可以控制周边硬件，我的单板电脑 GPIO 不多，有 pwm 和 i2c 以及串口和 spi 虽然少，但有得折腾，比如加个 oled spi 显示屏之类的，可以显示站点状态；又或者 php 写一个能操控 GPIO 电平变化的灯，还能实现正真意义上的“开空调”、“开关灯”，如果有个机器人接受数据流 还能控制机器人，可玩的老多了😏（虽然这些功能没什么用</p><p>还记得曾经参赛做过类似的事情，也是 ptp 通讯，能控制超远程小车，可惜缺点是响应速度低，当时用的中转服务器在国外，延时自然相对高了。学校的校园网是个大局域网，理论上可以实现局域网远程控制，人在宿舍，可以实时查看实验室里情况，3d 打印到了什么程度，有设想在实验室做个代理机器人，我就不用亲自去实验室了（只有 500M+，对于我这种下楼取外卖都懒的人来说，太远了</p><h2 id="专栏"><a class="markdownIt-Anchor" href="#专栏"></a> 专栏</h2><p>最近写的电学部分文章有点杂乱了，又是理论又是实操，对于细致的专栏需要如何做没有仔细研究过，之前只写过<a href="/2024/02/28/173516/">🔗分类与标签</a>。仔细回读了 xaoxuu 的文章<a target="_blank" rel="noopener" href="https://xaoxuu.com/blog/20240203/">🔗我为什么开发了一个专栏功能？</a>，初衷是在「分类」和「标签」之外，还应有「话题/专栏」来作为分章检索的一个补充维度。读完后便打消了单独出元器件专栏的想法。</p><p>对于我的专栏中有如<a href="/topic/">「黑苹果」</a>和<a href="/topic/">「机械之脉」</a>等话题，黑苹果的顾名思义专门记录与黑苹果有关的文章，可以是如何制作，也可以是技术原理简介。而机械之脉，核心是电如脉络，记录电学相关文章。最近写的部分文章是电学专栏下元器件解读，所以还是使用标签最为合适。为了加快访问筛选同类原件解读文章，也许需要在特定的页面如<a href="/pages">🔗导航</a>页面单独列出较为合适。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>常见的开源证书</title>
    <link href="https://blog.findingx.cc/2024/11/20/161650/"/>
    <id>https://blog.findingx.cc/2024/11/20/161650/</id>
    <published>2024-11-20T08:16:50.000Z</published>
    <updated>2025-07-11T01:38:06.148Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>最近网络上发生了些事，忽然意识到我对许可证不是特别了解，于是重新搜索学习了一番，找到了些最常用到的列了出来。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月二十日</span></div></div></div></div></p></div><h2 id="几种许可证对比"><a class="markdownIt-Anchor" href="#几种许可证对比"></a> 几种许可证对比</h2><blockquote><p>需要注意的是，在实际使用这些开源许可证时，<strong>务必详细研读官方文档以及可能涉及的法律建议，确保合规地应用于具体的项目和内容中。</strong></p></blockquote><p>以下是站长将常见开源许可证相关特性整理到表格中的内容：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/常见的开源证书/1.png" alt="开源许可证对比" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="开源许可证对比" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/常见的开源证书/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">开源许可证对比</span></div></div><h2 id="工具"><a class="markdownIt-Anchor" href="#工具"></a> 工具</h2><p>选择开源协议的网站：</p><div class="tag-plugin link dis-select"><a class="link-card plain" title="选择一个开源软件协议" href="https://choosealicense.cc/" target="_blank" rel="external nofollow noopener noreferrer" cardlink autofill=""><div class="left"><span class="title">选择一个开源软件协议</span><span class="cap link footnote">https://choosealicense.cc/</span></div><div class="right"><div class="lazy img" data-bg="https://choosealicense.cc/favicon.ico"></div></div></a></div><h2 id="常见许可证及其详细信息"><a class="markdownIt-Anchor" href="#常见许可证及其详细信息"></a> 常见许可证及其详细信息</h2><blockquote><p>需要注意的是，在实际使用这些开源许可证时，<strong>务必详细研读官方文档以及可能涉及的法律建议，确保合规地应用于具体的项目和内容中。</strong></p></blockquote><p>以下是AI总结的一些常见开源许可证：</p><h3 id="宽松型开源许可证"><a class="markdownIt-Anchor" href="#宽松型开源许可证"></a> 宽松型开源许可证</h3><ul><li><strong><a target="_blank" rel="noopener" href="https://mit-license.org/">MIT License</a></strong>：是最为宽松的许可证之一。允许他人自由地使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本，只需在软件的所有副本或重要部分中包含原始的版权声明和许可声明即可。许多知名的开源项目如 Node.js、jQuery 等都采用了 MIT License.</li><li><strong><a target="_blank" rel="noopener" href="https://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></strong>：类似于 MIT License，但包含关于专利权的额外条款，即贡献者放弃对其贡献提出专利权诉讼的权利，在自由使用、修改和分发代码的基础上，提供了关于专利权的额外保护，被广泛应用于许多大型开源项目，如 Apache Hadoop、Apache Spark 等.</li><li><strong><a target="_blank" rel="noopener" href="https://choosealicense.com/licenses/bsd-2-clause/">BSD 2-Clause “Simplified” License</a></strong>：允许使用者自由地使用、修改和重新发布代码，并且可以将其用于商业目的，只需保留版权声明和许可证声明即可，在伯克利软件发布版等项目中常被使用.</li></ul><h3 id="弱著佐权型开源许可证"><a class="markdownIt-Anchor" href="#弱著佐权型开源许可证"></a> 弱著佐权型开源许可证</h3><ul><li><strong><a target="_blank" rel="noopener" href="https://www.mozilla.org/en-US/MPL/2.0/">Mozilla Public License (MPL)</a></strong>：由 Netscape 的 Mozilla 小组设计，在一定程度上平衡了开发者对源代码的需求和利用源代码获得的利益。如果项目依赖了采用 MPL 许可证的开源组件，项目本身虽不会被“传染”为开源，但针对使用的开源组件包括对其的修改则需要开源出来.</li><li><strong><a target="_blank" rel="noopener" href="https://www.gnu.org/licenses/lgpl-3.0.html#license-text">GNU Lesser General Public License (LGPL)</a></strong>：是 GNU 通用公共许可证的一个变体，旧称 GNU Library General Public License，相比 GPL 较为宽松。适用于一些库或框架类的开源项目，允许开发者将 LGPL 许可的代码链接到非开源的项目中使用，但如果对 LGPL 许可的代码进行了修改，则需要将修改后的代码开源.</li></ul><h3 id="强著佐权型开源许可证"><a class="markdownIt-Anchor" href="#强著佐权型开源许可证"></a> 强著佐权型开源许可证</h3><ul><li><strong><a target="_blank" rel="noopener" href="https://www.gnu.org/licenses/gpl-3.0.en.html#license-text">GNU General Public License (GPL)</a></strong>：具有很强的“传染性”，要求使用、修改或分发其代码的任何人都必须以相同的许可证发布他们的代码，这确保了软件的自由性和开源性得以传承，但也可能限制了与非 GPL 软件的集成，常用于一些具有强烈开源理念的项目，如 Linux 内核等.</li><li><strong><a target="_blank" rel="noopener" href="https://www.gnu.org/licenses/agpl-3.0.html#license-text">GNU Affero General Public License (AGPL)</a></strong>：是 GPL 的一个补充协议，在 GPL 的基础上增加了一项要求，即通过网络与软件进行交互的用户有权获得源代码的副本，进一步强调了开源和共享的原则，适用于一些基于网络服务的开源项目.</li></ul><h3 id="其他开源许可证"><a class="markdownIt-Anchor" href="#其他开源许可证"></a> 其他开源许可证</h3><ul><li><strong><a target="_blank" rel="noopener" href="https://www.boost.org/users/license.html">Boost Software License 1.0</a></strong>：允许使用者自由地使用、修改和分发软件，只需保留版权声明和许可声明。与 MIT License 类似，但在一些细节上略有不同，例如对于软件的分发方式和再许可的条件等方面有更具体的规定，常用于一些 C++ 相关的开源项目.</li><li><strong><a target="_blank" rel="noopener" href="https://choosealicense.cc/licenses/unlicense/">The Unlicense</a></strong>：这是一种将软件置于公共领域的许可证，意味着放弃了对软件的所有版权和相关权利，使用者可以不受任何限制地使用、修改、分发和再许可软件，甚至可以将其用于商业目的而无需保留任何版权声明或致谢信息等，为开源软件提供了一种极端自由的许可方式.</li><li><strong><a target="_blank" rel="noopener" href="https://creativecommons.org/licenses/by-nc/1.0/">CC0-1.0</a>、<a target="_blank" rel="noopener" href="https://creativecommons.org/licenses/by-nc/4.0/">CC-BY-4.0</a>、<a target="_blank" rel="noopener" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC-BY-SA-4.0</a></strong>：这几个证书主要用于非软件的开放内容，如数据集、视频、文档等。CC0-1.0 是将作品完全置于公共领域，无任何权利保留；CC-BY-4.0 允许他人对作品进行自由传播、修改和再创作，但需署名原作者；CC-BY-SA-4.0 则在署名的基础上，还要求衍生作品需采用相同的许可证进行发布.</li><li><strong><a target="_blank" rel="noopener" href="https://openfontlicense.org/open-font-license-official-text/">SIL Open Font License 1.1</a></strong>：专门用于字体的开源许可证，保证字体的开放性，允许在其他作品中自由使用、修改和再分发字体，但需遵循一定的条件，如保留字体的版权声明和许可证信息等.</li></ul><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>小站使用的是CC-BY-SA-4.0，开始接触博客的时候hexo主题都会配置说明使用的许可协议，当时也没太在意，但是现在看来，还是挺重要的。最后，希望开源社区越来越好。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="方法" scheme="https://blog.findingx.cc/categories/%E6%96%B9%E6%B3%95/"/>
    
    
    <category term="标签" scheme="https://blog.findingx.cc/tags/%E6%A0%87%E7%AD%BE/"/>
    
  </entry>
  
  <entry>
    <title>MOSFET「场效应管」</title>
    <link href="https://blog.findingx.cc/2024/11/18/103546/"/>
    <id>https://blog.findingx.cc/2024/11/18/103546/</id>
    <published>2024-11-18T02:35:46.000Z</published>
    <updated>2025-07-11T01:38:06.140Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>之前有写过<a href="/2022/06/01/132405/">三极管和MOS管对比</a>，不是很详细，本篇细聊MOSFET。本文按照「规格书解读-&gt;选型-&gt;工作原理讲解-&gt;等效电路-&gt;量子领域应用」来写。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月十五日</span></div></div></div></div></p></div><h2 id="数据手册部分解读"><a class="markdownIt-Anchor" href="#数据手册部分解读"></a> 数据手册部分解读</h2><blockquote><p>此规格书为<strong>功率N−CHANNELMOSFET</strong>手册。<br />如需查看原文档，打开商城后点击下载数据手册即可<br /><a target="_blank" rel="noopener" href="https://item.szlcsc.com/527928.html">https://item.szlcsc.com/527928.html</a></p></blockquote><h3 id="maximum-ratings最大额定值"><a class="markdownIt-Anchor" href="#maximum-ratings最大额定值"></a> MAXIMUM RATINGS（最大额定值）</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/1.png" alt="最大额定值" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="最大额定值" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">最大额定值</span></div></div><ul><li><p>Drain−to−Source Voltage「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>D</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{DSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：漏源极间的耐压，DS电压偶尔超过VDSS，MOSFET会进入雪崩击穿区（后面会提到），可能不会马上损坏MOSFET，但是经常超过的话会使MOSFET性能下降或者损坏。</p></li><li><p>Gate−to−Source Voltage「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>G</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{GS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：场效应管能够承受的最大栅极-源极电压</p></li><li><p>Continuous Drain「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">I_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：场效应管能够承受的最大漏极电流。</p></li><li><p>Power Dissipation「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">P_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：功率耗散</p></li><li><p>Operating Junction and Storage Temperature「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>J</mi></msub></mrow><annotation encoding="application/x-tex">T_J</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mrow><mi>S</mi><mi>T</mi><mi>G</mi></mrow></msub></mrow><annotation encoding="application/x-tex">T_{STG}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.13889em;">T</span><span class="mord mathdefault mtight">G</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：如果确保器件工作在这个温度区间内，将极大地延长其工作寿命。</p></li><li><p>Source Current (Body Diode)「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mrow><mi>D</mi><mi>M</mi></mrow></msub></mrow><annotation encoding="application/x-tex">I_{DM}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.10903em;">M</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：源极电流 （体二极管）</p></li><li><p>Single Pulse Drain−to−Source Avalanche Energy (IL(pk) = 5 A)「EAS」：雪崩能量</p></li></ul><blockquote><p>参考文档：<a target="_blank" rel="noopener" href="https://toshiba.semicon-storage.com/info/application_note_en_20200306_AKX00083.pdf?did=68907">Avalanche Energy (EAS) caluculation of Power MOSFET.pdf</a></p></blockquote><ul><li>Lead Temperature for Soldering Purposes「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>L</mi></msub></mrow><annotation encoding="application/x-tex">T_L</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">L</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：用于焊接的引线温度</li></ul><blockquote><p>为什么<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">I_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">P_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>分别会有两个参数？<br />注意<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>θ</mi><mi>J</mi><mi>C</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{\theta JC}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">θ</span><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>（这是结壳间的热阻）和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>θ</mi><mi>J</mi><mi>A</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{\theta JA}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">θ</span><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight">A</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>（表示结与环境间的热阻）</p><ul><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>θ</mi><mi>J</mi><mi>A</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{\theta JA}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">θ</span><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight">A</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>θ</mi><mi>J</mi><mi>A</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{\theta JA}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">θ</span><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight">A</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>的关系：当功率晶体管的散热片足够大而且接触足够良好时<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>J</mi><mi>C</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">R_{JC} = 0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>J</mi><mi>A</mi></mrow></msub><mo>=</mo><msub><mi>R</mi><mrow><mi>J</mi><mi>C</mi></mrow></msub><mo>+</mo><msub><mi>R</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub><mo>=</mo><msub><mi>R</mi><mrow><mi>J</mi><mi>C</mi></mrow></msub><mo>+</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">R_{JA}=R_{JC}+R_{CA}=R_{JC}+0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight">A</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span><span class="mord mathdefault mtight">A</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.09618em;">J</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>，可以认为封装壳温Tc=Ta(环境温度)，晶体管外壳与环境间的热阻。</li></ul><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/2.png" alt="两种环境" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="两种环境" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">两种环境</span></div></div><p>这两种环境下对应的功率也就不同。</p><blockquote><p>热阻计算公式</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>a</mi></msub><mo>=</mo><msub><mi>T</mi><mi>j</mi></msub><mo>−</mo><mi>P</mi><mo stretchy="false">(</mo><msub><mi>R</mi><mrow><mi>j</mi><mi>c</mi></mrow></msub><mo>+</mo><msub><mi>R</mi><mrow><mi>c</mi><mi>s</mi></mrow></msub><mo>+</mo><msub><mi>R</mi><mrow><mi>s</mi><mi>a</mi></mrow></msub><mo stretchy="false">)</mo><mo>=</mo><msub><mi>T</mi><mi>j</mi></msub><mo>−</mo><mi>P</mi><mo>∗</mo><msub><mi>R</mi><mrow><mi>j</mi><mi>a</mi></mrow></msub></mrow><annotation encoding="application/x-tex">T_a=T_j-P(R_{jc}+R_{cs}+R_{sa})=T_j-P*R_{ja}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">a</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight">c</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">c</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">a</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight">a</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span></span></p><ul><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>T</mi><mi>a</mi></mrow><annotation encoding="application/x-tex">Ta</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="mord mathdefault">a</span></span></span></span>表示环境温度</li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>T</mi><mi>j</mi></mrow><annotation encoding="application/x-tex">Tj</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span></span></span></span>表示晶体管的结温</li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>P</mi></mrow><annotation encoding="application/x-tex">P</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">P</span></span></span></span>表示功耗</li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>j</mi><mi>c</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{jc}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight">c</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span>表示结壳间的热阻</li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>c</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{cs}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">c</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>表示晶体管外壳与散热器间的热阻</li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>s</mi><mi>a</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{sa}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">a</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>表示散热器与环境间的热阻</li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>j</mi><mi>a</mi></mrow></msub></mrow><annotation encoding="application/x-tex">R_{ja}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight">a</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span>表示结与环境间的热阻。</li></ul><p>例如：壳温Tc=25℃时的最大允许功耗是1.5W，Rjc是83.3度/W<br />代入公式<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>c</mi></msub><mo>=</mo><msub><mi>T</mi><mi>j</mi></msub><mo>−</mo><mi>P</mi><mo>∗</mo><msub><mi>R</mi><mrow><mi>j</mi><mi>c</mi></mrow></msub></mrow><annotation encoding="application/x-tex">T_c=T_j- P*R_{jc}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">c</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight">c</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span>有：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>25</mn><mo>=</mo><msub><mi>T</mi><mi>j</mi></msub><mo>−</mo><mn>1.5</mn><mo>∗</mo><mn>83.3</mn></mrow><annotation encoding="application/x-tex">25=T_j-1.5*83.3</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">2</span><span class="mord">5</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mord">.</span><span class="mord">5</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">8</span><span class="mord">3</span><span class="mord">.</span><span class="mord">3</span></span></span></span>得：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>j</mi></msub><mo>=</mo><mn>150</mn></mrow><annotation encoding="application/x-tex">T_{j}=150</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.311664em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mord">5</span><span class="mord">0</span></span></span></span>一般芯片最大允许结温是确定的。</p></blockquote></blockquote><h3 id="icon"><a class="markdownIt-Anchor" href="#icon"></a> ICON</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/3.png" alt="ICON" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="ICON" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">ICON</span></div></div><p><strong>如何记忆增强型和耗尽型？</strong><br />增强型：（关闭得<strong>更</strong>彻底）源极和漏极之间不存在导电沟道，器件处于截止状态。「可看到S和D的竖线<strong>断开了</strong>」<br />耗尽型：（关闭得<strong>不</strong>彻底）栅极电压为零，源极和漏极之间也能导通一定的电流。「可看到S和D的竖线<strong>有连接</strong>」</p><h3 id="electrical-characteristics电气特性"><a class="markdownIt-Anchor" href="#electrical-characteristics电气特性"></a> ELECTRICAL CHARACTERISTICS「电气特性」</h3><h4 id="导通和关断特性"><a class="markdownIt-Anchor" href="#导通和关断特性"></a> 导通和关断特性</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/4.png" alt="ON/OFF--CHARACTERISTICS" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="ON/OFF--CHARACTERISTICS" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">ON/OFF--CHARACTERISTICS</span></div></div><ul><li><p><strong>Drain−to−Source Breakdown Voltage</strong>「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mo stretchy="false">(</mo><mi>B</mi><mi>R</mi><mo stretchy="false">)</mo><mi>D</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{(BR)DSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.03853em;vertical-align:-0.3551999999999999em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.34480000000000005em;"><span style="top:-2.5198em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.05017em;">B</span><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mclose mtight">)</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3551999999999999em;"><span></span></span></span></span></span></span></span></span></span>」：漏源击穿电压</p></li><li><p>Zero Gate Voltage Drain Current「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mrow><mi>D</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">I_{DSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」:零栅极电压漏极电流</p></li><li><p>Gate−to−Source Leakage Current「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mrow><mi>G</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">I_{GSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：栅极到源极漏电流</p></li><li><p><strong>Gate Threshold Voltage</strong>「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>G</mi><mi>S</mi><mo stretchy="false">(</mo><mi>T</mi><mi>H</mi><mo stretchy="false">)</mo></mrow></msub></mrow><annotation encoding="application/x-tex">V_{GS(TH)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.03853em;vertical-align:-0.3551999999999999em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.34480000000000005em;"><span style="top:-2.5198em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.13889em;">T</span><span class="mord mathdefault mtight" style="margin-right:0.08125em;">H</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3551999999999999em;"><span></span></span></span></span></span></span></span></span></span>」：栅极阈值电压</p></li><li><p>Drain−to−Source On Resistance「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>D</mi><mi>S</mi><mo stretchy="false">(</mo><mi>o</mi><mi>n</mi><mo stretchy="false">)</mo></mrow></msub></mrow><annotation encoding="application/x-tex">R_{DS(on)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.03853em;vertical-align:-0.3551999999999999em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.34480000000000005em;"><span style="top:-2.5198em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight">o</span><span class="mord mathdefault mtight">n</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3551999999999999em;"><span></span></span></span></span></span></span></span></span></span>」：漏极至源极导通电阻</p></li></ul><h4 id="charges-capacitances-gate-resistance电荷-电容和栅极电阻"><a class="markdownIt-Anchor" href="#charges-capacitances-gate-resistance电荷-电容和栅极电阻"></a> CHARGES, CAPACITANCES &amp; GATE RESISTANCE「电荷、电容和栅极电阻」</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/5.png" alt="CHARGES,CAPACITANCES&GATE-RESISTANCE" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="CHARGES,CAPACITANCES&GATE-RESISTANCE" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">CHARGES,CAPACITANCES&GATE-RESISTANCE</span></div></div><ul><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>I</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ISS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07847em;">I</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>O</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{OSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">O</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><br />影响MOSFET开关时间, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>I</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ISS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07847em;">I</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>越大, 开通及关断时间就越慢(开关损耗越大)。</li></ul><blockquote><p>还记得电容可以做延时吗，这里可以简单理解为打开MOSFET时，经过了一段时间电压逐步上升达到了门限电压，开关才被打开。</p></blockquote><p>慢的开关速度带来较好的EMI特性。Cgd会影响漏极有异常高电压时，传到栅极电压能量的大小，会对雷击测试项目有一定影响。</p><p>无论是<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>I</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ISS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07847em;">I</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>O</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{OSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">O</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>r</mi><mi>s</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{rss}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">r</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>中的哪一个，我们都希望他们尽量小一些。后面原理部分会做解释。</p><h4 id="switching-characteristics开关特性"><a class="markdownIt-Anchor" href="#switching-characteristics开关特性"></a> SWITCHING CHARACTERISTICS「开关特性」</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/7.png" alt="SWITCHING-CHARACTERISTICS" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="SWITCHING-CHARACTERISTICS" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/7.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">SWITCHING-CHARACTERISTICS</span></div></div><ul><li>Turn−On Delay Time「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mrow><mi>d</mi><mo stretchy="false">(</mo><mi>O</mi><mi>N</mi><mo stretchy="false">)</mo></mrow></msub></mrow><annotation encoding="application/x-tex">t_{d(ON)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9702799999999998em;vertical-align:-0.3551999999999999em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.34480000000000005em;"><span style="top:-2.5198em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">O</span><span class="mord mathdefault mtight" style="margin-right:0.10903em;">N</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3551999999999999em;"><span></span></span></span></span></span></span></span></span></span>」：（开启延迟时间）</li><li>Rise Time「t_r」：上升时间</li><li>Turn−Off Delay Time「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mrow><mi>d</mi><mo stretchy="false">(</mo><mi>O</mi><mi>F</mi><mi>F</mi><mo stretchy="false">)</mo></mrow></msub></mrow><annotation encoding="application/x-tex">t_{d(OFF)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9702799999999998em;vertical-align:-0.3551999999999999em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.34480000000000005em;"><span style="top:-2.5198em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">O</span><span class="mord mathdefault mtight" style="margin-right:0.13889em;">F</span><span class="mord mathdefault mtight" style="margin-right:0.13889em;">F</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3551999999999999em;"><span></span></span></span></span></span></span></span></span></span>」：（关闭延迟时间）</li><li>Fall Time「t_f」：下降时间</li></ul><h4 id="drainsource-diode-characteristics漏源二极管特性"><a class="markdownIt-Anchor" href="#drainsource-diode-characteristics漏源二极管特性"></a> DRAIN−SOURCE DIODE CHARACTERISTICS「漏源二极管特性」</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/8.png" alt="DRAIN−SOURCE-DIODE-CHARACTERISTICS" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="DRAIN−SOURCE-DIODE-CHARACTERISTICS" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/8.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">DRAIN−SOURCE-DIODE-CHARACTERISTICS</span></div></div><ul><li>Forward Diode Voltage「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>S</mi><mi>D</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{SD}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：正向二极管电压</li><li>Reverse Recovery Time「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mrow><mi>r</mi><mi>R</mi></mrow></msub></mrow><annotation encoding="application/x-tex">t_{rR}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">r</span><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：反向恢复时间</li><li>Charge Time「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>a</mi></msub></mrow><annotation encoding="application/x-tex">t_{a}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">a</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：充电时间</li><li>Discharge Time「<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>b</mi></msub></mrow><annotation encoding="application/x-tex">t_{b}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">b</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>」：放点时间</li><li>Reverse Recovery Charge「Q_{RR}」：反向恢复电荷</li></ul><p>对于DCDC中，十分看重时间，恢复上升下降时间越短的越好。</p><h3 id="选型"><a class="markdownIt-Anchor" href="#选型"></a> 选型</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/23.png" alt="选型" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="选型" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/23.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">选型</span></div></div><h2 id="工作原理讲解"><a class="markdownIt-Anchor" href="#工作原理讲解"></a> 工作原理讲解</h2><h3 id="内部构造"><a class="markdownIt-Anchor" href="#内部构造"></a> 内部构造</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/14.png" alt="MOSFET构造" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="MOSFET构造" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/14.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">MOSFET构造</span></div></div><blockquote><p>为什么叫做N-Channel？<br />因为沟道是<strong>由N型半导体</strong>组成，上图可以看到左侧N型MOSFET中<strong>两个N型</strong>半导体之间将会在<strong>G极的作用下形成沟道</strong>，N型半导体将会相连接而导通，由于需要形成N型沟道，则需要对电子吸引，因此在G极施加电压后吸引电子（N型半导体的多数载流子）形成N沟道导通N型半导体。<br />简言之：<strong>G极施加正电压吸引电子形成N沟道连接了N型半导体导通了N型MOSFET</strong>。<br />同理可得：<strong>G极施加负电压吸引空穴形成P沟道连接了P型半导体导通了P型MOSFET</strong>。</p><hr /><p><em>Tips：空穴相对于电子而言抽象出来的概念，元素周围会有稳定的电子，而缺失了电子的位置称为空穴，想具体可以搜索PN结</em></p></blockquote><blockquote><p>电流流向（简单理解的方法）<br />看寄生二极管，与其电流方向相反（与PN结方向相反），电流必须从N型半导体流向P型半导体，才能达到阻碍电流达到开关的效果。不论哪种MOSFET，都必须遵循，因此N型半导体必须施加正电压。</p></blockquote><blockquote><p>为什么衬底要和S极相连？<br />将衬底与源极相连接，两者的<strong>电位就相同</strong>了，没有正向压降，两者间的PN结就不会导通，从而就<strong>不会有电流流过PN结</strong>。</p></blockquote><h4 id="实际物理结构"><a class="markdownIt-Anchor" href="#实际物理结构"></a> 实际物理结构</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/15.png" alt="实际物理结构" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="实际物理结构" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/15.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">实际物理结构</span></div></div><h4 id="光刻"><a class="markdownIt-Anchor" href="#光刻"></a> 光刻</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/16.png" alt="光刻" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="光刻" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/16.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">光刻</span></div></div><p>现代CMOS工艺</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/17.png" alt="现代CMOS工艺" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="现代CMOS工艺" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/17.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">现代CMOS工艺</span></div></div><h4 id="齐纳二极管等效电路zener-diode-equivalent"><a class="markdownIt-Anchor" href="#齐纳二极管等效电路zener-diode-equivalent"></a> 齐纳二极管等效电路（Zener diode equivalent）</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/9.png" alt="MOSFET-cross-section-and-Zener-diode-equivalent" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="MOSFET-cross-section-and-Zener-diode-equivalent" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/9.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">MOSFET-cross-section-and-Zener-diode-equivalent</span></div></div><p>当在板安装等过程中对栅极施加静电时，栅极氧化物可能会被破坏，在这种情况下，有一种方法是通过在栅极和源极端子之间插入 ESD 保护二极管来保护 MOSFET，一些产品采用这种措施，它在短时间内吸收较大的过电压（<strong>浪涌</strong>），并工作，以便不会对其他半导体产品施加超过一定电压的电压。</p><h4 id="体二极管"><a class="markdownIt-Anchor" href="#体二极管"></a> 体二极管</h4><p>从结构层面看，左侧标识的电流<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">I_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>就是体二极管电流路径</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/12.png" alt="结构层面" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="结构层面" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/12.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">结构层面</span></div></div><p>右侧的Body Diode就是体二极管</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/10.png" alt="体二极管" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="体二极管" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/10.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">体二极管</span></div></div><p>体二极管的反向恢复时间产生原因：少数载流子反向恢复</p><blockquote><p>由于二极管处于导电状态，少数载流子返回原来的区域或复合，寄生电容中积聚的电荷发生放电，电流减小至零，进一步变为负值。这种反向电流称为反向恢复电流。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/11.png" alt="少数载流子反向恢复" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="少数载流子反向恢复" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/11.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">少数载流子反向恢复</span></div></div><h4 id="分布电容"><a class="markdownIt-Anchor" href="#分布电容"></a> 分布电容</h4><blockquote><p><strong>为什么内部分部电容如此重要？</strong><br />DCDC高速开关时，需要高速切换状态，此时切换延时就十分重要了。</p></blockquote><ul><li>输入电容(lnput  Capacitance)：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>i</mi><mi>s</mi><mi>s</mi></mrow></msub><mo>=</mo><msub><mi>C</mi><mrow><mi>g</mi><mi>d</mi></mrow></msub><mo>+</mo><msub><mi>C</mi><mrow><mi>g</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{iss}=C_{gd}+C_{gs}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31166399999999994em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">i</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361079999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">g</span><span class="mord mathdefault mtight">d</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">g</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span></li><li>输出电容(Output Capacitance)：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>o</mi><mi>s</mi><mi>s</mi></mrow></msub><mo>=</mo><msub><mi>C</mi><mrow><mi>g</mi><mi>d</mi></mrow></msub><mo>+</mo><msub><mi>C</mi><mrow><mi>d</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{oss}=C_{gd}+C_{ds}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">o</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361079999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">g</span><span class="mord mathdefault mtight">d</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></li><li>逆导电容( Reverse Transfer  Capacitance)：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>r</mi><mi>s</mi><mi>s</mi></mrow></msub><mo>=</mo><msub><mi>C</mi><mrow><mi>g</mi><mi>d</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{rss}=C_{gd}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">r</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361079999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">g</span><span class="mord mathdefault mtight">d</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span></li></ul><blockquote><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>o</mi><mi>s</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{oss}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">o</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>对于软开关的应用，Coss非常重要，因为它可能引起电路的谐振。</p><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>i</mi><mi>s</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{iss}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31166399999999994em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">i</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>输入功率组件驱动能力或损失时的参数。</p><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>r</mi><mi>s</mi><mi>s</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{rss}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">r</span><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">s</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>对于高频切换动作最有不良影响. 为了提高组件高频特性, <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>g</mi><mi>d</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{gd}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3361079999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">g</span><span class="mord mathdefault mtight">d</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span></span></span></span>要愈低愈好。</p></blockquote><p>等效电路：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/6.png" alt="分布电容" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="分布电容" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">分布电容</span></div></div><h4 id="雪崩电压"><a class="markdownIt-Anchor" href="#雪崩电压"></a> 雪崩电压</h4><p>电路中存在杂散的<strong>电感</strong>，由于电感存在，MOSFET关断时电流不会立刻变为0，而是继续流动，此时会产生感应电动势使得电压<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>D</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{DS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>上升，有可能会上升到甚至超过<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>D</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{DSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></p><blockquote><p>想象一下，MOSFET关断后，电流持续流动撞击漏极（Drain），电子撞击强度过大就将撞坏MOSFET，导致雪崩击穿。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/13.png" alt="等效电路+雪崩电压" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="等效电路+雪崩电压" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/13.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">等效电路+雪崩电压</span></div></div><h4 id="soa安全工作区"><a class="markdownIt-Anchor" href="#soa安全工作区"></a> SOA(安全工作区)</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/22.png" alt="SOA" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="SOA" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/22.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">SOA</span></div></div><p>图表中所示为在汲极电流ID和汲极－源极间电压VDSS的关系中，对于额定电压/电流、额定功率（发热）来说安全的、即不至于损害可靠性、不至于损坏的范围。</p><ol><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mrow><mi>D</mi><mi>S</mi><mo stretchy="false">(</mo><mi>O</mi><mi>N</mi><mo stretchy="false">)</mo></mrow></msub></mrow><annotation encoding="application/x-tex">R_{DS(ON)}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.03853em;vertical-align:-0.3551999999999999em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.34480000000000005em;"><span style="top:-2.5198em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">O</span><span class="mord mathdefault mtight" style="margin-right:0.10903em;">N</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3551999999999999em;"><span></span></span></span></span></span></span></span></span></span>极限<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>D</mi><mi>S</mi></mrow></msub><mi mathvariant="normal">/</mi><msub><mi>I</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">V_{DS}/I_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord">/</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></li><li>极限电流<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mrow><mi>D</mi><mi>M</mi></mrow></msub></mrow><annotation encoding="application/x-tex">I_{DM}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.10903em;">M</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></li><li>最大功率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mrow><mi>D</mi><mi>M</mi></mrow></msub><mo>=</mo><msub><mi>V</mi><mrow><mi>D</mi><mi>S</mi></mrow></msub><mo>∗</mo><msub><mi>I</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">P_{DM}=V_{DS}*I_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.13889em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.10903em;">M</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></li><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>B</mi><mrow><mi>V</mi><mi>D</mi><mi>S</mi><mi>S</mi></mrow></msub></mrow><annotation encoding="application/x-tex">B_{VDSS}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05017em;">B</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05017em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.22222em;">V</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">D</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>极限</li></ol><h2 id="题外话量子隧穿"><a class="markdownIt-Anchor" href="#题外话量子隧穿"></a> <em>题外话：量子隧穿</em></h2><h3 id="半导体能级"><a class="markdownIt-Anchor" href="#半导体能级"></a> 半导体能级</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/18.png" alt="半导体能级" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="半导体能级" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/18.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">半导体能级</span></div></div><p>从未观察层面讲能级是不连续的</p><h3 id="隧道二极管td"><a class="markdownIt-Anchor" href="#隧道二极管td"></a> 隧道二极管(TD)</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/21.png" alt="隧道二极管" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="隧道二极管" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/21.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">隧道二极管</span></div></div><p>江崎发现了反常的电流一电压特性。常见的二极管是没有中间的尖峰的，电流随电压增大而增大。如下图等电压达到（图B）时，电子发生隧穿，电流急剧增大。<br />当电压超过能使得电子隧穿的能级时（图C），电子无法隧穿，电流下降。<br />当电压上升到电子足够跃迁到上一个能级时（图d），大于这个能量状态的电子脱离了材料中单个原子的束缚，是可以在电场的作用下在材料中移动的，电流增加。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/20.png" alt="隧道二极管" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="隧道二极管" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOSFET「场效应管」/20.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">隧道二极管</span></div></div><blockquote><p>Ec是导带，是这个电子系统中比较高的一种能量状态，大于等于这个能量状态的电子脱离了材料中单个原子的束缚，是可以在电场的作用下在材料中移动的。所以叫导带。<br />Ev是价带，是这个能量系统中比较低的能量状态，小于或等于这个能量状态的电子是被某个原子束缚住的，是形成了价键的。所以叫价带。<br />Ef是费米能级，是这个电子系统的化学势，体现了电子系统活跃性，某种程度上可以说能体现系统的总能量。（自由电子的能量越高和自由电子总数目越大化学势越大）。</p></blockquote><h3 id="应用隧道二极管振荡器"><a class="markdownIt-Anchor" href="#应用隧道二极管振荡器"></a> 应用（隧道二极管振荡器）</h3><blockquote><p>隧道二极管用于不同的振荡器，如弛豫、微波等。它用作具有非常高速度的开关器件。用作逻辑存储器存储设备。用作微波振荡器高频这个二极管用作振荡器，放大器和开关它用作高频组件它用作存储逻辑存储器的存储设备它被使用在 FM 接收器和振荡器电路中，因为它是一种低电流设备因此，这是关于隧道二极管、结构、工作、优点、缺点及其应用的概述。 这些二极管用作振荡器、放大器、开关等。由于其快速响应，该二极管可以用作高频组件，但是，由于更好的设备的可访问性，因此未选择它。</p></blockquote><h3 id="cmos工艺中的量子隧穿"><a class="markdownIt-Anchor" href="#cmos工艺中的量子隧穿"></a> CMOS工艺中的量子隧穿</h3><p>由于PN结间间隙非常窄，同时想CPU等集成电路输入电压极低，必须考虑量子隧穿效应，当能级接近时，电子会发生隧穿，导致电流增大，此时无法精确控制0和1了。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>简简单单的MOSFET其实远不止于此，文章仅仅讲述了功率MOSFET部分，这也是电源部分必修课，但大同小异，基本原理也逃不开这一套下来。以前只是听说量子隧穿，但不知道是什么，写文章的时候查了不少资料，量子领域的东西真是不简单。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/646729442">第二课：如何理解功率MOSFET规格书「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://staging2.viitorsemi.com/wp-content/uploads/AN-005_CN.pdf">技术文章: MOSFET规格书解读与参数详解.pdf</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/chenhuanqiangnihao/article/details/112602538">MOSFET | 如何看懂MOSFET手册？①「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://blog.sina.com.cn/s/blog_710b9b8a0100wn9n.html">半导体热阻问题深度解析(Tc,Ta,Tj,Pc)「新浪博客」</a></li><li><a target="_blank" rel="noopener" href="https://www.szlcsc.com/info/12094.html">一文看懂功率MOS管的每一个参数！)「立创商城」</a></li><li><a target="_blank" rel="noopener" href="https://toshiba.semicon-storage.com/us/semiconductor/knowledge/faq/mosfet/electrical-characteristics-of-mosfetsbody-diode-idr-idrp-vdsf-tr.html">What are the characteristics of MOSFET body diodes?</a></li><li><a target="_blank" rel="noopener" href="https://www.eda365.com/thread-353562-1-1.html">结电容Cgd、Cgs、Cds与分布参数Ciss、Crss、Coss</a></li><li><a target="_blank" rel="noopener" href="https://toshiba.semicon-storage.com/ap-en/semiconductor/knowledge/faq/mosfet/mos-is-sensitive-to-static-electricityhow-do-you-protect-mosfets.html">MOS is sensitive to static electricity. How do you protect MOSFETs from static electricity?</a></li><li><a target="_blank" rel="noopener" href="https://toshiba-semicon-storage.com/cn/semiconductor/knowledge/faq/diode/what-is-trr.html">什么是二极管反向恢复时间（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mrow><mi>r</mi><mi>r</mi></mrow></msub></mrow><annotation encoding="application/x-tex">t_{rr}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.02778em;">r</span><span class="mord mathdefault mtight" style="margin-right:0.02778em;">r</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>）？</a></li><li><a target="_blank" rel="noopener" href="https://www.zhihu.com/question/67214844">mosfet电路图中的反向二极管什么作用？就是圈里面的二极管，体二极管是什么？「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://toshiba-semicon-storage.com/cn/semiconductor/knowledge/faq/mosfet/what-is-avalanche-capability.html">MOSFET中的雪崩是什么?（雪崩能力）</a></li><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/540653641">【PMOS/NMOS区别】从原理上区分记忆(含制程工艺知识)「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://zhidao.baidu.com/question/491759966.html">数电中N沟道增强型MOS管为防止有电流从衬底流向流向源极和导电沟道，通常将衬底与源极相连接「百度知道」</a></li><li><a target="_blank" rel="noopener" href="https://sfzx.yangtzeu.edu.cn/__local/E/EA/10/23C66E769BC2B254B8558BA4E0C_B657E825_4286AC.pdf?e=.pdf">CMOS工艺及版图</a></li><li><a target="_blank" rel="noopener" href="https://faculty.pku.edu.cn/_tsf/00/14/nmAJNvJBNfUj.pdf">量子隧穿「王一博，卜逸舟，曹颖康」</a></li><li><a target="_blank" rel="noopener" href="https://www.zhihu.com/question/295026477">半导体中的Ec, Ev,Ef之间是什么关系？「知乎问答回答一」</a></li><li><a target="_blank" rel="noopener" href="https://zh-cn.fmuser.net/content/?21143.html">什么是隧道二极管：工作原理及其应用</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="元器件之旅" scheme="https://blog.findingx.cc/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/"/>
    
  </entry>
  
  <entry>
    <title>念旧</title>
    <link href="https://blog.findingx.cc/2024/11/18/001852/"/>
    <id>https://blog.findingx.cc/2024/11/18/001852/</id>
    <published>2024-11-17T16:18:52.000Z</published>
    <updated>2025-07-11T01:38:06.149Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>翻看曾经的朋友圈，想起了一些事，又开始虚度光阴，沉浸在旧日时光里。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月十八日</span></div></div></div></div></p></div><p>念旧的人呐，总是对着自己曾经发过的朋友圈傻笑，会收集一堆又一堆的老物件挨个拍照留存在赛博世界里，回忆着每一滴泪水，看着每一段旅程。<br />我不喜欢回忆，因为总会想到伤心的事。每当念旧之时，在无尽深渊中那个伤痕累累的我，会悄悄从影子中挪出来。</p><p>：嘿我来了。<br />：嗯，现在没人了，出来坐坐吧。毕竟你也是我。<br />：还记得吗？那个夏天<br />：…嗯，记得…</p><p>但念旧时又可能是是那个少年阳光的我，如清晨的一米阳光，牵着沧桑的我，去看每一个美好瞬间。他的速度很快，但也很慢，有时似清凉的风，清新，自然；有时像松软的雪，轻盈，柔软。他说那是你和朋友们一起聚餐的篝火，他说那是你登峰时的喜悦，他说那是你搭建的第一个小站，他说那是有她陪伴的每一分钟。</p><p>翻看着那些老旧相片，千思万缕。这是我收到的第一套书，这是我学生时代的笔记，这是来自某某的礼物，值得珍藏的属于我们的回忆。</p><p>总是细数着，每一件发生在自己身上的事，那时那些人那些事，我的曾经，我的过去，不免的沾染上了灰白，好像还能听到声音，隐隐约约，好像，是另一个我的呼唤，就在不远处，我顺着摸去，可无论如何也无法触及</p><p>念旧的人爱听老歌，爱那个时代的音律，也爱听怀旧的歌曲，忍不住去看去听那岁月的声音</p><p>🎵许多年前 你有一双清澈的双眼🎵<br />🎵奔跑起来 像是一道春天的闪电🎵<br />🎵想看遍这世界 去最遥远的远方🎵<br />🎵感觉有双翅膀 能飞越高山和海洋🎵</p><p>我是个念旧的人，总是在回忆。我虚无地度过着，每一次念旧的时刻。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>已过午夜，让回忆都散去吧。关上文档，关闭手机睡个好觉，毕竟还要向前看，明天也许会更好。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="杂谈" scheme="https://blog.findingx.cc/categories/%E6%9D%82%E8%B0%88/"/>
    
    
    <category term="随笔" scheme="https://blog.findingx.cc/tags/%E9%9A%8F%E7%AC%94/"/>
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-46</title>
    <link href="https://blog.findingx.cc/2024/11/15/172813/"/>
    <id>https://blog.findingx.cc/2024/11/15/172813/</id>
    <published>2024-11-15T09:28:13.000Z</published>
    <updated>2025-07-11T01:38:06.156Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>仿佛在某一天，夕阳擦过脸颊，我依旧看着那个蓬勃的朝阳，模糊的光环。那年，那束光，我们青春正年华。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月十一日『第四十六周』</span></div></div></div></div></p></div><h2 id="黄粱一梦"><a class="markdownIt-Anchor" href="#黄粱一梦"></a> 黄粱一梦</h2><p>前几日刷<code>开往</code>，无意间读到文章<a target="_blank" rel="noopener" href="https://blog.xecades.xyz/articles/memory/">难以忘怀</a></p><blockquote><p>我做的一切，仿佛都是为了未来的某一天，在某个昏黄的午后，一个迟暮之人缓慢地讲述着他的历史，讲述着他难以忘怀的青春。 ——Xecades</p></blockquote><p>电脑前的我不经意间呆滞了，精神世界回到了那个大一的下午，导员说：“大学，不是别人想让你成为什么样的人，而是你，想成为什么样的人。”那是还没有MBTI，只知道内向这个词，用在我身上绝对精准，导员说，她曾也是，但如今能面对几个班的学生侃侃而谈。</p><p><strong>你想成为什么样的人？</strong> 我想…</p><p>…</p><p>如今读到文章，蓦然回首，如黄粱一梦。坐在自习室里，那个虚化的我，灯火阑珊。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202446/1.png" alt="评论" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">评论</span></div></div><h2 id="外科医生"><a class="markdownIt-Anchor" href="#外科医生"></a> 外科医生</h2><blockquote><p>：“又在动烙铁啊？”<br />：（摇摇头）“没有没有”<br />：（满脸问号）“？”<br />：“在动手术。”<br />：（笑）</p></blockquote><p>干硬件这行，有点像外科医生。刀口烙铁在我们手里如同外科医生的手术刀，透过放大镜，为病人接血管（飞线），切肿瘤（删元件）。人形机器人越来越多，倘若几十年后，机器人已经是随处可见，我们对于机器人来说不就如同外科医生吗。</p><h2 id="别让你的头衔定义了你"><a class="markdownIt-Anchor" href="#别让你的头衔定义了你"></a> “别让你的头衔定义了你”</h2><p>最近看到kaffa的自述，觉得非常有意思，便截取了下来。</p><blockquote><p>管理大师告诉大家：“别让你的工作定义了你”。而坦率地讲，对于大多数生活在二十一世纪的可怜的打工人，工作恰不是“在别处”的东西，你的工作几乎就是你。大师的断言或更应换做“别让你的头衔定义了你”，头衔是一种和标签类似的东西，那是一个角色或身份。</p><p>可能你在你的领域内，职位是公司高层或中层，但那些都不是你，你从事的行业和你公司在做的事才更接近本来的你。至于你想成为谁，或你想做什么，那些都不是你（one-liner 闪现），只是你的意识体验上树立了一个“超你”以避开当下，并对为未来进行模拟。</p><p>无疑，大多数的我或我们更接近我或我们从事了多年的工作。</p><p>个人站的建立让我们避开了身份，避开了身份这个面具，更容易与你在互动中认识。<br />时代选中的我们将代码敲在公域中，同时还留下一些本土的、朴素的字节。</p></blockquote><p>每一个站点风情各异，都是这个时代的字节创作者们留下的脚印。在脱离了面具的互联网上更容易在互动中相识。</p><p>自 20 年初接触个人站点以来，发现个人站点越发得多了，也许是入了这个圈子吧。<br />不得不说，社群里各种领域的人才都有，有时一张照片一条消息引出了一堆爱好者来。</p><hr /><p>这周依旧，走着同样的回家路，看着一样的风景，一路前行。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>Inductance「电感」</title>
    <link href="https://blog.findingx.cc/2024/11/14/161150/"/>
    <id>https://blog.findingx.cc/2024/11/14/161150/</id>
    <published>2024-11-14T08:11:50.000Z</published>
    <updated>2025-07-11T01:38:06.139Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>对于电感呢，感觉起来可能没有电容存电荷直观，电感可以理解为存储磁，越是高频产生的磁效应越强，就越是无法通过电感。电感电流不能瞬间突变，但电压可以，电压会瞬间反向。反过来想想，电容电流不也是反向突变了吗。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月十日</span></div></div></div></div></p></div><h2 id="单位"><a class="markdownIt-Anchor" href="#单位"></a> 单位</h2><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>H</mi></mrow><annotation encoding="application/x-tex">H</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.08125em;">H</span></span></span></span> -&gt; <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi><mi>H</mi></mrow><annotation encoding="application/x-tex">mH</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault">m</span><span class="mord mathdefault" style="margin-right:0.08125em;">H</span></span></span></span> -&gt; <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>μ</mi><mi>H</mi></mrow><annotation encoding="application/x-tex">μH</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault">μ</span><span class="mord mathdefault" style="margin-right:0.08125em;">H</span></span></span></span> -&gt; <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi><mi>H</mi></mrow><annotation encoding="application/x-tex">nH</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault">n</span><span class="mord mathdefault" style="margin-right:0.08125em;">H</span></span></span></span></p><h2 id="数据手册部分解读"><a class="markdownIt-Anchor" href="#数据手册部分解读"></a> 数据手册部分解读</h2><blockquote><p>此规格书为<strong>功率电感</strong>手册。<br />如需详细了解电感可以参考这份规格书，打开商城后点击下载数据手册即可<br /><a target="_blank" rel="noopener" href="https://item.szlcsc.com/631462.html?fromZone=s_s__%2522FHD4020S%2522">https://item.szlcsc.com/631462.html?fromZone=s_s__%22FHD4020S%22</a></p></blockquote><h3 id="命名规则"><a class="markdownIt-Anchor" href="#命名规则"></a> 命名规则</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/1.png" alt="命名规则" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="命名规则" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">命名规则</span></div></div><p>基本命名规则和阻容差不多，这里不多做解释。</p><h3 id="规格specifications"><a class="markdownIt-Anchor" href="#规格specifications"></a> 规格（specifications）</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/2.png" alt="规格" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="规格" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">规格</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/3.png" alt="规格note" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="规格note" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">规格note</span></div></div><p>不同感量对应各种参数也不同，其中有三个</p><ul><li>电感量：在<code>1MHz/1V</code>时对应的电感量</li><li>DRC（直流电阻）：接入直流电时的电阻，至于选择，后面再讲解</li><li>Isat（饱和电流）：当电路中电流达到一定程度时，电感磁芯会达到饱和状态（直流叠重叠特性），到达饱和状态后电感感量会下降，设计时需要考虑电路中电流大小。基于电感下降30%的电流，表示直流叠加允许电流，电感值下降30%时的电感值。</li><li>Irms（温升电流）：电流流经电感，温度会升高，升高后会损害电感器。在选择电感时，需要确保电路中的实际工作电流小于这两个电流值。基于电感温度上升40℃的电流，表示基于温度上升的允许电流，电感温度从20℃或25℃（不同厂家标准不同）开始上升40℃的允许电流。</li></ul><blockquote><p>选型时需要考虑电流大小，这两个电流中，较小的一个为电感的额定电流。电感工作电流不得超过这个值！<br />当电流过大时，电感值下降，电流瞬间上升便会烧毁电感。</p></blockquote><blockquote><p>行业规定，规格书中要提供电感值下降30%所对应的电感值，电感实际应用电流，都不得超过这个值。<br />换个角度讲，电感的降额不得低于70%。印象中，汽车行业降额不得低于90%。</p></blockquote><h3 id="典型电气特性"><a class="markdownIt-Anchor" href="#典型电气特性"></a> 典型电气特性</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/4.png" alt="温度与直流电流特性关系图（左侧）和电感量与直流电流特性（右侧）" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="温度与直流电流特性关系图（左侧）和电感量与直流电流特性（右侧）" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">温度与直流电流特性关系图（左侧）和电感量与直流电流特性（右侧）</span></div></div><ol><li>Temperature vs. DC Current Characteristics（温度与直流电流特性关系图）<br />左侧：反映不同电感值电感，随电流上升过程中，温度的变化曲线。实际设计中需参考上述图表。</li><li>Inductance vs. DC Current Characteristics（电感量与直流电流特性）<br />右侧：随着直流电流的增加，电感量的变化趋势。电流增大后，磁芯达到饱和，电感量有下降趋势</li></ol><h2 id="工作原理讲解"><a class="markdownIt-Anchor" href="#工作原理讲解"></a> 工作原理讲解</h2><h3 id="构造"><a class="markdownIt-Anchor" href="#构造"></a> 构造</h3><p>就如高中所学，电感是线圈组成的，较大的线圈肉眼可见，贴片小型电感有如下图示结构（大小电感原理相同）：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/5.png" alt="电感结构" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电感结构" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电感结构</span></div></div><p>还有一种是一体成型电感，这种电感基本大多是电子产品都能见到。这种磁屏蔽结构，磁路闭合，抗电磁干扰强，EMI抑制效果好；通流能力强，可在大电流环境下持续长期工作且功耗低；电感啸叫声小（线圈与磁粉紧密结合，结构上避免线圈震动）；同尺寸直流阻抗DCR最低。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/7.png" alt="一体成型电感" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="一体成型电感" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/7.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">一体成型电感</span></div></div><h3 id="功率电感"><a class="markdownIt-Anchor" href="#功率电感"></a> 功率电感</h3><p>用在电源电路中，起到续流作用，比如DCDC电路中。一般体积较大，能通过几个安培的电流。</p><h4 id="滤除高频干扰"><a class="markdownIt-Anchor" href="#滤除高频干扰"></a> 滤除高频干扰</h4><p>如下图高频干扰信号第一次经过小电容，被过滤掉一部分后继续传播，到达电感后，由于电感的高阻抗，这个高频信号又被反弹回来，到达电容后在此被吸收。电容在电感的前面，这种电路能极大的滤除高频信号。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/6.png" alt="DCDC中的作用" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="DCDC中的作用" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Inductance「电感」/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">DCDC中的作用</span></div></div><p>可以简单理解为电感电流无法突变，而DCDC本质上是高速开关，电流忽大忽小，通过利用电感的电流不能突变特性达到续流的效果。</p><blockquote><p>选型</p><ol><li>选择最大电流不超过Isat和Idc的</li><li>大电流应用，考虑绕线电感或者薄膜电感。大电流应用要特别注意电感的屏蔽方式，如果主板器件密集，且敏感器件多，建议用一体成型的电感。如果不要求，可以考虑铁氧体绕线电感或者薄膜电感。</li><li>注意电感不能太高温下使用，会影响Idc。</li></ol></blockquote><h3 id="高频电感"><a class="markdownIt-Anchor" href="#高频电感"></a> 高频电感</h3><p>用于射频电路中，起到阻抗匹配，滤波的作用，一般是0201的小尺寸贴片电感。比如ESP32、wifi网卡等有天线的线路上一般都会预留π形电路，π形电路会用到到高频电感。</p><p>做手机的厂商应该比较了解，手机需要调制5G射频（重点是射频），信号好就需要滤波好天线好。</p><blockquote><p>「多说一句」：为什么苹果手机的信号没有其他安卓手机的好，苹果的基带设计和SOC是分开的，而大多数安卓平台SOC和基带是整合到一起的。苹果的基本逻辑是基带转换成数字信号传输给SOC，这种方式从底层信号通讯上来讲没有集成来的稳定。</p></blockquote><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>磁珠本来也想和电感器放在一起，他们非常相似，但又属于EMI范畴的东西，思来想去还是单独写一篇文章吧。为什么没讲电感器的计算呢，电感器计算和电容一样，只不过电感器的电流是电压关于时间积分，本质计算和电容器一样。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接：<br />滤波器与传递函数</p><ol><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/458091044">开关电源环路学习笔记（1）-为啥要知道传递函数？「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/STM89C56/article/details/105603109">微分方程与传递函数「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_42837669/article/details/127327233">滤波器基础02——滤波器的传递函数与性能参数「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/AirCity123/article/details/104280022">了解电感—参数、特性、选型</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_40693786/article/details/134528816">一文掌握磁珠的工作原理、主要参数及应用选型</a></li><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/164544535">电磁兼容（EMC）：5分钟看懂一体成型电感</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="元器件之旅" scheme="https://blog.findingx.cc/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/"/>
    
    <category term="电感" scheme="https://blog.findingx.cc/tags/%E7%94%B5%E6%84%9F/"/>
    
  </entry>
  
  <entry>
    <title>信息与博弈</title>
    <link href="https://blog.findingx.cc/2024/11/13/085429/"/>
    <id>https://blog.findingx.cc/2024/11/13/085429/</id>
    <published>2024-11-13T00:54:29.000Z</published>
    <updated>2025-07-11T01:38:06.146Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>社会中绝大部分都是信息不对称的，由于这些信息的不对称，造就了很多产业，信息咨询服务业，会计公司等。信息越多推演能力足够的情况下越能精准预测博弈的结果，围棋只要在计算推演能力足够的情况下一定能找出必胜法则（最优策略）</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月十三日</span></div></div></div></div></p></div><h3 id="品牌"><a class="markdownIt-Anchor" href="#品牌"></a> 品牌</h3><p>最直观的感受是买家电或者消费类电子，说到家电大家脑海里浮现出来的都是哪些品牌？讲到手机大家会想到华为，小米，OPPO，三星等等。这些都是品牌，刚才提到的这些商品有个共同特点，你需要自己使用它你才能知道这个产品的好坏（相比自媒体出来前，没有测评博主，这种信息差也更大）。多提一句，做ODM的都知道，我们都在为品牌商打工，这里的品牌也就是标题所提到的，ODM的位置处于供应链下游。</p><p>再举个例子，大家在超市选购蔬菜水果时会考虑蔬菜的品牌吗。像蔬菜水果这样的商品，可以从外观等判断其好坏，相比之下信息差不大。比如兴办一所私立大学，好的学生一般不会选择，他们一般会优先考虑北大清华复旦等知名大学。又比如药物，提到药品，例如同仁堂，这就是一种品牌。大街小巷的广告几乎都能看到明星代言，其实也是信息差导致的结果。</p><p>信息差越大，品牌效应越强烈，如：蔬菜水果 &lt; 家电产品 &lt; 药物 &lt; 信息咨询</p><p>说到底，博弈就是看你掌握的信息量，自己的信息量越大，能够推算的就越远。</p><h3 id="信号传递"><a class="markdownIt-Anchor" href="#信号传递"></a> 信号传递</h3><p>招聘是一个很典型的信息的不对称的例子，面试官只知道招聘者 50% 的概率是有才能的，50% 是无才能的。如何招聘到有才能的人呢？</p><p>这里提到一个概念，<strong>信号传递</strong>。面试者（信息优势一方）可以通过各种形式展现自己才能，这是一种信号传递，将自己是是有才能的人的这一信息传递给面试官。再比如买产品的厂家会通过各种形式的宣传、为消费者提供咨询服务、直播答疑、实际使用体验等等方式将自己产品的质量信息传递给消费者。</p><p>送礼从传递信号这个角度来讲，最重要的是送礼对于送礼人的成本。同样是1000元，如果是百万富翁送你的1000元，并不能说明什么，对于送礼人（百万富翁）来说，他差的不是钱，而是时间；相对的穷人送你1000元就可以，因为穷人最缺的就是钱。但为什么我们通常不送钱呢？波斯纳提出一个很重要的观点：</p><blockquote><p>在礼尚往来的情况下，礼品必须毁灭它的价值。这样做的目的就是要使你送礼的成本必须大于礼物对收礼者的价值。</p></blockquote><blockquote><p>比如我花8元钱买的礼物，可是它对你的价值只有2元钱；你出8元钱买的东西对我来说价值也仅仅是2元钱。而我们相互送礼，每一方的价值就都减少了。本来8元钱的东西，现在互送之后变成了2元钱的东西。但从个人的角度看，这不是浪费，它是有意义的，因为它表示出了彼此对对方的重视。因为它“毁灭”了一些价值，所以才能表现出更重视对方。这也解释了为什么相互送礼的时候，我们不能送现金，而要送礼品。</p></blockquote><h3 id="完全信息博弈和不完全信息博弈"><a class="markdownIt-Anchor" href="#完全信息博弈和不完全信息博弈"></a> 完全信息博弈和不完全信息博弈</h3><h4 id="完全信息博弈"><a class="markdownIt-Anchor" href="#完全信息博弈"></a> 完全信息博弈</h4><p>最典型的就是围棋、象棋等，能明确看得到对方的策略。初识博弈论中提到的<code>囚徒困境</code>就是一种完全信息博弈。</p><p>对于完全信息博弈，只要推算足够远，一定能得到最优策略。</p><h4 id="不完全信息博弈"><a class="markdownIt-Anchor" href="#不完全信息博弈"></a> 不完全信息博弈</h4><p>比如游戏云顶之弈、军棋这类看不见对方策略的游戏。</p><p>本节之前讲到的信息不对称就是属于不完全信息博弈，参与者无法得到全部的信息，需要通过信号传递得到的信息，做出最优策略。</p><h3 id="如何突破信息不对称"><a class="markdownIt-Anchor" href="#如何突破信息不对称"></a> 如何突破信息不对称</h3><blockquote><p>一个典型的例子是《圣经》中“谁是孩子的母亲”的故事。两个妇女住在一个房间，相继各生了一个孩子，但突然有一天其中一个孩子死了，两个妇女都说活着的孩子是自己的，官司打到所罗门国王那里。所罗门国王并不知道谁是孩子的母亲，但是这两个妇女都是知道的，其中一个是真的母亲，一个是冒充的。但是真母亲没有办法来告诉大家自己是真的，假母亲没有积极性告诉大家自己是假的。在这种情况下，所罗门国王说，既然你们争论不休，我只能把孩子分成两半，你们每人拿一半好了。这时候，一位母亲放声大哭，说孩子不是自己的，而另一位母亲却无动于衷。<br />这样一来，所罗门国王就知道了谁是真的谁是假的，把孩子判给了前一位母亲。之所以如此，是因为所罗门国王知道，孩子真正的母亲宁肯失去孩子也不愿意孩子死去，而假母亲既然自己得不到孩子，对孩子的死活也就无所谓了。</p></blockquote><p>突破信息不对称本质上讲就是<strong>如何让人讲真话</strong>，我们可以通过设置机制来让参与者讲真话。比如上面面试的例子，我们可以通过设置面试题，只有有才能的专业领域人士才能答出或解决的专业知识的问题，通过这样一个机制（二面三面），便能区分被面试者是否是有才能的人。</p><h4 id="价格歧视"><a class="markdownIt-Anchor" href="#价格歧视"></a> 价格歧视</h4><blockquote><p>价格歧视是指：厂家在向不同的消费者出售相同成本的同类产品时收取不同的价格，或者即使成本不同，但不同消费者支付的价格差异大于生产成本的差异</p></blockquote><blockquote><p>延误：美国联邦快递公司（Federal Express）的邮递业务有优先服务（早10点之前送到）和“次日”服务之分；美国邮政局为了从快递服务赚钱，故意降低一级服延误：美国联邦快递公司（Federal Express）的邮递业务有优先服务（早10点之前送到）和“次日”服务之分；美国邮政局为了从快递服务赚钱，故意降低一级服</p></blockquote><p>这是网络时代的例子，再者如B站清晰度选项中有<code>4K高码率</code>这一项标着<code>大会员</code>的字样，也是一种价格歧视，不愿意为之付款的可以享用码率不高的视频，而喜欢码率较高的观众则会选择付款。</p><h4 id="拍卖"><a class="markdownIt-Anchor" href="#拍卖"></a> 拍卖</h4><blockquote><p>设想你有一件古董要卖，潜在的买者有的可能愿意多出点钱，有的可能愿意少出点钱，但是你并不清楚详细的信息，你用什么办法才能获得真实信息呢？一般来说，如果你只是随便走到某一个人的面前去直接问他：某某先生，你愿意为这个古董出多少钱呢？他不会说实话，比如他本来愿意出10000元，但可能会告诉你他愿意出的价格是8000元。维克瑞证明，次价格拍卖可以解决这个问题。设想有十个人来投标，最后的报价从高到低依次为：10万元，9.5万元，9万元，8.5万元，等等。按照规则，报价10万元的人得到这件古董，但他需要支付的价格是9.5万元，比自己的报价低0.5万元。</p></blockquote><blockquote><p>为什么这样的机制下每个人都会按照自己的真实评价报价呢？简单地说，因为你的报价只影响你能否赢，不影响赢的情况下你实际需要支付的价格。换句话说，你说真话只有好处没有坏处，而说假话只有坏处没有好处。</p></blockquote><p>感谢<a target="_blank" rel="noopener" href="https://tinsir888.github.io/">@tinsir888</a>在评论区的补充</p><blockquote><p>在拍卖中，机制设计者其实想要达到三个目标：</p><ol><li>社会福利最大化。（所有买家和卖家的效用之和最大）</li><li>占优策略激励相容（Dominant strategy incentive compatibility，即诚实报价能最大化自己的效用）</li><li>计算简单（不是 NP 的）</li></ol><p>单物品的二价拍卖（最高价获得物品支付第二高价）是满足 3 个目标：</p><ol><li>最高价者获得物品，满足了社会福利最大化。</li><li>最高价者支付第二高价格，满足占优策略激励相容。</li></ol><ul><li>当所有的竞标者都满足：提高自己的竞标报价，获得的物品总数不减少（在本例中是一个 0 到 1 的阶梯函数）时，一定存在一个支付规则，使得机制是占优策略激励相容的。</li></ul><ol start="3"><li>本机制能在多项式时间内求出解。</li></ol></blockquote><!-- ## _还没写完.._ --><h3 id="最后的对话"><a class="markdownIt-Anchor" href="#最后的对话"></a> <em>最后的对话</em></h3><blockquote><blockquote><p>三体人：计谋和伪装是什么？<br />伊文斯：……<br />三体人：人类的交流器官不过是一种进化的缺陷而已，是对你们大脑无法产生强思维电波的一种不得已的补偿，是你们的一种生物学上的劣势，用思维的直接显示，当然是效率更高的高级交流方式。<br />伊文斯：“缺陷？劣势？不，主，您错了，这一次，您是完完全全地错了。”<br />三体人：是吗？让我也想一想吧，很可惜，你看不到我的思想。</p></blockquote><p>这一次对话的间隔时间很长，字幕有二十分钟没有出现，伊文斯已经从船首踱到船尾了。之后字幕再次出现：</p><blockquote><p>三体人：你是对的，现在回想那些文献，我有些懂了。<br />伊文斯：“我的主，你要真正弄懂人类的那些东西，还有很长的路要走，我甚至怀疑，您最终是否有可能弄懂。”<br />三体人：是的，真的是太复杂，我现在只是知道了自己以前为什么不理解…… 你是对的。<br />伊文斯：“我的主，您需要我们。”<br />三体人：我害怕你们。</p></blockquote><p>对话中断了，这是伊文斯最后一次收到来自三体世界的信息。</p></blockquote><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>三体人的思维是开放的，他们没有隐藏自己思想的方式，自己的思维直接展示出来。三体人的恐惧源于无法预知人类行动。在物理的世界，若能知道某一时刻每个粒子的状态，便可推演预测未来任意时刻的粒子状态。人类文明相对三体文明和物理世界是复杂的（尽管物理世界本就很复杂，数据海量），思维隔离造就了信息不对称。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="社会科学" scheme="https://blog.findingx.cc/categories/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6/"/>
    
    
    <category term="博弈论" scheme="https://blog.findingx.cc/tags/%E5%8D%9A%E5%BC%88%E8%AE%BA/"/>
    
  </entry>
  
  <entry>
    <title>人文与博弈</title>
    <link href="https://blog.findingx.cc/2024/11/11/083353/"/>
    <id>https://blog.findingx.cc/2024/11/11/083353/</id>
    <published>2024-11-11T00:33:53.000Z</published>
    <updated>2025-07-11T01:38:06.146Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>易经·节卦曰：天地节，而四时成。节以制度，不伤财，不害民。千年沉淀让各地人文各异，在漫长的岁月中，文化、法律、道德已经深度融入了生活。但为什么会出现制度，他解决了什么？</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月十一日</span></div></div></div></div></p></div><h2 id="多重均衡"><a class="markdownIt-Anchor" href="#多重均衡"></a> 多重均衡</h2><p>纳什均衡是指在一个博弈过程中，每个参与者在给定其他参与者策略的情况下，选择自己的最优策略，使得没有参与者有动机单独改变自己的策略。而多重均衡意味着参与者有多种策略组合可以达到这种稳定状态。社会是复杂的，一个博弈中往往存在多个纳什均衡，靠单一的理性思维是无法预测行为的。</p><h2 id="几种博弈"><a class="markdownIt-Anchor" href="#几种博弈"></a> 几种博弈</h2><h3 id="交通博弈"><a class="markdownIt-Anchor" href="#交通博弈"></a> 交通博弈</h3><p>设想香港与大陆边界取消了，一个香港人开车迷路，不清楚自己是在大陆还是在香港，这时对向来了一辆大陆的汽车，他该靠左还是靠右？香港人觉得大陆车靠右行，那我也要靠右行驶；与此同时大陆人觉得香港车靠左行驶，我也要靠左才不会撞车。或者反过来，不论哪种只要预期不一致就会发生车祸。再比如英国和欧洲也是如此，这时就需要法律来指定规则。</p><p>这种交通规则（文化）上的冲突，不论是国家或者组织间的冲突，其实就是均衡的选择问题。解决方法有三，一是一方妥协，二是建立新的制度，三是建立协调规则。</p><h3 id="资源争夺博弈"><a class="markdownIt-Anchor" href="#资源争夺博弈"></a> 资源争夺博弈</h3><p>假定每个人都有两种策略选择，鹰代表强硬不妥协，鸽代表和平妥协。由于社会资源有限，当社会上两个人相遇时会出现争夺资源的情况，当鹰和鸽相遇时，鹰会争夺资源，最终鹰得10，鸽得0，而当鸽和鸽相遇时，双方妥协，最终双方都得5。鹰与鹰相遇时双方不妥协，都得-1。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/人文与博弈/1.png" alt="资源争夺博弈" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="资源争夺博弈" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/人文与博弈/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">资源争夺博弈</span></div></div><p>上述博弈纳什均衡有两个，鹰鸽相遇，预测对方选择鹰，自己选择鸽才是最优策略，但谁都想当赢家，则避免不了两败俱伤的局面。为什么不双方都选择鸽策略呢？虽这个是好协议，但不是纳什均衡，没有人会自觉遵守。但这个好协议不是纳什均衡，没有人会自觉遵守。参与人之间的信息交流不能协调出一个特定的纳什均衡。</p><p>同样具有多个纳什均衡的例子：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/人文与博弈/3.png" alt="风险占优协调" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="风险占优协调" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/人文与博弈/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">风险占优协调</span></div></div><p>同样二者可以通过协商选择<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">(</mo><msub><mi>C</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>R</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(C_1,R_1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span>均衡，但面临着可能收益为0的风险（如果对方协商后任然选择<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">(</mo><msub><mi>C</mi><mn>2</mn></msub><mo separator="true">,</mo><msub><mi>R</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(C_2,R_1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span>、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">(</mo><msub><mi>C</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>R</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(C_1,R_2)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span>），出于对风险的考虑即使能够自由协商但最终结果不一定是帕累托最优的均衡。当多个纳什均衡存在是，帕累托最优有助于协调预期，但是否起效与风险有关，风险越小，预期越好，风险越大，预期越差。</p><h3 id="进门博弈"><a class="markdownIt-Anchor" href="#进门博弈"></a> 进门博弈</h3><p>二人要进入一扇门，必须一人先一人后。在不同的均衡下得到的收益也不同，具体如下。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/人文与博弈/2.png" alt="进门博弈" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="进门博弈" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/人文与博弈/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">进门博弈</span></div></div><p>在这种博一下需要有一种规定来调节二者先后顺序，比如中国的“尊老爱幼”，西方的“女士优先”等都属于这种规定，这种社会规定还有很多，古代有祭祀顺序，衙门官场座位顺序，用餐的官本位等等。有了这些规则（文化传统）后便减少了冲突的发生。</p><h4 id="规则之战"><a class="markdownIt-Anchor" href="#规则之战"></a> 规则之战</h4><p>为什么要抢占5G？都想成为规则。</p><p>选择的不同会导致利益分配不对称，不管使用哪一种社区的规则对于其他社区来说都会导致利益分配不对称。尽管人们都想统一，但在统一于哪一种标准的问题上任然有冲突，于是每个人都希望自己的规则成为  国际标准。这类似于进门博弈，二者只能选择前后顺序，谁先抢占谁就是规则。</p><h2 id="人文与博弈"><a class="markdownIt-Anchor" href="#人文与博弈"></a> 人文与博弈</h2><p>文化法律道德等人类社会长期产物都是不断博弈产生的结果，解决了很多冲突。长期的文化共识和社会行为有助于人们达到一致的预期，事实上，这样的法律和社会规范本身就是一个纳什均衡，所以能够得到人们的自觉遵守。不同文化之间的冲突也可以通过制定新的规范或双方协调得到一个新的纳什均衡。</p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="社会科学" scheme="https://blog.findingx.cc/categories/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6/"/>
    
    
    <category term="人文" scheme="https://blog.findingx.cc/tags/%E4%BA%BA%E6%96%87/"/>
    
    <category term="博弈论" scheme="https://blog.findingx.cc/tags/%E5%8D%9A%E5%BC%88%E8%AE%BA/"/>
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-45</title>
    <link href="https://blog.findingx.cc/2024/11/09/090916/"/>
    <id>https://blog.findingx.cc/2024/11/09/090916/</id>
    <published>2024-11-09T01:09:16.000Z</published>
    <updated>2025-07-11T01:38:06.156Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>二零二四只剩几周了，屈指可数。这一周很平淡，重复着两点一线的生活。每天看着人流涌动，熙熙攘攘，可能今后的三四十年都会如同今日一样吧。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月九日『第四十五周』</span></div></div></div></div></p></div><p>通勤路上，列车声音不断，时间匆匆前行。忙碌的人们穿梭在城区的街头巷尾，没人会去思考先有鸡还是先有蛋。目标明确，健步如飞。早高峰的地铁和公交载满了奔波的人，车窗外，从住宅到公园，从低矮民房到高耸的大厦。日复一日。</p><p>几天前和老友叙旧，上一次相见好像是三四年前吧。他说：怎么摆了Lake，你还年轻，有大好前途啊。是啊，还记得上学的我们能为一道几何争论不休，探讨维度使得宇宙多变，观察焰色与电解的艳丽；尽管大学进修专业有异，但在交叉学科上也聊得尽兴。毕业将至，他选择继续深造，我选择离开校园。他好像依旧，我渐渐地好像失去了些什么…或是当年的激情吧。</p><p>最近写了几篇理论值计算的文章，猛然发现已经不如当初了，又翻出了于先生的电路原理，再读时，感觉略有不同。一段时间的搁置让自己失去了不少，这就是放纵的代价。细数毕业后丢掉了不少东西，编程，物理，数学，博客。终究，我要做回我。</p><p>突如其来的紧急任务打断了计划，终于周五了，但工作继续。灯火通明的科技园里，充斥着电话和键鼠的声音。地铁依然拥挤，人们低头发着消息，或老板，或家人，或老友，或恋人。</p><h3 id="收获"><a class="markdownIt-Anchor" href="#收获"></a> 收获</h3><blockquote><p>回忆大一学习电路原理的时候，其实没有理解通透，当真正成为工程人员后再重读书中所言，感悟深了许多。</p></blockquote><p><strong>工程思想</strong></p><p>对于物理化学生物等科学类课程，常常能用方程来描述与说明，有确定的解，将这个解用高效的方法求出。但实际工程中面临的时候海量的数据和指标，某些时候难以用特定方程来表达。好的工程人员能够快速从成本和质量上进行取舍。电路是从电磁学中抽象出来的，将不同的电磁特性抽象成电子元器件，这种将电路特性抽象出来并只观察其电流与电压特性的方法是工程思想中很重要的思想之一，运算放大器就是典型的例子，将复杂电路包在黑匣子（封装）中，只观察其输入输出的特性：虚短续断。即使黑匣子内部电路天差地别，但输出输入特性一致那么这二者等效。</p><ol><li>重视基本概念</li><li>重视基本分析方法的同时重视方法的由来</li><li>注重应用案例</li><li>适度练习</li></ol>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>Capacitors「电容」</title>
    <link href="https://blog.findingx.cc/2024/11/07/093251/"/>
    <id>https://blog.findingx.cc/2024/11/07/093251/</id>
    <published>2024-11-07T01:32:51.000Z</published>
    <updated>2025-07-11T01:38:06.137Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>电容反映的是存储电荷的能力，单位是法拉（F）。F已经是很大的单位了，常用的级别是微法尔（uF）和毫法尔（mF）。电容常常用到的特性是储能，滤波等。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月七日</span></div></div></div></div></p></div><h2 id="单位"><a class="markdownIt-Anchor" href="#单位"></a> 单位</h2><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>F</mi></mrow><annotation encoding="application/x-tex">F</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">F</span></span></span></span> -&gt; <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>μ</mi><mi>F</mi></mrow><annotation encoding="application/x-tex">\mu F</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault">μ</span><span class="mord mathdefault" style="margin-right:0.13889em;">F</span></span></span></span> -&gt; <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi><mi>F</mi></mrow><annotation encoding="application/x-tex">n F</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault">n</span><span class="mord mathdefault" style="margin-right:0.13889em;">F</span></span></span></span> -&gt; <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>p</mi><mi>F</mi></mrow><annotation encoding="application/x-tex">p F</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault">p</span><span class="mord mathdefault" style="margin-right:0.13889em;">F</span></span></span></span></p><h2 id="数据手册部分解读"><a class="markdownIt-Anchor" href="#数据手册部分解读"></a> 数据手册部分解读</h2><h3 id="命名规则"><a class="markdownIt-Anchor" href="#命名规则"></a> 命名规则</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/1.png" alt="命名规则" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="命名规则" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">命名规则</span></div></div><p>本质上和电阻差不多，看各家生产厂家的风格。</p><p>RATED VOLTAGE （额定电压）：这里体现的是常见的电压：6.3 V 、10 V 、16 V 、25 V 、50 V</p><h3 id="构造construction"><a class="markdownIt-Anchor" href="#构造construction"></a> 构造（construction）</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/2.png" alt="构造" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="构造" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">构造</span></div></div><h4 id="陶瓷电容两类对比与温度参数"><a class="markdownIt-Anchor" href="#陶瓷电容两类对比与温度参数"></a> 陶瓷电容两类对比与温度参数</h4><table><thead><tr><th style="text-align:left">对比项目</th><th style="text-align:left">一类陶瓷电容</th><th style="text-align:left">二类陶瓷电容</th></tr></thead><tbody><tr><td style="text-align:left">介质材料</td><td style="text-align:left">非铁电（顺电）配方，如以TiO2为主要成分或添加少量其他氧化物构成“扩展型”温度补偿陶瓷</td><td style="text-align:left">铁电陶瓷</td></tr><tr><td style="text-align:left">温度特性</td><td style="text-align:left">温度系数很小，容量随温度变化极小，如常见的C0G（NPO）在-55℃到+125℃温度范围内容量变化率极低</td><td style="text-align:left">温度系数非线性，不同型号有不同温度范围和容值变化率，如X7R在-55℃到+125℃内电容变化为±15%，Y5V在-30℃到+85℃内电容容量变化为+22%到-82%</td></tr><tr><td style="text-align:left">电压依赖性</td><td style="text-align:left">容量基本不依赖于所施加的电压</td><td style="text-align:left">容量高度依赖于所施加的电压</td></tr><tr><td style="text-align:left">老化特性</td><td style="text-align:left">不会经历严重的老化过程，性能较为稳定</td><td style="text-align:left">会经历老化过程，介电常数会随时间延长而缓慢降低</td></tr><tr><td style="text-align:left">电容精度</td><td style="text-align:left">精度较高，标称电容值的公差可低至1%</td><td style="text-align:left">标称值公差在20%左右</td></tr><tr><td style="text-align:left">电容值范围</td><td style="text-align:left">一般电容值较小</td><td style="text-align:left">可获得较大的电容值</td></tr><tr><td style="text-align:left">损耗</td><td style="text-align:left">介质损耗低</td><td style="text-align:left">介质损耗相对较大</td></tr><tr><td style="text-align:left">应用场景</td><td style="text-align:left">常用于对温度稳定性、精度要求高的电路，如精密仪器、高频通信设备、振荡器、谐振回路等</td><td style="text-align:left">适用于对电容精度要求不高、需要大容量电容的场合，如旁路、耦合、滤波等电路</td></tr><tr><td style="text-align:left">成本</td><td style="text-align:left">成本相对较高</td><td style="text-align:left">成本较低</td></tr></tbody></table><p>Ⅰ类陶瓷的温度特性怎么表示：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/3.png" alt="Ⅰ类陶瓷" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Ⅰ类陶瓷" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Ⅰ类陶瓷</span></div></div><p>Ⅱ类陶瓷的温度特性怎么表示：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/4.png" alt="Ⅱ类陶瓷" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Ⅱ类陶瓷" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Ⅱ类陶瓷</span></div></div><h3 id="多层片式电容器的阻抗esr与频率特性"><a class="markdownIt-Anchor" href="#多层片式电容器的阻抗esr与频率特性"></a> 多层片式电容器的阻抗ESR与频率特性</h3><blockquote><p>（Impedance ESR vs. frequency characteristics for multilayer chip capacitors）</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/5.png" alt="多层片式电容器的阻抗ESR与频率特性" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="多层片式电容器的阻抗ESR与频率特性" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">多层片式电容器的阻抗ESR与频率特性</span></div></div><p>上图最低点与虚线交汇处就是阻抗特性最低时电容等效阻抗值。该点左侧呈现容性<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><mi>Z</mi><mi mathvariant="normal">∣</mi><mo>=</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">\vert Z\vert = \frac{1}{\omega C}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">∣</span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mord">∣</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，而右侧呈现电感特性<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><mi>Z</mi><mi mathvariant="normal">∣</mi><mo>=</mo><mi>ω</mi><mi>L</mi></mrow><annotation encoding="application/x-tex">\vert Z\vert = \omega L</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">∣</span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mord">∣</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">L</span></span></span></span>。</p><p>下面给出一幅图更加直观</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/18.png" alt="实际电容器的|Z|/ESR频率特性(例)" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="实际电容器的|Z|/ESR频率特性(例)" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/18.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">实际电容器的|Z|/ESR频率特性(例)</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/20.png" alt="阻抗特性" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="阻抗特性" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/20.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">阻抗特性</span></div></div><blockquote><p>低频率范围：<br />低频率范围的|Z|与理想电容器相同，都与频率呈反比趋势减少。ESR值也显示出与电介质分极延迟产生的介质损耗相应的特性。</p><p>共振点附近：<br />频率升高，则|Z|将受寄生电感或电极的比电阻等产生的ESR影响，偏离理想电容器（红色虚线），显示最小值。|Z|为最小值时的频率称为自振频率，此时|Z|=ESR。若大于自振频率，则元件特性由电容器转变为电感，|Z|转而增加。低于自振频率的范围称作容性领域，反之则称作感性领域。<br />ESR除了受介电损耗的影响，还受电极自身抵抗行程的损耗影响。</p><p>高频范围：<br />共振点以上的高频率范围中的|Z|的特性由寄生电感(L)决定。高频范围的|Z|可由公式(2)近似得出，与频率成正比趋势增加。<br />ESR逐渐表现出电极趋肤效应及接近效应的影响。</p></blockquote><h2 id="工作原理讲解"><a class="markdownIt-Anchor" href="#工作原理讲解"></a> 工作原理讲解</h2><h3 id="等效电路"><a class="markdownIt-Anchor" href="#等效电路"></a> 等效电路</h3><p>事实上的电容并非电路原理所讲的理想电容，去了理想化后等效电路如下：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/6.png" alt="等效电路" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="等效电路" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">等效电路</span></div></div><p>该电路也是典型的RCL串联电路，在<a href="/2024/11/04/113536/">电路中用到的复数</a>中有提到典型的RCL电路的分析。如上图，ESR指的是等效电阻，若不考虑感抗和容抗的影响，电容本生呈现的电阻值是虚线表示。频率相对低的情况下，电容呈现容性，准确来说更接近理想电容。而频率相对高的情况下，电容呈现电感特性，ESR逐渐表现出电极趋肤效应及接近效应的影响，而这就是为什么高频时电极先受到损伤。</p><blockquote><p>回忆穿插：还记得高中学习的电容<code>隔直通交</code>吗，直流频率较低，交流频率高，上图用频率和阻抗关系直观展示了其特性。</p></blockquote><div class="tag-plugin colorful note" color="yellow"><div class="title">Tip：</div><div class="body"><p>电磁场理论解释：根据法拉第电磁感应定律，当交变电流通过导体时，会在导体内部产生交变磁场。这个交变磁场又会在导体内产生感应电动势，而感应电动势会在导体内部产生涡流。在靠近导体表面处，涡流的方向与原交变电流方向基本相同，使得电流密度增大；而在导体内部，涡流方向与原交变电流方向相反，会抵消一部分原电流，从而导致电流密度减小。随着深度增加，这种抵消作用越强，电流密度也就越小。</p></div></div><h2 id="阻抗容纳的计算方法"><a class="markdownIt-Anchor" href="#阻抗容纳的计算方法"></a> 阻抗(容纳)的计算方法</h2><p><a href="/2024/11/04/113536/">电路中用到的复数</a>中简单讲解了复数计算过程，但细致的原理没有讲到，这里简单介绍一下。</p><p>电纳（电抗）计算方法：</p><p>前提：对于任意交流信号，均能通过傅里叶级数展开成N个标准正弦函数的和，假设正弦电流有：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mtable width="100%"><mtr><mtd width="50%"></mtd><mtd><mrow><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>I</mi><mi>M</mi></msub><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow></mtd><mtd width="50%"></mtd><mtd><mtext>(1)</mtext></mtd></mtr></mtable><annotation encoding="application/x-tex">i(t) = I_M\sin(\omega t + \varphi)\tag{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.10903em;">M</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span></span><span class="tag"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord text"><span class="mord">(</span><span class="mord"><span class="mord">1</span></span><span class="mord">)</span></span></span></span></span></span></p><p>代入Euler</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>e</mi><mrow><mi>j</mi><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow></msup><mo>=</mo><mi>cos</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo><mo>+</mo><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">e^{j(\omega t + \varphi)} = \cos (\omega t + \varphi)+ \sin (\omega t + \varphi)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.938em;vertical-align:0em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.938em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight">t</span><span class="mbin mtight">+</span><span class="mord mathdefault mtight">φ</span><span class="mclose mtight">)</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop">cos</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span></span></span></span></span></p><p>此时正弦函数和复变函数有了一一对应关系</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>cos</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo><mo>=</mo><mi>R</mi><mi>e</mi><mo stretchy="false">[</mo><msup><mi>e</mi><mrow><mi>j</mi><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow></msup><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">\cos (\omega t + \varphi)=Re[e^{j(\omega t + \varphi)}]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop">cos</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.188em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault">e</span><span class="mopen">[</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.938em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight">t</span><span class="mbin mtight">+</span><span class="mord mathdefault mtight">φ</span><span class="mclose mtight">)</span></span></span></span></span></span></span></span></span><span class="mclose">]</span></span></span></span></span></p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo><mo>=</mo><mi>I</mi><mi>m</mi><mo stretchy="false">[</mo><msup><mi>e</mi><mrow><mi>j</mi><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow></msup><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">\sin (\omega t + \varphi)=Im[e^{j(\omega t + \varphi)}]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.188em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord mathdefault">m</span><span class="mopen">[</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.938em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight">t</span><span class="mbin mtight">+</span><span class="mord mathdefault mtight">φ</span><span class="mclose mtight">)</span></span></span></span></span></span></span></span></span><span class="mclose">]</span></span></span></span></span></p><p>因此(1)式可以写成</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>I</mi><mi>m</mi><mo stretchy="false">[</mo><msub><mi>I</mi><mi>M</mi></msub><msup><mi>e</mi><mrow><mi>j</mi><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow></msup><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">i(t)=Im[I_Me^{j(\omega t + \varphi)}]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.188em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord mathdefault">m</span><span class="mopen">[</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.10903em;">M</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.938em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight">t</span><span class="mbin mtight">+</span><span class="mord mathdefault mtight">φ</span><span class="mclose mtight">)</span></span></span></span></span></span></span></span></span><span class="mclose">]</span></span></span></span></span></p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>I</mi><mi>m</mi><mo stretchy="false">[</mo><msqrt><mn>2</mn></msqrt><mover accent="true"><mi>I</mi><mo>˙</mo></mover><msup><mi>e</mi><mrow><mi>j</mi><mi>ω</mi><mi>t</mi></mrow></msup><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">i(t)=Im[\sqrt{2} \dot Ie^{j\omega t}]</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.206095em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord mathdefault">m</span><span class="mopen">[</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.956095em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord">2</span></span></span><span style="top:-2.916095em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80H400000v40H845z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.08390500000000001em;"><span></span></span></span></span></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.874664em;"><span style="top:-3.1130000000000004em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mclose">]</span></span></span></span></span></p><p>其中</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mi>I</mi><msup><mi>e</mi><mrow><mi>j</mi><mi>φ</mi></mrow></msup><mo>=</mo><mi>I</mi><mi mathvariant="normal">∠</mi><mi>φ</mi></mrow><annotation encoding="application/x-tex">\dot I = I e^{j\varphi} = I \angle \varphi </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.874664em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.874664em;"><span style="top:-3.1130000000000004em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight">φ</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.8866799999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord">∠</span><span class="mord mathdefault">φ</span></span></span></span></span></p><blockquote><p>需要指出，相量是正弦量的变换式，而不是正弦量本身，它不等于正弦量。<strong>正弦量是时间域的概念，而相量是频域的概念。</strong></p></blockquote><p>此时，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">\omega t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.61508em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span></span></span></span>是关于t的函数，那么<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>e</mi><mrow><mi>j</mi><mi>ω</mi><mi>t</mi></mrow></msup></mrow><annotation encoding="application/x-tex">e^{j\omega t}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.824664em;vertical-align:0em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.824664em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span></span></span></span>就是以角速度<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi></mrow><annotation encoding="application/x-tex">\omega</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span></span></span></span>逆时针旋转的单位长度的有向线段，称为旋转因子。向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover></mrow><annotation encoding="application/x-tex">\dot I</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span></span></span></span> 乘<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msqrt><mn>2</mn></msqrt></mrow><annotation encoding="application/x-tex">\sqrt{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.04em;vertical-align:-0.13278em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.90722em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;"><span class="mord">2</span></span></span><span style="top:-2.86722em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80H400000v40H845z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.13278em;"><span></span></span></span></span></span></span></span></span>乘旋转因子得到的就是旋转向量。那么他是一个长度为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>M</mi></msub></mrow><annotation encoding="application/x-tex">I_M</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.10903em;">M</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>、以角速度<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi></mrow><annotation encoding="application/x-tex">\omega</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span></span></span></span>逆时针旋转的有向线段。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/21.png" alt="一一对应关系" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="一一对应关系" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/21.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">一一对应关系</span></div></div><p>假设在电容两端加入一个u</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>=</mo><msqrt><mn>2</mn></msqrt><mi>U</mi><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><msub><mi>φ</mi><mi>u</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">u = \sqrt 2 U \sin(\omega t + \varphi_u)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">u</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.206095em;vertical-align:-0.25em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.956095em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;">2</span></span><span style="top:-2.916095em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80H400000v40H845z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.08390500000000001em;"><span></span></span></span></span></span><span class="mord mathdefault" style="margin-right:0.10903em;">U</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">φ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">u</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span></span></p><p>那么i有</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo>=</mo><mi>C</mi><mfrac><mrow><mi>d</mi><mi>u</mi></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>=</mo><msqrt><mn>2</mn></msqrt><mi>I</mi><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">i = C \frac {du}{dt}=\sqrt 2 I \sin(\omega t + \varphi) </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.65952em;vertical-align:0em;"></span><span class="mord mathdefault">i</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.05744em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.37144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">u</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.206095em;vertical-align:-0.25em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.956095em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord" style="padding-left:0.833em;">2</span></span><span style="top:-2.916095em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80H400000v40H845z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.08390500000000001em;"><span></span></span></span></span></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span></span></span></span></span></p><p>上式中：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>I</mi><mo>=</mo><mi>ω</mi><mi>C</mi><mi>U</mi><mo separator="true">,</mo><msub><mi>φ</mi><mi>i</mi></msub><mo>=</mo><msub><mi>φ</mi><mi>u</mi></msub><mo>+</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">I = \omega CU,\varphi_i = \varphi_u + \frac{\pi}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault" style="margin-right:0.10903em;">U</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathdefault">φ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31166399999999994em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.7777700000000001em;vertical-align:-0.19444em;"></span><span class="mord"><span class="mord mathdefault">φ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">u</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.7935600000000003em;vertical-align:-0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.10756em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">π</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p><p>因此</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mi>j</mi><mi>ω</mi><mi>C</mi><mover accent="true"><mi>U</mi><mo>˙</mo></mover></mrow><annotation encoding="application/x-tex">\dot I = j \omega C \dot U</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.11463em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span></span></span></span></span></p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mo>=</mo><mi>j</mi><msub><mi>X</mi><mi>c</mi></msub><mover accent="true"><mi>I</mi><mo>˙</mo></mover></mrow><annotation encoding="application/x-tex">\dot U = j X_c \dot I</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.11463em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">c</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span></span></span></span></span></p><p>其中（这就是电容电纳，容纳）</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>X</mi><mi>C</mi></msub><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">X_C = -\frac{1}{\omega C}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.00744em;vertical-align:-0.686em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p><p>同理电感（电感电抗，感抗）</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>X</mi><mi>L</mi></msub><mo>=</mo><mrow><mi>ω</mi><mi>L</mi></mrow></mrow><annotation encoding="application/x-tex">X_L = {\omega L}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">L</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">L</span></span></span></span></span></span></p><p>均满足</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>Z</mi><mo>=</mo><mfrac><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mover accent="true"><mi>I</mi><mo>˙</mo></mover></mfrac><mo>=</mo><mo stretchy="false">∣</mo><mi>Z</mi><mo stretchy="false">∣</mo><mi mathvariant="normal">∠</mi><mi>φ</mi></mrow><annotation encoding="application/x-tex">Z = \frac{\dot U}{\dot I}=\lvert Z \rvert \angle \varphi</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.4073800000000003em;vertical-align:-0.8101900000000001em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.59719em;"><span style="top:-2.18981em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.8101900000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">∣</span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mclose">∣</span><span class="mord">∠</span><span class="mord mathdefault">φ</span></span></span></span></span></p><p>上述过程得出为什么阻抗是一个带有虚部单位j的复数。在电路解析中可以通过j看出两个波形相对超前滞后多少度。</p><p>整体来看，复阻抗实部的意义是等效电阻，虚部则表示电抗大小。电抗越大，对于交流电的阻碍也就越大</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>Z</mi><mo>=</mo><mi>R</mi><mo>+</mo><mi>j</mi><mi>X</mi></mrow><annotation encoding="application/x-tex">Z = R+ j X </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span><span class="mord mathdefault" style="margin-right:0.07847em;">X</span></span></span></span></span></p><h2 id="工程中的应用"><a class="markdownIt-Anchor" href="#工程中的应用"></a> 工程中的应用</h2><h3 id="电容器的分类"><a class="markdownIt-Anchor" href="#电容器的分类"></a> 电容器的分类</h3><blockquote><p>电容器有着各式各样的种类。如图1所示，电容器以生产材料可划分为陶瓷电容器、钽电解电容器、铝电解电容器等。特别是多层陶瓷电容器，体积虽小但容量大，经常被用于去藕、电源电压的平滑化、滤波等各种电路中。最近已成了提升手机、电视机性能所不可缺少的元件。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/19.png" alt="电容分类" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电容分类" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/19.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电容分类</span></div></div><h3 id="常见参数特性优劣"><a class="markdownIt-Anchor" href="#常见参数特性优劣"></a> 常见参数特性优劣</h3><div class="tag-plugin colorful note" color="yellow"><div class="body"><p>⚠️注意：本节全部参考或转载自村田，也可以去村田官网查看相关详细，这里只做摘要。所有引用区块是直接引用原文，其余未引用部分对原文有所删减。值得注意的是，原文编辑于十年前，资料数据过时，但基本原理不会有过大差异（即便有偏差，只是特性曲线有差异，但工程应用上变化不会太大）。</p></div></div><blockquote><p>如需详细了解电容可以参考这份规格书，这份是村田电容产品介绍，详细列举了各类电容，打开商城后点击下载数据手册即可<br /><a target="_blank" rel="noopener" href="https://item.szlcsc.com/408393.html?fromZone=s_s__%2522%25E7%2594%25B5%25E5%25AE%25B9%2520%25E6%259D%2591%25E7%2594%25B0%2522">GRM155R60J226ME11D-「立创商城」</a></p></blockquote><h4 id="在各个频率中"><a class="markdownIt-Anchor" href="#在各个频率中"></a> 在各个频率中</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/7.png" alt="频率特性【电容器指南-村田】" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="频率特性【电容器指南-村田】" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/7.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">频率特性【电容器指南-村田】</span></div></div><blockquote><p>从侧面观看典型的母板时的概略图。无源元件就这样被配置在CPU和DC-DC转换器等有源元件的周围。为了让电子设备正常工作，基本上需要满足目标阻抗。为此，要组合并配置各种类型的电容器。</p></blockquote><p>在接触产品电路设计后，听到layout提到的最多的就是阻抗匹配，阻抗匹配的是什么，就是让整个线路既不呈现感性，也不呈现容性，功耗控制到最低，信号质量达到最优。</p><h4 id="各类电容器特点"><a class="markdownIt-Anchor" href="#各类电容器特点"></a> 各类电容器特点</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/11.png" alt="电容器特点【电容器指南-村田】" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电容器特点【电容器指南-村田】" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/11.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电容器特点【电容器指南-村田】</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/12.png" alt="电容器的特性比较【电容器指南-村田】" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电容器的特性比较【电容器指南-村田】" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/12.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电容器的特性比较【电容器指南-村田】</span></div></div><blockquote><p>Tips：<br />通常情况下，这几个符号用于评价事物的适合程度：</p><table><thead><tr><th style="text-align:center">符号</th><th style="text-align:center">含义</th></tr></thead><tbody><tr><td style="text-align:center">◎(にじゅうまる)</td><td style="text-align:center">非常适合，强烈推荐</td></tr><tr><td style="text-align:center">○(まる)</td><td style="text-align:center">适合</td></tr><tr><td style="text-align:center">△(さんかく)</td><td style="text-align:center">带条件的适合，往往包含一些限制</td></tr><tr><td style="text-align:center">×(ばつ)</td><td style="text-align:center">不适合</td></tr></tbody></table><p>另外，如果是进行进度管理，这几个符号还可以表示以下意思：</p><table><thead><tr><th style="text-align:center">符号</th><th style="text-align:center">含义</th></tr></thead><tbody><tr><td style="text-align:center">◎(にじゅうまる)</td><td style="text-align:center">按计划进行中，非常“顺调”</td></tr><tr><td style="text-align:center">○(まる)</td><td style="text-align:center">按计划进行中，基本没有问题</td></tr><tr><td style="text-align:center">△(さんかく)</td><td style="text-align:center">推进中有课题，但理论上可以解决并在后期挽回进度</td></tr><tr><td style="text-align:center">×(ばつ)</td><td style="text-align:center">推进中有大课题，进度延迟已无可挽回。<br>需要向上エスカレーション，并且需要高层级的调整</td></tr></tbody></table><blockquote><p>参考自<a target="_blank" rel="noopener" href="https://www.zhihu.com/question/27313293">双线空心圆、单线空心圆和空心三角形被日本人用来表示“适宜程度”的时候，分别代表什么意思？</a></p></blockquote></blockquote><h4 id="关于esr"><a class="markdownIt-Anchor" href="#关于esr"></a> 关于ESR</h4><blockquote><p>一般而言，电容器的<strong>ESR</strong>和<strong>阻抗</strong>越<strong>低</strong>，在实际电路中的<strong>平滑</strong>特性和<strong>瞬态响应</strong>特性就越<strong>好</strong>。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/13.png" alt="ESR" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="ESR" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/13.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">ESR</span></div></div><blockquote><p>这里显示了因纹波电流而产生的电容器发热特性。温度上升越平缓和稳定，电容器的特性越好。发热的程度取决于ESR和电容器的体积，发热过度可能会影响可靠性和寿命。</p></blockquote><p>比较温度上升10°C时可以流过多少电流可以发现：<br />MLCC&gt;多层聚合物铝电解电容器（ECAS系列）&gt;其他聚合物电容器（ECAS系列）&gt;铝电解电容器（液体电解质型）&gt;钽电解电容器（二氧化锰型）。</p><blockquote><p>一般而言，MLCC的发热量非常少，因此很少有将发热量作为规格保证的情况，<strong>而包括聚合物电容器在内的电解电容器无法忽视发热量的影响</strong>，因此，一般会对每种类型的发热量进行规定。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/14.png" alt="根据纹波电流看电容器的发热特性" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="根据纹波电流看电容器的发热特性" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/14.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">根据纹波电流看电容器的发热特性</span></div></div><h4 id="关于温度特性"><a class="markdownIt-Anchor" href="#关于温度特性"></a> 关于温度特性</h4><blockquote><p>下图显示静电容量的温度特性。全固态聚合物电容器和二氧化锰型钽电解电容器的静电容量即使在温度变化时也不会发生太大变化，而一般的铝电解电容器使用的是液体电解质（电解液），因此在低温下难以产生静电容量。MLCC的温度特性也因使用的电介质类型而异，静电容量与温度有关。（实际使用电容器时，请将包括本身发热部分在内的电容器表面温度保持在最高使用温度105°C以下）。</p></blockquote><blockquote><p>Tips：静电容量表示电容器等能够蓄积多少电荷的量</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/15.png" alt="电容的温度特性" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电容的温度特性" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/15.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电容的温度特性</span></div></div><h4 id="关于dc偏压特性"><a class="markdownIt-Anchor" href="#关于dc偏压特性"></a> 关于DC偏压特性</h4><blockquote><p>下图显示了DC偏压特性的比较结果。包括聚合物电容器在内的电解电容器的介电常数不会因施加的电压而改变，因此静电容量即使在施加电压时也不会改变。电解电容器的优点是静电容量即使在施加额定电压时也不会改变。虽然会因所使用的电介质种类而存在差异，<strong>但MLCC确实容易因施加直流电压而引起结构失真</strong>，静电容量具有依赖于DC偏压的倾向，特别是在使用具有高介电常数的电介质时。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/16.png" alt="电容的DC偏压特性" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电容的DC偏压特性" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/16.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电容的DC偏压特性</span></div></div><h3 id="电路中的应用"><a class="markdownIt-Anchor" href="#电路中的应用"></a> 电路中的应用</h3><p>常见的有滤波，去偶，延时等</p><p>同样引用村田的指南：（<em>生产电容的厂家，当然对电容熟悉啦</em>）</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/17.png" alt="电容的应用" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="电容的应用" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/17.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">电容的应用</span></div></div><p>上图清晰展示了所有滤波相关的应用，如DCDC电压毛刺、不理想的控制信号（硬件消抖）、除去IC输入高频噪声等</p><h4 id="缝合电容"><a class="markdownIt-Anchor" href="#缝合电容"></a> 缝合电容</h4><p>这里涉及到高速信号的知识</p><blockquote><p>一个不良的信号返回路径是造成噪声耦合和EMI问题的重要原因。因此，在PCB走线的时候需要时刻考虑信号电流的返回路径。当然，电源线和低速信号只需做到尽量短即可（减小电阻）。高速的信号在布线时需保证信号线下方的铜皮不发生割裂的情况。</p></blockquote><p>对于换层而言，信号换层后参考层发生变化，这时可以简单的打孔，将不同的参考地连接在一起，以减少返回路径距离。</p><p>对于信号跨过其他的铜皮区块时，回路会绕过铜皮转一圈，这就会导致信号的返回路径变长，可通过改变信号使得信号绕道或者给两个不同的电源层铜皮之间连上缝合电容。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/8.png" alt="缝合电容" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="缝合电容" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/8.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">缝合电容</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/9.png" alt="信号绕道" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="信号绕道" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/9.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">信号绕道</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/10.png" alt="缝合电容" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="缝合电容" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/CAPACITORS「电容」/10.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">缝合电容</span></div></div><h4 id="延时"><a class="markdownIt-Anchor" href="#延时"></a> 延时</h4><p>延时对于单片机和嵌入式来说比较少接触，虽然延时很好理解。在如FPGA、CPU等复杂芯片中，时序是非常重要的一项，时序代表着芯片启动的过程，需要逐一打开相应模块的电源以及寄存器和运算器。CPU和FPGA等都是由二进制逻辑电路构成，可以想象，时序中每一步都需要按照特定的时间在特定的位置打开或者关闭相应的MOSFET，而外部电路延时就可以保证CPU或者fpga在做完完整操作后再继续执行下一步操作，这就是硬件延时。</p><h4 id="自举电容"><a class="markdownIt-Anchor" href="#自举电容"></a> 自举电容</h4><p>自举电容是利用了电容的特性——瞬态电压不可变。我在<a href="/2024/09/25/163349/#%E5%B7%A5%E4%BD%9C%E6%97%B6">DCDC电路学习笔记</a>步骤三有提及到他的原理。</p><h4 id="去耦合"><a class="markdownIt-Anchor" href="#去耦合"></a> 去耦合</h4><p>交变电流在传输的过程中会对其他线路产生耦合效应，去耦合就是将这些不必要的交流信号滤除，在线路上将电容接地，交流信号会随着电容流向地，则输出信号就为稳定的直流信号。</p><h4 id="高通低通滤波器"><a class="markdownIt-Anchor" href="#高通低通滤波器"></a> 高通低通滤波器</h4><p>这里给出一篇文章，原文有较为详细的说明。</p><p><a target="_blank" rel="noopener" href="https://blog.csdn.net/chenhuanqiangnihao/article/details/123652886">高通、低通、带通 三种滤波器的工作原理</a></p><h4 id="服务器存储"><a class="markdownIt-Anchor" href="#服务器存储"></a> 服务器存储</h4><p>看过服务器存储板卡的都知道，除了板上有FPGA和存储颗粒之外，还有大量的MLCC电容，这些电容是存放电能，让服务器异常断电时能够将数据存储以保证数据不会丢失和出错。如同DCDC，DCDC本质是高速变化的，电源产生的噪声相当大，这时也需要利用到电容的性质将纹波滤除，得到干净的电压信号。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>对于本次电容的深入学习，也发现了疏漏：并非直流电中就不考虑频率影响，事实上直流电也不是一成不变的，他内部任然有交流分量，此时电容电感不能忽略其中的内部等效阻抗特性。小小的电容有很多很多细节需要考虑，电容的应用很多，本文也只是讲了九牛一毛，如需细究还要涉及到电子材料学方面的知识，对于工程应用来说可以无需考虑，只需要知道电容这个黑匣子即可。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月九日</span></div></div></div></div></p></div><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/90054564">详细解解读贴片电容：NP0、C0G、X7R、X5R、Y5V、Z5U的区别「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://www.cn-cfe.com/news-detail-120.html">电容的阻抗跟频率有关系吗?电容ESR/ESL的关系分析</a></li><li><a target="_blank" rel="noopener" href="https://article.murata.com/zh-cn/article/impedance-esr-frequency-characteristics-in-capacitors">电容器阻抗/ESR频率特性是指什么？</a></li><li><a target="_blank" rel="noopener" href="https://article.murata.com/zh-cn/article/polymer-capacitor-basics-part-1">聚合物电容器的基础何为聚合物电容器？</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_40877615/article/details/95341437">PCB信号集中换层「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_37457748/article/details/90358143">PCB设计-规划良好的信号返回路径「CSDN」</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="元器件之旅" scheme="https://blog.findingx.cc/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/"/>
    
    <category term="电容" scheme="https://blog.findingx.cc/tags/%E7%94%B5%E5%AE%B9/"/>
    
  </entry>
  
  <entry>
    <title>Resistance「电阻」</title>
    <link href="https://blog.findingx.cc/2024/11/06/082811/"/>
    <id>https://blog.findingx.cc/2024/11/06/082811/</id>
    <published>2024-11-06T00:28:11.000Z</published>
    <updated>2025-07-11T01:38:06.140Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>电阻，在物理学中表示导体对电流阻碍作用的大小。一块PC主板上有大大小小的电阻，电阻类别很多，像PC主板上最常见的是碳膜贴片电阻，厂家国内有厚膜等。了解电阻先从电阻数据手册开始。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月六日</span></div></div></div></div></p></div><h2 id="数据手册部分解读"><a class="markdownIt-Anchor" href="#数据手册部分解读"></a> 数据手册部分解读</h2><h3 id="命名规则"><a class="markdownIt-Anchor" href="#命名规则"></a> 命名规则</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/1.png" alt="命名规则" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="命名规则" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">命名规则</span></div></div><p>上图直观描述了电阻厂商对电阻的命名规则，将常见的特性参数直观表示出来</p><ul><li>封装（Product Type）指的是贴片电阻大小，需要根据PCB大小、摆放空间考虑；</li><li>功率（Wattage），硬件设计需要考虑功率大小，这颗小小的电阻会将电能转化成热能，当他承受不住热量时，就会烧断。但功率并非一成不变，后面会有说明。<p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>P</mi><mo>=</mo><msup><mi>I</mi><mn>2</mn></msup><mi>R</mi></mrow><annotation encoding="application/x-tex">P = I^{2}R</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.13889em;">P</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.8641079999999999em;vertical-align:0em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641079999999999em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span></span></span></span></span></p></li><li>精度（Tolerance），器件制造时会有误差，这个就表示阻值范围</li><li>阻值（Resistance Value），阻值大小，计数方式有不同，但相应规格书会有标明。</li><li>包装方式（Packing Type），有卷装料（Tape  Reel）、散装（Bulk）、管装（Tube）、托盤包装（Tray）</li><li>单包总数（Packing quantity）</li></ul><h3 id="降额曲线"><a class="markdownIt-Anchor" href="#降额曲线"></a> 降额曲线</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/2.png" alt="降额曲线" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="降额曲线" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">降额曲线</span></div></div><p>在温度不断增高的过程中，需要限制功率以保证电阻不被烧坏。</p><h3 id="内部构造"><a class="markdownIt-Anchor" href="#内部构造"></a> 内部构造</h3><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/3.png" alt="内部构造" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="内部构造" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">内部构造</span></div></div><p>High purity Alumina substrate：高纯氧化铝基板</p><p>Protective coating：保护性涂层</p><p>Resistance element：电阻元件</p><p>4、5、6为接线段材料</p><h2 id="原理"><a class="markdownIt-Anchor" href="#原理"></a> 原理</h2><p>电阻是一个物理量，用于衡量导体对电流阻碍作用的大小。</p><details class="tag-plugin colorful folding" ><summary><span>形象一点</span></summary><div class="body"><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/4.png" alt="内部构造" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="内部构造" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">内部构造</span></div></div></div></details><h2 id="0欧姆电阻"><a class="markdownIt-Anchor" href="#0欧姆电阻"></a> 0欧姆电阻</h2><p>曾经拆过一个遥控器，见到过有一个电阻上标志着<code>000</code>，这种就是0欧姆电阻，一般做跳线使用，像遥控器这类单层板只能在一面制作线路，线路交叉时就会用上跳线。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/5.png" alt="0欧姆电阻" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="0欧姆电阻" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">0欧姆电阻</span></div></div><h2 id="常用类别"><a class="markdownIt-Anchor" href="#常用类别"></a> 常用类别</h2><p>就消费类电子而言，看到网上的一些拆解以及自己手上拆的一些pcb，常用有下面几种：</p><blockquote><ol><li>碳膜电阻<ul><li>适用于一些对功率要求不高的电路</li><li>温度系数相对较大</li><li>长期稳定性相对较差</li></ul><hr /><ul><li>作为限流、分压等基本功能的电阻元件。</li></ul></li></ol></blockquote><blockquote><ol start="2"><li>金属膜电阻<ul><li>适用于对电阻精度和稳定性要求较高的场景</li><li>精度较高，温度系数低，温度稳定性好，噪声也比较低</li><li>长期稳定性相对好</li></ul><hr /><ul><li>电源管理电路、信号处理电路等中使用，一些测量电量的电阻就是这种精密电阻</li></ul></li></ol></blockquote><blockquote><ol start="3"><li>金属氧化物膜电阻<ul><li>适用于低精度场景（比碳膜电阻低）</li><li>抗氧化性更强，耐压耐热</li><li>长期稳定性相对好</li></ul><hr /><ul><li>电源管理电路、信号处理电路等中使用，一些测量电量的电阻就是这种精密电阻</li></ul></li></ol></blockquote><blockquote><ol start="4"><li>厚膜电阻<ul><li>适用于低精度场景（ 5% 或 10% 左右）</li><li>成本相对较低，阻值范围宽</li><li>应用最广泛</li></ul><hr /><ul><li>哪哪都有</li></ul></li></ol></blockquote><h2 id="应用案例"><a class="markdownIt-Anchor" href="#应用案例"></a> 应用案例</h2><blockquote><p>这里讲解开漏（开集：三极管）电路</p></blockquote><p>这是I2C电路结构图</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/6.png" alt="I2C电路结构" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="I2C电路结构" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/Resistance「电阻」/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">I2C电路结构</span></div></div><p>对于N-MOS，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>G</mi><mi>S</mi></mrow></msub><mo>&gt;</mo><msub><mi>V</mi><mi>t</mi></msub></mrow><annotation encoding="application/x-tex">V_{GS} &gt; V_t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&gt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.2805559999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">t</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>则导通拉低。上面可以看到总线上所有的MOSFET导通时接地，MOSFET关断时，若无上拉电阻则为悬浮状态，而I2C是二进制数字信号，只有电压高于特定值时才能识别为数字<code>1</code>。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>又水了一篇文章，电阻部分确实比较简单，应用很广，不同行业对电阻的要求不一样，其要求主要体现在材料上，材料不同决定了寿命，适用环境等。再就是0欧姆电阻也比较常用。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="元器件之旅" scheme="https://blog.findingx.cc/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/"/>
    
    <category term="电阻" scheme="https://blog.findingx.cc/tags/%E7%94%B5%E9%98%BB/"/>
    
  </entry>
  
  <entry>
    <title>电路中用到的复数</title>
    <link href="https://blog.findingx.cc/2024/11/04/113536/"/>
    <id>https://blog.findingx.cc/2024/11/04/113536/</id>
    <published>2024-11-04T03:35:36.000Z</published>
    <updated>2025-07-11T01:38:06.152Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>复数？电路为什么会用到虚数的概念，中学学习过电路基本欧姆定律，但对于感性和容性电路中我们不能再简单的用欧姆定律来解决。电容电感储能的方式都是以积分的形式。至于复数，只是一个工具而已。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月四日</span></div></div></div></div></p></div><h2 id="电感电容的基本方程"><a class="markdownIt-Anchor" href="#电感电容的基本方程"></a> 电感电容的基本方程</h2><p>这是两个<u>微分方程</u></p><p>对于电容（其中C是电容值，u是电容两端电压）：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo>=</mo><mi>C</mi><mfrac><mrow><mi>d</mi><mi>u</mi></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">i = C\frac{du}{dt}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.65952em;vertical-align:0em;"></span><span class="mord mathdefault">i</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.05744em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.37144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">u</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p><p>对于电感（其中L是电感量，i是流经电感电流）：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>=</mo><mi>L</mi><mfrac><mrow><mi>d</mi><mi>i</mi></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">u = L\frac{di}{dt}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">u</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.05744em;vertical-align:-0.686em;"></span><span class="mord mathdefault">L</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.37144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p><h2 id="rc电路线性方程基本求解"><a class="markdownIt-Anchor" href="#rc电路线性方程基本求解"></a> RC电路线性方程基本求解</h2><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电路中用到的复数/1.png" alt="RC电路模型" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="RC电路模型" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电路中用到的复数/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">RC电路模型</span></div></div><p>对于图一而言，以下方程为一阶常系数线性非齐次微分方程（E(t)为电压源输出电压）</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mtable width="100%"><mtr><mtd width="50%"></mtd><mtd><mrow><mi>E</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>R</mi><mi>C</mi><mfrac><mrow><mi>d</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></mtd><mtd width="50%"></mtd><mtd><mtext>(1)</mtext></mtd></mtr></mtable><annotation encoding="application/x-tex">E(t)=RC\frac{du_{C}(t)}{dt}+u_{C}(t) \tag{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.05764em;">E</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.113em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span><span class="tag"><span class="strut" style="height:2.113em;vertical-align:-0.686em;"></span><span class="mord text"><span class="mord">(</span><span class="mord"><span class="mord">1</span></span><span class="mord">)</span></span></span></span></span></span></p><blockquote><p>基尔霍夫定律得（KVL）：电源电压=电阻分压+电容分压</p></blockquote><p>其中电阻电压为：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>u</mi><mi>R</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>R</mi><mo>∗</mo><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>R</mi><mo>∗</mo><mi>C</mi><mfrac><mrow><mi>d</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">u_{R}(t)=R*i(t) = R * C\frac{du_{C}(t)}{dt}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.113em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p><h3 id="求解"><a class="markdownIt-Anchor" href="#求解"></a> 求解</h3><p>非齐次通解=其次通解+特解。</p><h4 id="通解"><a class="markdownIt-Anchor" href="#通解"></a> 通解</h4><p>对于方程（1），通解为：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi><mi>C</mi><mfrac><mrow><mi>d</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">RC\frac{du_{C}(t)}{dt}+u_{C}(t)=0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.113em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span></span></p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mfrac><mrow><mi>d</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mrow><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></mfrac><mo>=</mo><mo>−</mo><mfrac><mn>1</mn><mrow><mi>R</mi><mi>C</mi></mrow></mfrac><mi>d</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">\frac{du_{C}(t)}{u_{C}(t)}=-\frac{1}{RC}dt</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.363em;vertical-align:-0.936em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.936em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.00744em;vertical-align:-0.686em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span></span></span></p><p>两边积分可得</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ln</mi><mo>⁡</mo><mi mathvariant="normal">∣</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mi mathvariant="normal">∣</mi><mo>+</mo><msub><mi>C</mi><mn>1</mn></msub><mo>=</mo><mo>−</mo><mfrac><mi>t</mi><mrow><mi>R</mi><mi>C</mi></mrow></mfrac><mo>+</mo><msub><mi>C</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">\ln|u_{C}(t)| + C_1=-\frac{t}{RC}+C_2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop">ln</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">∣</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mord">∣</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.9780799999999998em;vertical-align:-0.686em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.29208em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">t</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07153em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span></p><p>合并常数k，可得：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ln</mi><mo>⁡</mo><mi mathvariant="normal">∣</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mi mathvariant="normal">∣</mi><mo>=</mo><mo>−</mo><mfrac><mi>t</mi><mrow><mi>R</mi><mi>C</mi></mrow></mfrac><mo>+</mo><mi>K</mi></mrow><annotation encoding="application/x-tex">\ln|u_{C}(t)|=-\frac{t}{RC}+K</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop">ln</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord">∣</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mord">∣</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.9780799999999998em;vertical-align:-0.686em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.29208em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">t</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">K</span></span></span></span></span></p><p>通解为：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mtable width="100%"><mtr><mtd width="50%"></mtd><mtd><mrow><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>A</mi><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mi>t</mi><mrow><mi>R</mi><mi>C</mi></mrow></mfrac></mrow></msup><mo stretchy="false">(</mo><mi>A</mi><mo>=</mo><msup><mi>e</mi><mi>K</mi></msup><mo stretchy="false">)</mo></mrow></mtd><mtd width="50%"></mtd><mtd><mtext>(2)</mtext></mtd></mtr></mtable><annotation encoding="application/x-tex">u_{C}(t)=Ae^{-\frac{t}{RC}}(A = e^{K})\tag{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.2393399999999999em;vertical-align:-0.25em;"></span><span class="mord mathdefault">A</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.98934em;"><span style="top:-3.4130000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8233428571428572em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.384em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">A</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.1413309999999999em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8913309999999999em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">K</span></span></span></span></span></span></span></span></span><span class="mclose">)</span></span><span class="tag"><span class="strut" style="height:1.2393399999999999em;vertical-align:-0.25em;"></span><span class="mord text"><span class="mord">(</span><span class="mord"><span class="mord">2</span></span><span class="mord">)</span></span></span></span></span></span></p><h4 id="特解"><a class="markdownIt-Anchor" href="#特解"></a> 特解</h4><p>电路稳定时，电源电压等于电容两端电压，即：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>u</mi><mi>C</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">u_{C}^{*}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><h4 id="非齐次方程通解"><a class="markdownIt-Anchor" href="#非齐次方程通解"></a> 非齐次方程通解</h4><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>A</mi><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mi>t</mi><mrow><mi>R</mi><mi>C</mi></mrow></mfrac></mrow></msup><mo>+</mo><msubsup><mi>u</mi><mi>C</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">u_{C}(t)=Ae^{-\frac{t}{RC}} + u_{C}^{*}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.07267em;vertical-align:-0.08333em;"></span><span class="mord mathdefault">A</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.98934em;"><span style="top:-3.4130000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8233428571428572em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.384em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><h4 id="求a"><a class="markdownIt-Anchor" href="#求a"></a> 求A</h4><p>令<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">t = 0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.61508em;vertical-align:0em;"></span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>，可得：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>A</mi><mo>=</mo><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo>−</mo><msubsup><mi>u</mi><mi>C</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">A = u_{C}(0)-u_{C}^{*}(0)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault">A</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span></span></span></span></span></p><p>3式为RC电路求解最终结果。</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mtable width="100%"><mtr><mtd width="50%"></mtd><mtd><mrow><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo>−</mo><msubsup><mi>u</mi><mi>C</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo stretchy="false">)</mo><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mi>t</mi><mrow><mi>R</mi><mi>C</mi></mrow></mfrac></mrow></msup><mo>+</mo><msubsup><mi>u</mi><mi>C</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></mtd><mtd width="50%"></mtd><mtd><mtext>(3)</mtext></mtd></mtr></mtable><annotation encoding="application/x-tex">u_{C}(t)=(u_{C}(0)-u_{C}^{*}(0))e^{-\frac{t}{RC}} + u_{C}^{*}(t)\tag{3}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.2393399999999999em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span><span class="mclose">)</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.98934em;"><span style="top:-3.4130000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8233428571428572em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.384em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span><span class="tag"><span class="strut" style="height:1.2393399999999999em;vertical-align:-0.25em;"></span><span class="mord text"><span class="mord">(</span><span class="mord"><span class="mord">3</span></span><span class="mord">)</span></span></span></span></span></span></p><p>电感同理可得。</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mtable width="100%"><mtr><mtd width="50%"></mtd><mtd><mrow><msub><mi>i</mi><mi>L</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo fence="true">(</mo><msub><mi>i</mi><mi>L</mi></msub><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo>−</mo><msubsup><mi>i</mi><mi>L</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo><mo fence="true">)</mo></mrow><msup><mi>e</mi><mrow><mo>−</mo><mfrac><mrow><mi>R</mi><mi>t</mi></mrow><mi>L</mi></mfrac></mrow></msup><mo>+</mo><msubsup><mi>i</mi><mi>L</mi><mo>∗</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></mtd><mtd width="50%"></mtd><mtd><mtext>(4)</mtext></mtd></mtr></mtable><annotation encoding="application/x-tex">i_{L}(t)=\left(i_{L}(0)-i_{L}^{*}(0)\right)e^{-\frac{Rt}{L}} + i_{L}^{*}(t)\tag{4}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">i</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">L</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.2734649999999998em;vertical-align:-0.25em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;">(</span><span class="mord"><span class="mord mathdefault">i</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">L</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mord mathdefault">i</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">L</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span><span class="mclose delimcenter" style="top:0em;">)</span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:1.0234649999999998em;"><span style="top:-3.4130000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8720928571428572em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">L</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.384em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">i</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7386959999999999em;"><span style="top:-2.4530000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">L</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.247em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span><span class="tag"><span class="strut" style="height:1.2734649999999998em;vertical-align:-0.25em;"></span><span class="mord text"><span class="mord">(</span><span class="mord"><span class="mord">4</span></span><span class="mord">)</span></span></span></span></span></span></p><blockquote><p>上述步骤十分繁琐，一阶方程计算量如此，如果是二阶方程，计算量会大大增加。</p></blockquote><h3 id="rcl二阶求解"><a class="markdownIt-Anchor" href="#rcl二阶求解"></a> RCL二阶求解</h3><details class="tag-plugin colorful folding" ><summary><span>RCL二阶求解</span></summary><div class="body"><h4 id="rcl-电路的二阶线性微分方程"><a class="markdownIt-Anchor" href="#rcl-电路的二阶线性微分方程"></a> RCL 电路的二阶线性微分方程</h4><p>对于 RCL 串联电路，设电源电压为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">e(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">e</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>，电阻R、电容C、电感L，电容电压为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">u_{C}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>，回路电流为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">i(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>。<br />根据基尔霍夫电压定律：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>R</mi><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>+</mo><mi>L</mi><mfrac><mrow><mi>d</mi><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">e(t)=Ri(t)+L\frac{di(t)}{dt}+u_{C}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">e</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.113em;vertical-align:-0.686em;"></span><span class="mord mathdefault">L</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.427em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><p>由于<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mi>C</mi><mfrac><mrow><mi>d</mi><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">i(t)=C\frac{du_{C}(t)}{dt}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">i</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mord mathdefault mtight">t</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mord mtight"><span class="mord mathdefault mtight">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3448em;"><span style="top:-2.3567071428571427em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.14329285714285717em;"><span></span></span></span></span></span></span><span class="mopen mtight">(</span><span class="mord mathdefault mtight">t</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，令<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo>=</mo><msub><mi>u</mi><mi>C</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y = u_{C}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>，可得二阶线性微分方程：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi><mi>C</mi><mfrac><mrow><msup><mi>d</mi><mn>2</mn></msup><mi>y</mi></mrow><mrow><mi>d</mi><msup><mi>t</mi><mn>2</mn></msup></mrow></mfrac><mo>+</mo><mi>R</mi><mi>C</mi><mfrac><mrow><mi>d</mi><mi>y</mi></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><mi>y</mi><mo>=</mo><mi>e</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">LC\frac{d^{2}y}{dt^{2}}+RC\frac{dy}{dt}+y = e(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.177108em;vertical-align:-0.686em;"></span><span class="mord mathdefault">L</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.491108em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault">d</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.0574399999999997em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3714399999999998em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">e</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><h4 id="求解齐次方程"><a class="markdownIt-Anchor" href="#求解齐次方程"></a> 求解齐次方程</h4><ul><li><strong>特征方程</strong>：<br />对应的齐次方程为<p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi><mi>C</mi><mfrac><mrow><msup><mi>d</mi><mn>2</mn></msup><mi>y</mi></mrow><mrow><mi>d</mi><msup><mi>t</mi><mn>2</mn></msup></mrow></mfrac><mo>+</mo><mi>R</mi><mi>C</mi><mfrac><mrow><mi>d</mi><mi>y</mi></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><mi>y</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">LC\frac{d^{2}y}{dt^{2}}+RC\frac{dy}{dt}+y = 0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.177108em;vertical-align:-0.686em;"></span><span class="mord mathdefault">L</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.491108em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord"><span class="mord mathdefault">t</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault">d</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.0574399999999997em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3714399999999998em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault">t</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault">d</span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span></span></p>设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo>=</mo><msup><mi>e</mi><mrow><mi>s</mi><mi>t</mi></mrow></msup></mrow><annotation encoding="application/x-tex">y = e^{st}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.7935559999999999em;vertical-align:0em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7935559999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span></span></span></span>，代入可得特征方程：<p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi><mi>C</mi><msup><mi>s</mi><mn>2</mn></msup><mo>+</mo><mi>R</mi><mi>C</mi><mi>s</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">LCs^{2}+RCs + 1=0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9474379999999999em;vertical-align:-0.08333em;"></span><span class="mord mathdefault">L</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mord mathdefault">s</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641079999999999em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault">s</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span></span></p></li><li><strong>特征根与齐次通解的三种情况</strong>：<br />特征方程的根<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mrow><mn>1</mn><mo separator="true">,</mo><mn>2</mn></mrow></msub><mo>=</mo><mfrac><mrow><mo>−</mo><mi>R</mi><mi>C</mi><mo>±</mo><msqrt><mrow><mo stretchy="false">(</mo><mi>R</mi><mi>C</mi><msup><mo stretchy="false">)</mo><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>L</mi><mi>C</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>L</mi><mi>C</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">s_{1,2}=\frac{-RC\pm\sqrt{(RC)^{2}-4LC}}{2LC}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.301108em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span><span class="mpunct mtight">,</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.6746em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3296000000000001em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="mord mathdefault mtight">L</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.6037625em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span><span class="mbin mtight">±</span><span class="mord sqrt mtight"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.0369107142857144em;"><span class="svg-align" style="top:-3.428571428571429em;"><span class="pstrut" style="height:3.428571428571429em;"></span><span class="mord mtight" style="padding-left:1.19em;"><span class="mopen mtight">(</span><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span><span class="mclose mtight"><span class="mclose mtight">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7463142857142857em;"><span style="top:-2.786em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mbin mtight">−</span><span class="mord mtight">4</span><span class="mord mathdefault mtight">L</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.0089107142857143em;"><span class="pstrut" style="height:3.428571428571429em;"></span><span class="hide-tail mtight" style="min-width:0.853em;height:1.5428571428571431em;"><svg width='400em' height='1.5428571428571431em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80H400000v40H845z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.4196607142857143em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><ul><li><strong>过阻尼情况<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">(</mo><mi>R</mi><mi>C</mi><msup><mo stretchy="false">)</mo><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>L</mi><mi>C</mi><mo>&gt;</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">(RC)^{2}-4LC&gt;0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.064108em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.72243em;vertical-align:-0.0391em;"></span><span class="mord">4</span><span class="mord mathdefault">L</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&gt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>：</strong><br />齐次方程的通解为<p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>h</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>A</mi><mn>1</mn></msub><msup><mi>e</mi><mrow><msub><mi>s</mi><mn>1</mn></msub><mi>t</mi></mrow></msup><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><msup><mi>e</mi><mrow><msub><mi>s</mi><mn>2</mn></msub><mi>t</mi></mrow></msup></mrow><annotation encoding="application/x-tex">y_{h}(t)=A_{1}e^{s_{1}t}+A_{2}e^{s_{2}t}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">h</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.993556em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31731428571428577em;"><span style="top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.143em;"><span></span></span></span></span></span></span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.993556em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31731428571428577em;"><span style="top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.143em;"><span></span></span></span></span></span></span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span></span></span></span></span></p>其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">A_{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">A_{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>为任意常数，由初始条件确定。</li><li><strong>临界阻尼情况<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">(</mo><mi>R</mi><mi>C</mi><msup><mo stretchy="false">)</mo><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>L</mi><mi>C</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">(RC)^{2}-4LC = 0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.064108em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord">4</span><span class="mord mathdefault">L</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>：</strong><br />齐次方程的通解为<br /><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>h</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><msub><mi>A</mi><mn>1</mn></msub><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><mi>t</mi><mo stretchy="false">)</mo><msup><mi>e</mi><mrow><msub><mi>s</mi><mn>1</mn></msub><mi>t</mi></mrow></msup></mrow><annotation encoding="application/x-tex">y_{h}(t)=(A_{1}+A_{2}t)e^{s_{1}t}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">h</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.043556em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7935559999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31731428571428577em;"><span style="top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.143em;"><span></span></span></span></span></span></span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span></span></span></span><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mn>1</mn></msub><mo>=</mo><mo>−</mo><mfrac><mi>R</mi><mrow><mn>2</mn><mi>L</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">s_{1}=-\frac{R}{2L}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.217331em;vertical-align:-0.345em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.872331em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="mord mathdefault mtight">L</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">A_{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">A_{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>为任意常数，由初始条件确定。</li><li><strong>欠阻尼情况<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo stretchy="false">(</mo><mi>R</mi><mi>C</mi><msup><mo stretchy="false">)</mo><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>L</mi><mi>C</mi><mo>&lt;</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">(RC)^{2}-4LC&lt;0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.064108em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.72243em;vertical-align:-0.0391em;"></span><span class="mord">4</span><span class="mord mathdefault">L</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>：</strong><br />令<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>ω</mi><mn>0</mn></msub><mo>=</mo><mfrac><mn>1</mn><msqrt><mrow><mi>L</mi><mi>C</mi></mrow></msqrt></mfrac></mrow><annotation encoding="application/x-tex">\omega_{0}=\frac{1}{\sqrt{LC}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.383108em;vertical-align:-0.538em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.537397em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord sqrt mtight"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9322900000000001em;"><span class="svg-align" style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mtight" style="padding-left:0.833em;"><span class="mord mathdefault mtight">L</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span><span style="top:-2.89229em;"><span class="pstrut" style="height:3em;"></span><span class="hide-tail mtight" style="min-width:0.853em;height:1.08em;"><svg width='400em' height='1.08em' viewBox='0 0 400000 1080' preserveAspectRatio='xMinYMin slice'><path d='M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z M834 80H400000v40H845z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.10770999999999997em;"><span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.538em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>α</mi><mo>=</mo><mfrac><mi>R</mi><mrow><mn>2</mn><mi>L</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">\alpha=\frac{R}{2L}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.0037em;">α</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.217331em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.872331em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span><span class="mord mathdefault mtight">L</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>，   <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi><mo>=</mo><msqrt><mrow><msubsup><mi>ω</mi><mn>0</mn><mn>2</mn></msubsup><mo>−</mo><msup><mi>α</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">\omega=\sqrt{\omega_{0}^{2}-\alpha^{2}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.24em;vertical-align:-0.2902em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9498em;"><span class="svg-align" style="top:-3.2em;"><span class="pstrut" style="height:3.2em;"></span><span class="mord" style="padding-left:1em;"><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7959080000000001em;"><span style="top:-2.433692em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span><span style="top:-3.0448000000000004em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.26630799999999993em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.0037em;">α</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-2.9098em;"><span class="pstrut" style="height:3.2em;"></span><span class="hide-tail" style="min-width:1.02em;height:1.28em;"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120c340,-704.7,510.7,-1060.3,512,-1067c4.7,-7.3,11,-11,19,-11H40000v40H1012.3s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z M1001 80H40000v40H1012z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2902em;"><span></span></span></span></span></span></span></span></span><br />齐次方程的通解为</li></ul><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>h</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>e</mi><mrow><mo>−</mo><mi>α</mi><mi>t</mi></mrow></msup><mo stretchy="false">(</mo><msub><mi>A</mi><mn>1</mn></msub><mi>cos</mi><mo>⁡</mo><mi>ω</mi><mi>t</mi><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><mi>sin</mi><mo>⁡</mo><mi>ω</mi><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y_{h}(t)=e^{-\alpha t}(A_{1}\cos\omega t + A_{2}\sin\omega t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">h</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.093556em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mathdefault mtight" style="margin-right:0.0037em;">α</span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">A_{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">A_{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>为任意常数，由初始条件确定。</li></ul><h4 id="求解非齐次方程的特解y_pt"><a class="markdownIt-Anchor" href="#求解非齐次方程的特解y_pt"></a> 求解非齐次方程的特解<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y_{p}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></h4><p>根据电源电压<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">e(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">e</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>的形式求解特解。</p><ul><li>若<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>E</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">e(t)=E_{0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">e</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05764em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>（直流电源），则特解<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>E</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">y_{p}(t)=E_{0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05764em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>。</li><li>若<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>e</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>E</mi><mi>m</mi></msub><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><msub><mi>ω</mi><mi>e</mi></msub><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">e(t)=E_{m}\sin(\omega_{e}t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">e</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05764em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.05764em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">m</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">e</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>，设特解<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>B</mi><mn>1</mn></msub><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><msub><mi>ω</mi><mi>e</mi></msub><mi>t</mi><mo stretchy="false">)</mo><mo>+</mo><msub><mi>B</mi><mn>2</mn></msub><mi>cos</mi><mo>⁡</mo><mo stretchy="false">(</mo><msub><mi>ω</mi><mi>e</mi></msub><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y_{p}(t)=B_{1}\sin(\omega_{e}t)+B_{2}\cos(\omega_{e}t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05017em;">B</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05017em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">e</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05017em;">B</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05017em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">cos</span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">e</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>，代入原方程通过比较系数求出<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>B</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">B_{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05017em;">B</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05017em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>B</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">B_{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.05017em;">B</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.05017em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>的值。</li></ul><h4 id="求非齐次方程的通解"><a class="markdownIt-Anchor" href="#求非齐次方程的通解"></a> 求非齐次方程的通解</h4><p>非齐次方程的通解<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>y</mi><mi>h</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>+</mo><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y(t)=y_{h}(t)+y_{p}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.33610799999999996em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">h</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>。</p><ul><li>过阻尼情况下：</li></ul><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>A</mi><mn>1</mn></msub><msup><mi>e</mi><mrow><msub><mi>s</mi><mn>1</mn></msub><mi>t</mi></mrow></msup><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><msup><mi>e</mi><mrow><msub><mi>s</mi><mn>2</mn></msub><mi>t</mi></mrow></msup><mo>+</mo><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y(t)=A_{1}e^{s_{1}t}+A_{2}e^{s_{2}t}+y_{p}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.993556em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31731428571428577em;"><span style="top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.143em;"><span></span></span></span></span></span></span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.993556em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31731428571428577em;"><span style="top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.143em;"><span></span></span></span></span></span></span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><ul><li>临界阻尼情况下：</li></ul><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><msub><mi>A</mi><mn>1</mn></msub><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><mi>t</mi><mo stretchy="false">)</mo><msup><mi>e</mi><mrow><msub><mi>s</mi><mn>1</mn></msub><mi>t</mi></mrow></msup><mo>+</mo><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y(t)=(A_{1}+A_{2}t)e^{s_{1}t}+y_{p}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.093556em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight"><span class="mord mathdefault mtight">s</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31731428571428577em;"><span style="top:-2.357em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.143em;"><span></span></span></span></span></span></span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><ul><li>欠阻尼情况下：</li></ul><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>e</mi><mrow><mo>−</mo><mi>α</mi><mi>t</mi></mrow></msup><mo stretchy="false">(</mo><msub><mi>A</mi><mn>1</mn></msub><mi>cos</mi><mo>⁡</mo><mi>ω</mi><mi>t</mi><mo>+</mo><msub><mi>A</mi><mn>2</mn></msub><mi>sin</mi><mo>⁡</mo><mi>ω</mi><mi>t</mi><mo stretchy="false">)</mo><mo>+</mo><msub><mi>y</mi><mi>p</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y(t)=e^{-\alpha t}(A_{1}\cos\omega t + A_{2}\sin\omega t)+y_{p}(t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.093556em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.843556em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mathdefault mtight" style="margin-right:0.0037em;">α</span><span class="mord mathdefault mtight">t</span></span></span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.15139200000000003em;"><span style="top:-2.5500000000000003em;margin-left:-0.03588em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">p</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.286108em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span></span></p><p>其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">A_{1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">A_{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">A</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>由初始条件（如初始电容电压<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>y</mi><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y(0)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span></span></span></span>和初始电容电压变化率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>y</mi><mo mathvariant="normal">′</mo></msup><mo stretchy="false">(</mo><mn>0</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">y^{\prime}(0)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.001892em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.751892em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">′</span></span></span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord">0</span><span class="mclose">)</span></span></span></span>）确定。</p></div></details><h3 id="复数引入"><a class="markdownIt-Anchor" href="#复数引入"></a> 复数引入</h3><h4 id="电路方程与复阻抗"><a class="markdownIt-Anchor" href="#电路方程与复阻抗"></a> 电路方程与复阻抗</h4><p>上述 RC 串联电路中，设输入源交流电源电压<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>=</mo><msub><mi>U</mi><mi>m</mi></msub><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">u = U_m\sin(\omega t)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">u</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.10903em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">m</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mclose">)</span></span></span></span>，电流<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo>=</mo><msub><mi>I</mi><mi>m</mi></msub><mi>sin</mi><mo>⁡</mo><mo stretchy="false">(</mo><mi>ω</mi><mi>t</mi><mo>+</mo><mi>φ</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">i = I_m\sin(\omega t+\varphi)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.65952em;vertical-align:0em;"></span><span class="mord mathdefault">i</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.151392em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">m</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mopen">(</span><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault">t</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mclose">)</span></span></span></span>。</p><ul><li><p>对于电阻：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>u</mi><mi>R</mi></msub><mo>=</mo><mi>R</mi><mi>i</mi></mrow><annotation encoding="application/x-tex">u_R = Ri</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault">i</span></span></span></span></span></p><p>在向量表示中，电阻两端电压向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>R</mi></msub></mrow><annotation encoding="application/x-tex">\dot{U}_R</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.07019em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>与电流向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover></mrow><annotation encoding="application/x-tex">\dot{I}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span></span></span></span>同相。</p></li><li><p>对于电容：</p><p>容抗：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>X</mi><mi>C</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">X_C=\frac{1}{\omega C}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><br />电流：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo>=</mo><mi>C</mi><mfrac><mrow><mi>d</mi><msub><mi>u</mi><mi>C</mi></msub></mrow><mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">i = C\frac{du_C}{dt}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.65952em;vertical-align:0em;"></span><span class="mord mathdefault">i</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.2414129999999999em;vertical-align:-0.345em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8964129999999999em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mord mathdefault mtight">t</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.410305em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">d</span><span class="mord mtight"><span class="mord mathdefault mtight">u</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3448em;"><span style="top:-2.3567071428571427em;margin-left:0em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.14329285714285717em;"><span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><br />向量表示中，电容两端电压向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>C</mi></msub></mrow><annotation encoding="application/x-tex">\dot{U}_C</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.07019em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>滞后电流向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover></mrow><annotation encoding="application/x-tex">\dot{I}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span></span></span></span> 90°。</p></li></ul><p>根据基尔霍夫电压定律</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mo>=</mo><msub><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>R</mi></msub><mo>+</mo><msub><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>C</mi></msub></mrow><annotation encoding="application/x-tex">\dot{U}=\dot{U}_R+\dot{U}_C</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.07019em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1.07019em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span></p><p>上式从复阻抗的角度来看，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>Z</mi><mo>=</mo><mi>R</mi><mo>−</mo><mi>j</mi><msub><mi>X</mi><mi>C</mi></msub></mrow><annotation encoding="application/x-tex">Z = R - jX_C</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.07847em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>，电流向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mfrac><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>Z</mi></mfrac></mrow><annotation encoding="application/x-tex">\dot{I}=\frac{\dot{U}}{Z}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.383133em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.038133em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">Z</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord accent mtight"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-2.7em;"><span class="pstrut" style="height:2.7em;"></span><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.10903em;">U</span></span></span><span style="top:-2.9523300000000003em;"><span class="pstrut" style="height:2.7em;"></span><span class="accent-body" style="left:-0.11111000000000001em;"><span class="mtight">˙</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><details class="tag-plugin colorful folding" ><summary><span>复数变换</span></summary><div class="body"><p>这篇文章非常详细解析了由欧拉公式推导出的复数与极坐标的转换<br /><a target="_blank" rel="noopener" href="https://blog.csdn.net/Zevalin/article/details/135730772">电路分析 第七章（相量法基础）「CSDN」</a></p><p>极坐标转直角 a，b</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi><mo>=</mo><mi>r</mi><mi>cos</mi><mo>⁡</mo><mi>θ</mi></mrow><annotation encoding="application/x-tex">a = r\cos\theta</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault">a</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.02778em;">r</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span></span></span></span></span></p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>b</mi><mo>=</mo><mi>r</mi><mi>sin</mi><mo>⁡</mo><mi>θ</mi></mrow><annotation encoding="application/x-tex">b = r\sin\theta</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathdefault">b</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.69444em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.02778em;">r</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">sin</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span></span></span></span></span></p><p>直角转极坐标r，θ</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi><mo>=</mo><msqrt><mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow></msqrt></mrow><annotation encoding="application/x-tex">r = \sqrt{a^{2}+b^{2}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.43056em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.02778em;">r</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.2399999999999998em;vertical-align:-0.177736em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.0622639999999999em;"><span class="svg-align" style="top:-3.2em;"><span class="pstrut" style="height:3.2em;"></span><span class="mord" style="padding-left:1em;"><span class="mord"><span class="mord mathdefault">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mord"><span class="mord mathdefault">b</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.0222640000000003em;"><span class="pstrut" style="height:3.2em;"></span><span class="hide-tail" style="min-width:1.02em;height:1.28em;"><svg width='400em' height='1.28em' viewBox='0 0 400000 1296' preserveAspectRatio='xMinYMin slice'><path d='M263,681c0.7,0,18,39.7,52,119c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120c340,-704.7,510.7,-1060.3,512,-1067c4.7,-7.3,11,-11,19,-11H40000v40H1012.3s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z M1001 80H40000v40H1012z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.177736em;"><span></span></span></span></span></span></span></span></span></span></p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo fence="true">{</mo><mtable rowspacing="0.3599999999999999em" columnalign="left left" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>θ</mi><mo>=</mo><mi>arctan</mi><mo>⁡</mo><mo stretchy="false">(</mo><mfrac><mi>b</mi><mi>a</mi></mfrac><mo stretchy="false">)</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>&gt;</mo><mn>0</mn><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>θ</mi><mo>=</mo><mi>π</mi><mo>+</mo><mi>arctan</mi><mo>⁡</mo><mo stretchy="false">(</mo><mfrac><mi>b</mi><mi>a</mi></mfrac><mo stretchy="false">)</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>&lt;</mo><mn>0</mn><mo separator="true">,</mo><mi>b</mi><mo>≥</mo><mn>0</mn><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>θ</mi><mo>=</mo><mo>−</mo><mi>π</mi><mo>+</mo><mi>arctan</mi><mo>⁡</mo><mo stretchy="false">(</mo><mfrac><mi>b</mi><mi>a</mi></mfrac><mo stretchy="false">)</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>&lt;</mo><mn>0</mn><mo separator="true">,</mo><mi>b</mi><mo>&lt;</mo><mn>0</mn><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>θ</mi><mo>=</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>=</mo><mn>0</mn><mo separator="true">,</mo><mi>b</mi><mo>&gt;</mo><mn>0</mn><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>θ</mi><mo>=</mo><mo>−</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>=</mo><mn>0</mn><mo separator="true">,</mo><mi>b</mi><mo>&lt;</mo><mn>0</mn><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr></mtable></mrow><annotation encoding="application/x-tex">\begin{cases}\theta=\arctan(\frac{b}{a}) &amp; (a&gt;0)\\\theta=\pi+\arctan(\frac{b}{a}) &amp; (a&lt;0, b\geq0)\\\theta=-\pi+\arctan(\frac{b}{a}) &amp; (a&lt;0, b&lt;0)\\\theta=\frac{\pi}{2} &amp; (a = 0, b&gt;0)\\\theta=-\frac{\pi}{2} &amp; (a = 0, b&lt;0)\end{cases}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:7.2000399999999996em;vertical-align:-3.3500199999999998em;"></span><span class="minner"><span class="mopen"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:3.8500199999999998em;"><span style="top:-0.6999900000000001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎩</span></span></span><span style="top:-0.6999900000000001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-0.9999899999999999em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-1.29999em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-1.59999em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-1.89999em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-2.19999em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-3.1500100000000004em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎨</span></span></span><span style="top:-4.30001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-4.60001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-4.90001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-5.200010000000001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-5.50001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-5.80001em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top:-6.100019999999999em;"><span class="pstrut" style="height:3.15em;"></span><span class="delimsizinginner delim-size4"><span>⎧</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:3.3500199999999998em;"><span></span></span></span></span></span></span><span class="mord"><span class="mtable"><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:3.8500000000000005em;"><span style="top:-5.850000000000001em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mop">arctan</span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8801079999999999em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">a</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">b</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span></span></span><span style="top:-4.410000000000001em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord mathdefault" style="margin-right:0.03588em;">π</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mop">arctan</span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8801079999999999em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">a</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">b</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span></span></span><span style="top:-2.9700000000000006em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">−</span><span class="mord mathdefault" style="margin-right:0.03588em;">π</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mop">arctan</span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8801079999999999em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">a</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">b</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span></span></span><span style="top:-1.5300000000000002em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.695392em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">π</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span><span style="top:-0.08999999999999997em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.02778em;">θ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.695392em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">π</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:3.35em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:1em;"></span><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:3.8500000000000005em;"><span style="top:-5.850000000000001em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathdefault">a</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&gt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mclose">)</span></span></span><span style="top:-4.410000000000001em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathdefault">a</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault">b</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">≥</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mclose">)</span></span></span><span style="top:-2.9700000000000006em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathdefault">a</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault">b</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mclose">)</span></span></span><span style="top:-1.5300000000000002em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathdefault">a</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault">b</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&gt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mclose">)</span></span></span><span style="top:-0.08999999999999997em;"><span class="pstrut" style="height:3.008em;"></span><span class="mord"><span class="mopen">(</span><span class="mord mathdefault">a</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault">b</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mord">0</span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:3.35em;"><span></span></span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span></p></div></details><h4 id="计算电流向量和电压向量"><a class="markdownIt-Anchor" href="#计算电流向量和电压向量"></a> 计算电流向量和电压向量</h4><ul><li><p><strong>计算电流向量</strong>：<br />设电源电压向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mo>=</mo><mi>U</mi><mi mathvariant="normal">∠</mi><msup><mn>0</mn><mo>∘</mo></msup></mrow><annotation encoding="application/x-tex">\dot{U}=U\angle0^{\circ}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.69224em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.10903em;">U</span><span class="mord">∠</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.674115em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∘</span></span></span></span></span></span></span></span></span></span></span></span>（设初相为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>0</mn></mrow><annotation encoding="application/x-tex">0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>），则电流向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mfrac><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>Z</mi></mfrac><mo>=</mo><mfrac><mrow><mi>U</mi><mi mathvariant="normal">∠</mi><msup><mn>0</mn><mo>∘</mo></msup></mrow><mrow><mi>R</mi><mo>−</mo><mi>j</mi><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac></mrow></mfrac></mrow><annotation encoding="application/x-tex">\dot{I}=\frac{\dot{U}}{Z}=\frac{U\angle0^{\circ}}{R - j\frac{1}{\omega C}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.383133em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.038133em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">Z</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord accent mtight"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-2.7em;"><span class="pstrut" style="height:2.7em;"></span><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.10903em;">U</span></span></span><span style="top:-2.9523300000000003em;"><span class="pstrut" style="height:2.7em;"></span><span class="accent-body" style="left:-0.11111000000000001em;"><span class="mtight">˙</span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1.559745em;vertical-align:-0.64182em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.9179250000000001em;"><span style="top:-2.59898em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mbin mtight">−</span><span class="mord mathdefault mtight" style="margin-right:0.05724em;">j</span><span class="mord mtight"><span class="mopen nulldelimiter sizing reset-size3 size6"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8443142857142858em;"><span style="top:-2.656em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.2255000000000003em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line mtight" style="border-bottom-width:0.049em;"></span></span><span style="top:-3.384em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.344em;"><span></span></span></span></span></span><span class="mclose nulldelimiter sizing reset-size3 size6"></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.10903em;">U</span><span class="mord mtight">∠</span><span class="mord mtight"><span class="mord mtight">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7484642857142858em;"><span style="top:-2.931em;margin-right:0.07142857142857144em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mtight"><span class="mord mtight">∘</span></span></span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.64182em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>Z</mi><mo>=</mo><mi>R</mi><mo>−</mo><mi>j</mi><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac><mo>=</mo><msqrt><mrow><msup><mi>R</mi><mn>2</mn></msup><mo>+</mo><mo stretchy="false">(</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow></msqrt><mi mathvariant="normal">∠</mi><mo>−</mo><mi>φ</mi><mspace width="1em"/><mo stretchy="false">(</mo><mtext>其中</mtext><mi>tan</mi><mo>⁡</mo><mi>φ</mi><mo>=</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>R</mi><mi>C</mi></mrow></mfrac><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">Z = R - j\frac{1}{\omega C}=\sqrt{R^{2}+(\frac{1}{\omega C})^{2}}\angle - \varphi \quad (\text{其中}\tan\varphi=\frac{1}{\omega RC})</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07153em;">Z</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.00744em;vertical-align:-0.686em;"></span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.44em;vertical-align:-0.788405em;"></span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.651595em;"><span class="svg-align" style="top:-4.4em;"><span class="pstrut" style="height:4.4em;"></span><span class="mord" style="padding-left:1em;"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.6115950000000003em;"><span class="pstrut" style="height:4.4em;"></span><span class="hide-tail" style="min-width:1.02em;height:2.48em;"><svg width='400em' height='2.48em' viewBox='0 0 400000 2592' preserveAspectRatio='xMinYMin slice'><path d='M424,2478c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081c4,-6.7,10,-10,18,-10H400000v40H1014.6s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185c-2,6,-10,9,-24,9c-8,0,-12,-0.7,-12,-2z M1001 80H400000v40H1014z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.788405em;"><span></span></span></span></span></span><span class="mord">∠</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathdefault">φ</span><span class="mspace" style="margin-right:1em;"></span><span class="mopen">(</span><span class="mord text"><span class="mord cjk_fallback">其中</span></span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mop">tan</span><span class="mspace" style="margin-right:0.16666666666666666em;"></span><span class="mord mathdefault">φ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.00744em;vertical-align:-0.686em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span></span></span></span></span></p><p>所以</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mfrac><mi>U</mi><msqrt><mrow><msup><mi>R</mi><mn>2</mn></msup><mo>+</mo><mo stretchy="false">(</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow></msqrt></mfrac><mi mathvariant="normal">∠</mi><mi>φ</mi></mrow><annotation encoding="application/x-tex">\dot{I}=\frac{U}{\sqrt{R^{2}+(\frac{1}{\omega C})^{2}}}\angle\varphi</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:3.09033em;vertical-align:-1.73em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.36033em;"><span style="top:-2.11em;"><span class="pstrut" style="height:3.235054em;"></span><span class="mord"><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.235054em;"><span class="svg-align" style="top:-3.8em;"><span class="pstrut" style="height:3.8em;"></span><span class="mord" style="padding-left:1em;"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.195054em;"><span class="pstrut" style="height:3.8em;"></span><span class="hide-tail" style="min-width:1.02em;height:1.8800000000000001em;"><svg width='400em' height='1.8800000000000001em' viewBox='0 0 400000 1944' preserveAspectRatio='xMinYMin slice'><path d='M1001,80H400000v40H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5c53.7,-170.3,84.5,-266.8,92.5,-289.5c4,-6.7,10,-10,18,-10zM1001 80H400000v40H1013z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.604946em;"><span></span></span></span></span></span></span></span><span style="top:-3.465054em;"><span class="pstrut" style="height:3.235054em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.912054em;"><span class="pstrut" style="height:3.235054em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.73em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord">∠</span><span class="mord mathdefault">φ</span></span></span></span></span></p><p>其中</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>φ</mi><mo>=</mo><mi>arctan</mi><mo>⁡</mo><mo stretchy="false">(</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>R</mi><mi>C</mi></mrow></mfrac><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">\varphi=\arctan(\frac{1}{\omega RC})</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="mord mathdefault">φ</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.00744em;vertical-align:-0.686em;"></span><span class="mop">arctan</span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span></span></span></span></span></p></li><li><p><strong>计算电阻电压向量和电容电压向量</strong>：<br />对于电阻：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>R</mi></msub><mo>=</mo><mi>R</mi><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mi>R</mi><mo>×</mo><mfrac><mi>U</mi><msqrt><mrow><msup><mi>R</mi><mn>2</mn></msup><mo>+</mo><mo stretchy="false">(</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow></msqrt></mfrac><mi mathvariant="normal">∠</mi><mi>φ</mi></mrow><annotation encoding="application/x-tex">\dot{U}_R = R\dot{I}=R\times\frac{U}{\sqrt{R^{2}+(\frac{1}{\omega C})^{2}}}\angle\varphi</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.07019em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.9201900000000001em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:3.09033em;vertical-align:-1.73em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.36033em;"><span style="top:-2.11em;"><span class="pstrut" style="height:3.235054em;"></span><span class="mord"><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.235054em;"><span class="svg-align" style="top:-3.8em;"><span class="pstrut" style="height:3.8em;"></span><span class="mord" style="padding-left:1em;"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.195054em;"><span class="pstrut" style="height:3.8em;"></span><span class="hide-tail" style="min-width:1.02em;height:1.8800000000000001em;"><svg width='400em' height='1.8800000000000001em' viewBox='0 0 400000 1944' preserveAspectRatio='xMinYMin slice'><path d='M1001,80H400000v40H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5c53.7,-170.3,84.5,-266.8,92.5,-289.5c4,-6.7,10,-10,18,-10zM1001 80H400000v40H1013z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.604946em;"><span></span></span></span></span></span></span></span><span style="top:-3.465054em;"><span class="pstrut" style="height:3.235054em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.912054em;"><span class="pstrut" style="height:3.235054em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.73em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord">∠</span><span class="mord mathdefault">φ</span></span></span></span></span></p><p>对于电容：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mi>U</mi><mo>˙</mo></mover><mi>C</mi></msub><mo>=</mo><mo>−</mo><mi>j</mi><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac><mover accent="true"><mi>I</mi><mo>˙</mo></mover><mo>=</mo><mfrac><mi>U</mi><mrow><mi>ω</mi><mi>C</mi><msqrt><mrow><msup><mi>R</mi><mn>2</mn></msup><mo>+</mo><mo stretchy="false">(</mo><mfrac><mn>1</mn><mrow><mi>ω</mi><mi>C</mi></mrow></mfrac><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow></msqrt></mrow></mfrac><mi mathvariant="normal">∠</mi><mo stretchy="false">(</mo><mi>φ</mi><mo>−</mo><mn>9</mn><msup><mn>0</mn><mo>∘</mo></msup><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">\dot{U}_C=-j\frac{1}{\omega C}\dot{I}=\frac{U}{\omega C\sqrt{R^{2}+(\frac{1}{\omega C})^{2}}}\angle(\varphi - 90^{\circ})</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.07019em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.11111000000000001em;">˙</span></span></span></span></span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.00744em;vertical-align:-0.686em;"></span><span class="mord">−</span><span class="mord mathdefault" style="margin-right:0.05724em;">j</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.32144em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.9201900000000001em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.07847em;">I</span></span></span><span style="top:-3.25233em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.027780000000000013em;">˙</span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:3.09033em;vertical-align:-1.73em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.36033em;"><span style="top:-2.11em;"><span class="pstrut" style="height:3.235054em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord sqrt"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.235054em;"><span class="svg-align" style="top:-3.8em;"><span class="pstrut" style="height:3.8em;"></span><span class="mord" style="padding-left:1em;"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mopen">(</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.845108em;"><span style="top:-2.6550000000000002em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.03588em;">ω</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">1</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.740108em;"><span style="top:-2.9890000000000003em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span><span style="top:-3.195054em;"><span class="pstrut" style="height:3.8em;"></span><span class="hide-tail" style="min-width:1.02em;height:1.8800000000000001em;"><svg width='400em' height='1.8800000000000001em' viewBox='0 0 400000 1944' preserveAspectRatio='xMinYMin slice'><path d='M1001,80H400000v40H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5c53.7,-170.3,84.5,-266.8,92.5,-289.5c4,-6.7,10,-10,18,-10zM1001 80H400000v40H1013z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.604946em;"><span></span></span></span></span></span></span></span><span style="top:-3.465054em;"><span class="pstrut" style="height:3.235054em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.912054em;"><span class="pstrut" style="height:3.235054em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.73em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord">∠</span><span class="mopen">(</span><span class="mord mathdefault">φ</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">9</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.724115em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∘</span></span></span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span></span></p></li></ul><h3 id="对于两种方法"><a class="markdownIt-Anchor" href="#对于两种方法"></a> 对于两种方法</h3><p>传统的线性微分方程接法相对较为复杂，但是LCR电路绝对能解出来，对于不同的电压源都适用，但复数引入的向量法只适用于可以等效为正弦交流电源才能使用。</p><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>向量法得出的结论在很多地方都能用到，比如阻抗匹配，高低通滤波器等。毕业后我几乎没有计算过具体数值，本文写的过程中查阅了很多资料，部分知识已经还给老师了。本篇是对向量法的复习，也是对自己数学知识的巩固吧。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/Zevalin/article/details/135730772">电路分析 第七章（相量法基础）「CSDN」</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="电容" scheme="https://blog.findingx.cc/tags/%E7%94%B5%E5%AE%B9/"/>
    
    <category term="电感" scheme="https://blog.findingx.cc/tags/%E7%94%B5%E6%84%9F/"/>
    
    <category term="复数" scheme="https://blog.findingx.cc/tags/%E5%A4%8D%E6%95%B0/"/>
    
  </entry>
  
  <entry>
    <title>独立博客自省问卷15题</title>
    <link href="https://blog.findingx.cc/2024/11/03/215207/"/>
    <id>https://blog.findingx.cc/2024/11/03/215207/</id>
    <published>2024-11-03T13:52:07.000Z</published>
    <updated>2025-07-11T01:38:06.151Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>最近刷<code>开往</code>，看到好些博客都在做<a target="_blank" rel="noopener" href="https://yayu.net/4626.html">独立博客自省问卷15题</a>，于是也填一填。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十一月三日</span></div></div></div></div></p></div><blockquote><h2 id="1-你的博客更新频率是多少"><a class="markdownIt-Anchor" href="#1-你的博客更新频率是多少"></a> 1、你的博客更新频率是多少？</h2><p>A.<u>每周更新</u><br />B.一周数篇<br />C.一月1-2篇<br />D.几个月一篇</p><hr /><p>最近一年开始持续更新的吧，以前的博客也有更新，但是都比较零散。多半是受到了朋友们的影响。</p></blockquote><blockquote><h2 id="2-你的博客上次更新是什么时候"><a class="markdownIt-Anchor" href="#2-你的博客上次更新是什么时候"></a> 2、你的博客上次更新是什么时候？</h2><p>A.<u>本周</u><br />B.上周<br />C.上个月<br />D.上季度</p><hr /><p>2 天以前。</p></blockquote><blockquote><h2 id="3-你的博客文章是原创的吗"><a class="markdownIt-Anchor" href="#3-你的博客文章是原创的吗"></a> 3、你的博客文章是原创的吗？</h2><p>A.<u>坚持原创</u><br />B.部分借鉴<br /><a target="_blank" rel="noopener" href="http://C.AI">C.AI</a> 帮我写的<br />D.搬运别人的，而且不署名</p><hr /><p>文章几乎是原创，除非一些文档和规格书，这些原文已经很详细了，也不需要二次创作，署名原文出处就行。</p></blockquote><blockquote><h2 id="4-你觉得自己的文章对他人有帮助吗"><a class="markdownIt-Anchor" href="#4-你觉得自己的文章对他人有帮助吗"></a> 4、你觉得自己的文章对他人有帮助吗？</h2><p>A.<u>旨在对他人有启示</u><br />B.多少有点意义<br />C.每日每周流水账<br />D.自我陶醉就好，管他呢</p><hr /><p>说到帮助。我也是在自己专业领域上折腾的时候，经常看很多博客，博友们的文章帮助到了我，于是我也就有了写博客的想法，能帮助到他人，同时自己也有所收获。</p></blockquote><blockquote><h2 id="5-你上次换博客主题程序是什么时候"><a class="markdownIt-Anchor" href="#5-你上次换博客主题程序是什么时候"></a> 5、你上次换博客主题/程序是什么时候？</h2><p>A.上周<br />B.上个月<br />C.<u>去年</u><br />D.凭良心说，我多年都是一个主题</p><hr /><p>还记得 20 年初识 hexo 的时候，为了折腾主题，废寝忘食，后来 23 年变了，用了 Stellar ，决定长久用下去，下面配置中还保留了当年折腾过的主题，哈哈哈哈哈哈。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/独立博客自省问卷15题/1.png" alt="折腾主题" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">折腾主题</span></div></div></blockquote><blockquote><h2 id="6-你上一次捣腾博客主题代码是什么时候"><a class="markdownIt-Anchor" href="#6-你上一次捣腾博客主题代码是什么时候"></a> 6、你上一次捣腾博客主题代码是什么时候？</h2><p>A.昨天，撸代码到凌晨<br />B.<u>每周必捣腾</u><br />C.每月有那么一次<br />D.一年有那么一次</p><hr /><p>最近确实每周都有倒腾，我的小站还没有建立清晰的导航以及样式，有些地方还在调整，以后会越来越少了吧，会更偏向写内容。</p></blockquote><blockquote><h2 id="7-你会对博客主题进行二次开发"><a class="markdownIt-Anchor" href="#7-你会对博客主题进行二次开发"></a> 7、你会对博客主题进行二次开发？</h2><p>A.直接配置使用，省心不折腾<br />B.<u>时不时自己改改，搞点新花样，换图片，换字体，爽</u><br />C.删除主题作者版权信息，改改样式，然后自我感觉良好<br />D.改得面目全非，但保留原作者版权信息或注明</p><hr /><p>二次开发不太可能，毕竟时间有限，但是换图还是会的，我个人比较喜欢自己做文章头图，每一篇文章都是自己 P 出来的。有的时候没时间或者偷懒就放一张符合大意的图上去，后面看着不是很舒服就会修修补补，上星期不又做了个四季嘛～</p></blockquote><blockquote><h2 id="8-你多久打开自己博客自我陶醉一次"><a class="markdownIt-Anchor" href="#8-你多久打开自己博客自我陶醉一次"></a> 8、你多久打开自己博客自我陶醉一次？</h2><p>A.每天数次<br />B.每周一次<br />C.<u>看心情</u><br />D.一般都是照镜子，不看博客</p><hr /><p>一般比较少，在刚折腾完会时常点开，时间长了一般很少。</p></blockquote><blockquote><h2 id="9-你近期对自己博客域名什么感受"><a class="markdownIt-Anchor" href="#9-你近期对自己博客域名什么感受"></a> 9、你近期对自己博客域名什么感受？</h2><p>A.想搞到一个 .COM 的域名<br />B.如果域名能再短几个字符就更好了<br />C.今年才换双拼域名了，明年再看看<br />D.<u>目前挺好，没想法</u></p></blockquote><blockquote><h2 id="10-你每天都会看网站的流量统计吗"><a class="markdownIt-Anchor" href="#10-你每天都会看网站的流量统计吗"></a> 10、你每天都会看网站的流量统计吗？</h2><p>A.每天看几次，今天又多了100PV<br />B.每周回顾，看看流量趋势<br />C.<u>记得就看看</u><br />D.没有搞流量统计，都是浮云</p><hr /><p>一般比较少，但说不在意也是违心的。</p></blockquote><blockquote><h2 id="11-你通过博客的广告赚到钱了吗"><a class="markdownIt-Anchor" href="#11-你通过博客的广告赚到钱了吗"></a> 11、你通过博客的广告赚到钱了吗？</h2><p>A.有，能覆盖建站费用<br />B.有，但付出大于收入<br />C.没考虑通过博客流量赚钱<br />D.<u>拒绝广告，保证阅读体验</u></p><hr /><p>拒绝广告，保证阅读体验！</p></blockquote><blockquote><h2 id="12-你去浏览别人的博客网站主要为什么"><a class="markdownIt-Anchor" href="#12-你去浏览别人的博客网站主要为什么"></a> 12、你去浏览别人的博客/网站主要为什么？</h2><p>A.<u>学习别人分享的知识</u><br />B.搬运别人的内容<br />C.看看别人怎么装修博客，自己也抄一下，感觉都比自己的好<br />D.不爱看别人博客，自己爱写啥写啥</p><hr /><p>主要是学习知识，大家都是不同领域的大佬，值得相互学习。其次是装修，有时候会发现一些博客有自己喜欢的插件或者样式，就会给自己小站装装修。</p></blockquote><blockquote><h2 id="13-看到别人分享了一篇文章你打开第一反应是什么"><a class="markdownIt-Anchor" href="#13-看到别人分享了一篇文章你打开第一反应是什么"></a> 13、看到别人分享了一篇文章，你打开第一反应是什么？</h2><p>A.哇，这域名真不错，怎么我没想到<br />B.哇，这网站速度真快，图片延迟加载丝滑<br />C.哇，这程序/主题不错，我也要抄一抄/留言问问哪里搞的<br />D.<u>看看文章内容</u></p><hr /><p>答案同上(问题 12)</p></blockquote><blockquote><h2 id="14-你觉得博客哪方面更重要"><a class="markdownIt-Anchor" href="#14-你觉得博客哪方面更重要"></a> 14、你觉得博客哪方面更重要？</h2><p>A.域名<br />B.服务器<br />C.主题<br />D.<u>内容</u></p><hr /><p>内容。但如果换作 20 年的我回答，那会选择 C</p></blockquote><blockquote><h2 id="15-近期通过写博客有哪些新收获"><a class="markdownIt-Anchor" href="#15-近期通过写博客有哪些新收获"></a> 15、近期通过写博客有哪些新收获？</h2><p>A.知识面有拓展<br />B.<u>认识了新朋友</u><br />C.写作水平提升<br />D.通过知识变现</p><hr /><p>这题如果多选就好了，答案 ABC，最重要的就是认识了新的朋友</p></blockquote><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>本文凑个热闹，不过也是对自己的警醒和反思，曾经确实有折腾主题特别疯狂，宿舍上课，甚至体育课还背电脑去（是不是有点离大谱）。准确来说博客要写什么，准备做成什么样，今年（二〇二四）才有了方向，非常感谢博友圈里的朋友，让迷途的我有了方向。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="杂谈" scheme="https://blog.findingx.cc/categories/%E6%9D%82%E8%B0%88/"/>
    
    
    <category term="自省" scheme="https://blog.findingx.cc/tags/%E8%87%AA%E7%9C%81/"/>
    
  </entry>
  
  <entry>
    <title>WeekNote 2024-44</title>
    <link href="https://blog.findingx.cc/2024/11/01/110624/"/>
    <id>https://blog.findingx.cc/2024/11/01/110624/</id>
    <published>2024-11-01T03:06:24.000Z</published>
    <updated>2025-07-11T01:38:06.155Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>岁月当歌，人生几何。一生的时间对于浩瀚宇宙来说只是沧海一粟，珍惜当下，每一群伙伴，每一个眼神，每一个瞬间，每一道风景。一周一记，记录岁月流逝的痕迹。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十月三十一日『第四十四周』</span></div></div></div></div></p></div><div id="first_down"><p><p>在众多包括但不限于我友链页面朋友的影响下，于 2024-10-28 决定开始记录周记，后续周记以年份 + 本年第 N 周为标题，可在专栏 topic 页面查看。</p><h2 id="折腾小站"><a class="markdownIt-Anchor" href="#折腾小站"></a> 折腾小站</h2><p>给小站重新调整了下导航、更新了<a href="/about">about</a>，添加了些许页面。还为小站添加了一年四季！折腾最久的就是雪花飘落本地记录，存储在<code>localStorage</code>，这样刷新后就不会重置啦。（在页面左下角小太阳右边的就是啦，一年四季的图标都不一样），还练习了下好久没碰的调色。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_6.jpg" alt="一年四季" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">一年四季</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_6.png" alt="调色" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">调色</span></div></div><h2 id="盆架子树"><a class="markdownIt-Anchor" href="#盆架子树"></a> 盆架子树</h2><p>终于，它的花期过了。盆架树（Alstonia rostrata C. E. C. Fisch.）是夹竹桃科鸡骨常山属常绿乔木。花香极具穿透力，戴上口罩也于事无补。实在是受不了它的花香，每晚回家走过的每一条街道，都能闻到。每天回家路上头晕晕的<span class="tag-plugin emoji"><img no-lazy="" class="inline" src="https://gcore.jsdelivr.net/gh/norevi/waline-blobcatemojis@1.0/blobs/blobcatdead.png"/></span>，我想大多数人都是这样吧。</p><div class="tag-plugin image"><div class="image-bg" style="padding:16px;"><img src="https://p9.itc.cn/images01/20210826/f8d77260d73a4633933c2f2b08c35b56.png" alt="盆架子树" data-fancybox="true" style="width:400px;"/></div><div class="image-meta"><span class="image-caption center">盆架子树</span></div></div><h2 id="-swig6-"><a class="markdownIt-Anchor" href="#-swig6-"></a> <mark class="tag-plugin colorful mark" color="error">Error</mark></h2><p>快被这个 RK3288 的板子搞崩溃了啊啊。今年上半年从咸鱼淘来的小垃圾，性能平替树莓派3B-2G版本的小开发版。make install回车，然后 <mark class="tag-plugin colorful mark" color="error">Error</mark> <mark class="tag-plugin colorful mark" color="error">Error</mark>  还是 <mark class="tag-plugin colorful mark" color="error">Error</mark>  (╥﹏╥)，上一次这么痛苦的时候还是在上一次（其实忘了，属于是好了伤疤忘了疼），十几年前的芯片资料真的太少了，网上成品虽然能用，但 docker 无法部署，提示运行OCI失败，找不到设备<code>/dev/mqueue</code>，无法挂载，搜索好像说内核配置有问题。</p><div class="tag-plugin image"><div class="image-bg" style="padding:16px;"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_2.png" data-fancybox="true" style="width:400px;"/></div></div><h2 id="插座哭了"><a class="markdownIt-Anchor" href="#插座哭了"></a> 插座哭了</h2><p>插座哭了，声音很大，突如其来，火光四溅，当时的我就背对着它。物业来看时说，可能是锡丝短接了插座，实在恐怖，试想如果没人看到，会不会引起火灾。</p><div class="tag-plugin image"><div class="image-bg" style="padding:16px;"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_1.png" data-fancybox="true" style="width:400px;"/></div></div><h2 id="-swig12-"><a class="markdownIt-Anchor" href="#-swig12-"></a> <span class="tag-plugin emoji"><img no-lazy="" class="inline" src="https://gcore.jsdelivr.net/gh/norevi/waline-blobcatemojis@1.0/blobs/blobcatgooglytrash.png"/></span></h2><p>最近癫癫的，可能是看博弈论和经济学书籍的缘故吧，看到商店打特价就在想：嗯，这是一种价格歧视，社会福利上升，大家都付出了自己认为值得的成本；出地铁站时排队过刷卡机，又在想：长队伍通道不一定不好，人短队伍通道也许反而等你走到，开始排队的时候有，队伍可能比之前人多的队伍更多，随机选择可能得到个体利益最大化，整体最终达到一种纳什均衡…完了完了，大脑开始不听使唤了</p><h2 id="老旧坏机拯救计划"><a class="markdownIt-Anchor" href="#老旧坏机拯救计划"></a> 老旧坏机拯救计划</h2><p>手上的老手机又罢工了，拆开一查电池问题，换一个轻松点亮。换电池的时候索性全部拆开，看一看手机的五脏六腑，中间的图二就是主板，硅脂下面就是大脑（CPU）</p><div class="tag-plugin gallery grid-box" size="l" ratio="square"><div class="grid-cell"><img data-fancybox="gallery-8" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_3.jpg" alt="我是图一"/><div class="image-meta"><span class="image-caption">我是图一</span></div></div><div class="grid-cell"><img data-fancybox="gallery-8" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_4.jpg" alt="我是图二"/><div class="image-meta"><span class="image-caption">我是图二</span></div></div><div class="grid-cell"><img data-fancybox="gallery-8" src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/weeknote/202444_5.jpg" alt="我是图三"/><div class="image-meta"><span class="image-caption">我是图三</span></div></div></div></p></div>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="WeekNote" scheme="https://blog.findingx.cc/categories/WeekNote/"/>
    
    
  </entry>
  
  <entry>
    <title>初识博弈论</title>
    <link href="https://blog.findingx.cc/2024/10/29/081414/"/>
    <id>https://blog.findingx.cc/2024/10/29/081414/</id>
    <published>2024-10-29T00:14:14.000Z</published>
    <updated>2025-07-11T01:38:06.147Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>最近在看经济学原理和博弈论，本文的囚徒困境是一个经典的经济学模型，第一次看到博弈论相关文章所描述的就是这个经典模型，身边类似案例屡见不鲜，教育减负和下文烟草广告都是囚徒困境的一种表现。经济学与博弈论在当下社会中无处不在。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十月二十九日</span></div></div></div></div></p></div><h2 id="烟草广告"><a class="markdownIt-Anchor" href="#烟草广告"></a> 烟草广告</h2><p>20世纪中叶烟草业繁荣但吸烟危害渐明，反烟组织抨击，烟草广告“内卷”且营销受限，在此背景下1971年美国<mark class="tag-plugin colorful mark" color="orange">禁止电台和电视台播放香烟广告</mark></p><p>起初烟草公司抱怨这样的政策会损害他们的利益，但事实上利润反而提高<mark class="tag-plugin colorful mark" color="orange">提高</mark>了</p><h2 id="囚徒困境"><a class="markdownIt-Anchor" href="#囚徒困境"></a> 囚徒困境</h2><p>「<a target="_blank" rel="noopener" href="https://baike.baidu.com/item/%E5%9B%9A%E5%BE%92%E5%9B%B0%E5%A2%83/5739141">囚徒困境-百度百科</a>」</p><p>囚徒困境是博弈论中的经典案例，内容如下：</p><details class="tag-plugin colorful folding" ><summary><span>囚徒困境简介</span></summary><div class="body"><h3 id="情境设定"><a class="markdownIt-Anchor" href="#情境设定"></a> 情境设定</h3><ul><li>警方逮捕了两名犯罪嫌疑人（甲和乙），但缺乏足够的证据来证明他们的主要罪行，只有一些与持有枪支相关的较轻罪名证据。警方将两人分别关押在不同的牢房，使他们无法沟通。</li></ul><h3 id="检察官提出的交易条件"><a class="markdownIt-Anchor" href="#检察官提出的交易条件"></a> 检察官提出的交易条件</h3><ul><li><strong>若两人都保持沉默（合作）</strong>：警方只能以非法持有枪支罪对他们进行轻判，比如每人判刑1年。</li><li><strong>若其中一人坦白（背叛），另一人沉默</strong>：坦白者会因为与警方合作而被免罪释放，沉默者则会被重判，比如判刑10年。</li><li><strong>若两人都坦白（互相背叛）</strong>：两人都会被定罪，但检察官会为他们争取一定的从轻情节，比如每人判刑6年。</li></ul><h3 id="困境分析"><a class="markdownIt-Anchor" href="#困境分析"></a> 困境分析</h3><ul><li>从甲的角度来看，若乙沉默，甲坦白则甲可获释（0年），甲沉默则会判刑1年，此时坦白对甲更有利；若乙坦白，甲坦白判刑6年，甲沉默判刑10年，这种情况下坦白对甲还是更有利。乙面临同样的处境。</li><li>最终结果是，尽管两人都保持沉默（总刑期2年）对双方整体最有利，但出于对自身利益的考虑，他们往往都会选择坦白（总刑期12年），导致个体的理性决策造成了集体的不利结果。这体现了个体理性与集体理性之间的矛盾，以及在缺乏信任和沟通的情况下，双方难以达成最优合作的困境。囚徒困境在经济学、政治学、社会学等多个领域有广泛的应用，用于分析竞争、合作等策略选择问题。</li></ul></div></details><h3 id="举个较为简单的经济学例子"><a class="markdownIt-Anchor" href="#举个较为简单的经济学例子"></a> 举个较为简单的经济学例子</h3><blockquote><ul><li>背景：假设在一个行业中有两家主要的企业，它们共同垄断了某种产品的市场，且产品的市场需求是有限的。</li></ul></blockquote><blockquote><ul><li>决策：<ul><li>企业 A 和企业 B 都选择维持现有产量：市场价格保持相对稳定，双方都能获得一定的利润，例如都能赚取 800 万利润。</li><li>企业 A 增加产量，企业 B 维持产量：市场上产品供应增加，价格会有所下降。企业 A 由于产量增加，虽然价格降低，但通过薄利多销，利润可能增加到 1000 万；而企业 B 的市场份额被挤压，利润下降到 300 万。</li><li>企业 A 维持产量，企业 B 增加产量：结果与上述情况类似，企业 B 利润增加到 1000 万，企业 A 利润下降到 300 万。</li><li>企业 A 和企业 B 都选择增加产量：市场上产品供过于求，价格大幅下降，双方的利润都会大幅减少，可能都只能赚取 200 万利润。</li></ul></li></ul><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/1.png" alt="博弈" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="博弈" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">博弈</span></div></div></blockquote><blockquote><ul><li>困境分析：<ul><li>从企业 A 的角度来看，无论企业 B 选择何种策略，它增加产量似乎都是最优选择。因为如果企业 B 维持产量，企业 A 增加产量能获得更多利润（1000 万 &gt; 800 万）；如果企业 B 增加产量，企业 A 增&gt; 加产量也比维持产量的利润要高（200 万 &gt; 300 万）。企业 B 同理。然而，当双方都基于这种个体理性做出决策时，最终的结果却是双方都获得较低的利润（200 万），而不是双方都维持产量时的较高利润（800 万）。这就是企业在产量决策上的囚徒困境，<mark class="tag-plugin colorful mark" color="orange">个体追求自身利益最大化</mark>的行为导致了集体利益的受损。</li></ul></li></ul></blockquote><h3 id="再举一个"><a class="markdownIt-Anchor" href="#再举一个"></a> 再举一个</h3><hr /><p>再回到烟草广告的案例，正是由于<mark class="tag-plugin colorful mark" color="orange">个体追求自身利益最大化</mark>的行为使得生个行业利润相对较低，而政府的这一决策让烟草行业从囚徒困境中跳脱出来，收益自然上升了。</p><div class="tag-plugin quot"><p class="content" type="text"><span class="empty"></span><span class="text">博弈论</span><span class="empty"></span></p></div><p>博弈论当然不止囚徒困境还有诸如<emp>胆小鬼博弈</emp>、<emp>智猪博弈</emp>等等。博弈论是冯诺依曼研究数学和经济学交叉领域问题是得出的一种系统分析竞争与合作理论，当下种种社会行为几乎都能看到博弈论的影子。在我国古代也有博弈论的案例，如耳熟能详的<emp>田忌赛马</emp>。</p><details class="tag-plugin colorful folding" ><summary><span>田忌赛马分析引用</span></summary><div class="body"><p><a target="_blank" rel="noopener" href="https://blog.csdn.net/Suyebiubiu/article/details/103754924">博弈 习题-田忌赛马问题</a></p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/3.png" alt="田忌赛马分析引用" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="田忌赛马分析引用" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">田忌赛马分析引用</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/2.png" alt="田忌赛马分析引用" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="田忌赛马分析引用" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">田忌赛马分析引用</span></div></div></div></details><h2 id="理性人不选择坏策略"><a class="markdownIt-Anchor" href="#理性人不选择坏策略"></a> 理性人不选择坏策略</h2><p>「<a target="_blank" rel="noopener" href="https://baike.baidu.com/item/%E6%99%BA%E7%8C%AA%E5%8D%9A%E5%BC%88%E7%90%86%E8%AE%BA/6140801">智猪博弈-百度百科</a>」</p><details class="tag-plugin colorful folding" ><summary><span>智猪博弈</span></summary><div class="body"><p>假设猪圈里有一头大猪、一头小猪。猪圈的一头有猪食槽，另一头安装着控制猪食供应的按钮，按一下按钮会有10个单位的猪食进槽，但是谁按按钮就会首先付出2个单位的成本。按钮和猪食槽在相反位置，按按钮的猪要付出2个单位的成本，并且丧失了先到槽边进食的机会。<br />若小猪先到槽边进食，因为缺乏竞争，进食的速度一般，最终大小猪吃到食物的比率是6∶4；若同时到槽边进食，大猪进食速度加快，最终大小猪收益比是7∶3；若大猪先到槽边进食，大猪会霸占剩余所有猪食，最终大小猪收益比9∶1。<br />那么，在两头猪都有智慧的前提下，最终结果是：小猪选择等待，大猪去按按钮。</p></div></details><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/4.png" alt="智猪博弈" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="智猪博弈" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">智猪博弈</span></div></div><p>像这样的一个博弈，从大猪角度思考</p><ul><li>对于大猪，小猪摁下时应选择策略为等待（7 &gt; 4），小猪等待时应选择策略为摁下时（0 &lt; 3），此时有两种最优</li><li>对于小猪，不论大猪是否摁下（3 &gt; 0），（0 &gt; -1），小猪最优策略为等待</li></ul><p>因此，大猪做出选择前必须先考虑小猪会选择的策略，小猪选择等待，那么大猪应选择摁下</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/5.png" alt="智猪博弈最优策略" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="智猪博弈最优策略" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">智猪博弈最优策略</span></div></div><p>但以上描述有个前提，大猪必须知道小猪是理性的，若只知道小猪有 50% 是理性的呢？解决此问题需要引入理性共识的概念「<a target="_blank" rel="noopener" href="https://www.zhihu.com/question/34246234">什么是无穷阶次的理性共识？-知乎</a>」</p><p>但理性共识对于求解和预测博弈是一个非常繁杂的事情，现实中很难有参与人达到这样的程度，这也是博弈论推理结果和实际结果有差异的原因。</p><h2 id="纳什均衡"><a class="markdownIt-Anchor" href="#纳什均衡"></a> 纳什均衡</h2><p>纳什均衡是博弈论中很重要的一个概念</p><details class="tag-plugin colorful folding" ><summary><span>纳什均衡定义</span></summary><div class="body"><p>纳什均衡是指在一个博弈过程中，无论对方的策略选择如何，每个参与者都选择了自己的最优策略，这样的一种策略组合就构成了纳什均衡。在纳什均衡状态下，没有参与者有动机单方面改变自己的策略，因为单方面改变策略并不能使自己获得更大的利益。</p></div></details><p>回到上面两个企业的例子</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/1.png" alt="博弈" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="博弈" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/囚徒困境/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">博弈</span></div></div><p>这里可以看出当<mark class="tag-plugin colorful mark" color="orange">个体追求自身利益最大化</mark>时，每个企业都想得到 1000 的收益，但二者同时增产带来的结果就是只能获得 200 的收益，纳什均衡停留在(200,200)的位置，个体的理性决策造成了集体的不利结果</p><!-- ## _还没写完.._ <div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>正文文末闲语</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div>--><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://www.zhihu.com/question/34246234">什么是无穷阶次的理性共识？-「知乎」</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="社会科学" scheme="https://blog.findingx.cc/categories/%E7%A4%BE%E4%BC%9A%E7%A7%91%E5%AD%A6/"/>
    
    
    <category term="博弈论" scheme="https://blog.findingx.cc/tags/%E5%8D%9A%E5%BC%88%E8%AE%BA/"/>
    
    <category term="经济学" scheme="https://blog.findingx.cc/tags/%E7%BB%8F%E6%B5%8E%E5%AD%A6/"/>
    
  </entry>
  
  <entry>
    <title>电子显微镜图像优化代码记录</title>
    <link href="https://blog.findingx.cc/2024/10/23/163016/"/>
    <id>https://blog.findingx.cc/2024/10/23/163016/</id>
    <published>2024-10-23T08:30:16.000Z</published>
    <updated>2025-07-11T01:38:06.151Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>近期手上有一个电子显微镜，但是没有相应的电脑程序，只有系统自带的相机，正好曾经用过 OpenCV 做过些东西，于是重操旧业，由于设备自身摄像头并不很好，优化效果相比原生画面只有一点点提升。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十月二十三日</span></div></div></div></div></p></div><h2 id="安装环境"><a class="markdownIt-Anchor" href="#安装环境"></a> 安装环境</h2><p>我是有用的是 conda 管理 python 版本的</p><p>先官网下载 conda 安装程序，双击打开安装完成后打开终端</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">conda create -n opencv</span><br><span class="line">conda activate opencv</span><br><span class="line">conda install -n opencv ipykernel ipython</span><br></pre></td></tr></table></figure><h2 id="图像优化代码"><a class="markdownIt-Anchor" href="#图像优化代码"></a> 图像优化代码</h2><details class="tag-plugin colorful folding" ><summary><span>图像优化代码</span></summary><div class="body"><p>复制以下代码在 py 文件中</p><figure class="highlight py"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> cv2</span><br><span class="line"><span class="keyword">import</span> numpy <span class="keyword">as</span> np</span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建视频捕获对象，参数为 0 表示默认摄像头，可根据实际情况调整</span></span><br><span class="line">cap = cv2.VideoCapture(<span class="number">0</span>)</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> <span class="keyword">not</span> cap.isOpened():</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;无法打开摄像头&quot;</span>)</span><br><span class="line">    exit()</span><br><span class="line"></span><br><span class="line"><span class="comment"># 设置窗口标题和大小调整标志</span></span><br><span class="line">window_title = <span class="string">&#x27;Enhanced Image&#x27;</span></span><br><span class="line">cv2.namedWindow(window_title, cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 预先计算一些常量参数</span></span><br><span class="line">bilateral_filter_diameter = <span class="number">7</span></span><br><span class="line">color_space_std = <span class="number">50</span></span><br><span class="line">coordinate_space_std = <span class="number">50</span></span><br><span class="line">nl_means_denoising_strength = <span class="number">8</span></span><br><span class="line">nl_means_search_window_size = <span class="number">8</span></span><br><span class="line">nl_means_similar_window_size = <span class="number">5</span></span><br><span class="line">nl_means_color_channels = <span class="number">15</span></span><br><span class="line"></span><br><span class="line">mode = <span class="number">2</span>  <span class="comment"># 1 表示原始效果模式，2 表示速度优化模式</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">switch_mode</span>(<span class="params">event, x, y, flags, param</span>):</span><br><span class="line">    <span class="keyword">global</span> mode</span><br><span class="line">    <span class="keyword">if</span> event == cv2.EVENT_LBUTTONDOWN:</span><br><span class="line">        <span class="keyword">if</span> mode == <span class="number">1</span>:</span><br><span class="line">            mode = <span class="number">2</span></span><br><span class="line">        <span class="keyword">else</span>:</span><br><span class="line">            mode = <span class="number">1</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># cv2.setMouseCallback(window_title, switch_mode)</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">    <span class="comment"># 从摄像头读取一帧图像</span></span><br><span class="line">    ret, frame = cap.read()</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span> <span class="keyword">not</span> ret:</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;无法读取帧&quot;</span>)</span><br><span class="line">        <span class="keyword">break</span></span><br><span class="line"></span><br><span class="line">    <span class="comment"># 计算图像亮度</span></span><br><span class="line">    gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)</span><br><span class="line">    average_brightness = np.mean(gray_frame)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span> mode == <span class="number">1</span>:</span><br><span class="line">        <span class="comment"># 使用双边滤波进行图像平滑，同时保留边缘信息</span></span><br><span class="line">        filtered_frame = cv2.bilateralFilter(frame, bilateral_filter_diameter, color_space_std, coordinate_space_std)</span><br><span class="line"></span><br><span class="line">        <span class="comment"># 调整高频部分的权重</span></span><br><span class="line">        weight = <span class="number">0.7</span></span><br><span class="line">        high_pass = cv2.subtract(frame, cv2.multiply(filtered_frame, weight))</span><br><span class="line"></span><br><span class="line">        <span class="comment"># 将高频部分与原始图像相加，增强图像的清晰度，调整增强权重</span></span><br><span class="line">        enhancement_weight = <span class="number">1.3</span></span><br><span class="line">        enhanced_frame = cv2.add(frame, cv2.multiply(high_pass, enhancement_weight))</span><br><span class="line"></span><br><span class="line">        <span class="comment"># 使用非局部均值去噪</span></span><br><span class="line">        denoised_frame = cv2.fastNlMeansDenoisingColored(enhanced_frame, <span class="literal">None</span>, nl_means_denoising_strength,</span><br><span class="line">                                                          nl_means_search_window_size, nl_means_similar_window_size,</span><br><span class="line">                                                          nl_means_color_channels)</span><br><span class="line"></span><br><span class="line">        <span class="comment"># 根据亮度调整中值滤波强度</span></span><br><span class="line">        <span class="keyword">if</span> average_brightness &gt; <span class="number">150</span>:</span><br><span class="line">            filter_size = <span class="number">7</span></span><br><span class="line">        <span class="keyword">else</span>:</span><br><span class="line">            filter_size = <span class="number">5</span></span><br><span class="line">        final_frame = cv2.medianBlur(denoised_frame, filter_size)</span><br><span class="line">    <span class="keyword">else</span>:</span><br><span class="line">        <span class="comment"># 速度优化模式，简单处理</span></span><br><span class="line">        final_frame = frame</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 显示增强后的图像并自适应图像大小</span></span><br><span class="line">    cv2.imshow(window_title, final_frame)</span><br><span class="line">    cv2.resizeWindow(window_title, final_frame.shape[<span class="number">1</span>], final_frame.shape[<span class="number">0</span>]+<span class="number">60</span>)</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 按下 &#x27;q&#x27; 键退出循环</span></span><br><span class="line">    <span class="keyword">if</span> cv2.waitKey(<span class="number">1</span>) &amp; <span class="number">0xFF</span> == <span class="built_in">ord</span>(<span class="string">&#x27;q&#x27;</span>):</span><br><span class="line">        <span class="keyword">break</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 释放视频捕获对象和关闭所有窗口</span></span><br><span class="line">cap.release()</span><br><span class="line">cv2.destroyAllWindows()</span><br></pre></td></tr></table></figure></div></details><p>效果图对比</p><div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));"><div class="cell" style="">    <p><strong>系统自带相机</strong></p><div class="tag-plugin colorful note" color="green"><div class="body"><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/WIN_20241023_16_15_52_Pro.jpg" alt="低亮度" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="低亮度" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/WIN_20241023_16_15_52_Pro.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">低亮度</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/WIN_20241023_17_03_24_Pro.jpg" alt="高亮度" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="高亮度" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/WIN_20241023_17_03_24_Pro.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">高亮度</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/WIN_20241023_17_11_49_Pro.jpg" alt="均衡" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="均衡" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/WIN_20241023_17_11_49_Pro.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">均衡</span></div></div></div></div>    </div>    <div class="cell" style="">    <p><strong>OpenCV出图</strong></p><div class="tag-plugin colorful note" color="red"><div class="body"><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/EnhancedImage_screenshot_23.10.2024.png" alt="低亮度" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="低亮度" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/EnhancedImage_screenshot_23.10.2024.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">低亮度</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/EnhancedImage_screenshot_23.10.2024-1.png" alt="高亮度" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="高亮度" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/EnhancedImage_screenshot_23.10.2024-1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">高亮度</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/EnhancedImage_screenshot_23.10.2024-2.png" alt="均衡" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="均衡" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/电子显微镜图像优化代码记录/EnhancedImage_screenshot_23.10.2024-2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">均衡</span></div></div></div></div>    </div>    </div><p>感觉两个大差不差的<span class="tag-plugin emoji"><img no-lazy="" class="inline" src="https://gcore.jsdelivr.net/gh/norevi/waline-blobcatemojis@1.0/blobs/blobcat0_0.png"/></span>，可能是图源就不太好吧…</p><h2 id="瞎拍拍"><a class="markdownIt-Anchor" href="#瞎拍拍"></a> 瞎拍拍</h2><p>拍了三个显示屏显微镜下的图，猜猜哪个是 LCD 哪个是 OLED <span class="tag-plugin emoji"><img no-lazy="" class="inline" src="https://gcore.jsdelivr.net/gh/norevi/waline-blobcatemojis@1.0/blobs/ablobcatattentionreverse.png"/></span></p><div class="tag-plugin swiper fancybox" id="swiper-api" effect="cards"><div class="swiper-wrapper"><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E7%94%B5%E5%AD%90%E6%98%BE%E5%BE%AE%E9%95%9C%E5%9B%BE%E5%83%8F%E4%BC%98%E5%8C%96%E4%BB%A3%E7%A0%81%E8%AE%B0%E5%BD%95/1.png" alt="" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E7%94%B5%E5%AD%90%E6%98%BE%E5%BE%AE%E9%95%9C%E5%9B%BE%E5%83%8F%E4%BC%98%E5%8C%96%E4%BB%A3%E7%A0%81%E8%AE%B0%E5%BD%95/2.png" alt="" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E7%94%B5%E5%AD%90%E6%98%BE%E5%BE%AE%E9%95%9C%E5%9B%BE%E5%83%8F%E4%BC%98%E5%8C%96%E4%BB%A3%E7%A0%81%E8%AE%B0%E5%BD%95/3.png" alt="" /></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev blur"></div><div class="swiper-button-next blur"></div></div><!-- ## _还没写完.._ --><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>代码一顿倒腾，结果感觉没有达到优化图像的效果，不过感觉动态画面噪点可能相对没那么明显吧，有了这个显微镜倒是方便看焊接是否完美，有没有连锡虚焊之类的。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="OpenCV" scheme="https://blog.findingx.cc/tags/OpenCV/"/>
    
  </entry>
  
  <entry>
    <title>OC引导的一些优化</title>
    <link href="https://blog.findingx.cc/2024/10/21/110234/"/>
    <id>https://blog.findingx.cc/2024/10/21/110234/</id>
    <published>2024-10-21T03:02:34.000Z</published>
    <updated>2025-07-11T01:38:06.140Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>做好 EFI 后总看着 Win 的引导不太舒服，Ubuntu 还需要手动进 bios，不太方便，干脆一起优化一下，记录了本文教程</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span><span class="date">二〇二四年十月二十一日</span></div></div></div></div></p></div><h2 id="图标制作"><a class="markdownIt-Anchor" href="#图标制作"></a> 图标制作</h2><p>先讲一下图标的制作，可以用我下面写的这个脚本（该脚本只用于制作 磁盘这样的方形图标）</p><p>新建文件<code>make_icns</code>，不需要添加后缀，右键文本编辑器打开，复制以下内容到文件并保存，最后进入终端输入<code>chmod +X make_icns</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">mkdir icons.iconset</span><br><span class="line"></span><br><span class="line">sips -z 16 16 icon.png -o icons.iconset/icon_16x16.png</span><br><span class="line">sips -z 32 32 icon.png -o icons.iconset/icon_16x16@2x.png</span><br><span class="line">sips -z 32 32 icon.png -o icons.iconset/icon_32x32.png</span><br><span class="line">sips -z 64 64 icon.png -o icons.iconset/icon_32x32@2x.png</span><br><span class="line">sips -z 128 128 icon.png -o icons.iconset/icon_128x128.png</span><br><span class="line">sips -z 256 256 icon.png -o icons.iconset/icon_128x128@2x.png</span><br><span class="line">sips -z 256 256 icon.png -o icons.iconset/icon_256x256.png</span><br><span class="line">sips -z 512 512 icon.png -o icons.iconset/icon_256x256@2x.png</span><br><span class="line">sips -z 512 512 icon.png -o icons.iconset/icon_512x512.png</span><br><span class="line">sips -z 1024 1024 icon.png -o icons.iconset/icon_512x512@2x.png</span><br><span class="line"></span><br><span class="line">iconutil -c icns icons.iconset -o icon.icns</span><br><span class="line"></span><br><span class="line">rm -r icons.iconset</span><br></pre></td></tr></table></figure><p>使用方法：</p><ol><li>先将需要变更的 png 文件和刚才做好的<code>make_icns</code>放在桌面上</li><li>双击<code>make_icns</code></li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/2.png" alt="制作icns" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="制作icns" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">制作icns</span></div></div><h2 id="添加盘符显示图标"><a class="markdownIt-Anchor" href="#添加盘符显示图标"></a> 添加盘符显示图标</h2><p>一共有两种方式，磁盘添加<code>.contentFlavour</code>文件和 plist 文件修改</p><h3 id="磁盘添加-contentflavour"><a class="markdownIt-Anchor" href="#磁盘添加-contentflavour"></a> 磁盘添加 <code>.contentFlavour</code></h3><p>找到 Windows 的 efi 磁盘：<code>\EFI1\Microsoft\Boot\</code>，在该文件夹下添加文件，输入内容</p><div class="tag-plugin copy"><input class="copy-area" id="copy_1" value="Windows11:Windows"><button class="copy-btn" onclick="util.copy(&quot;copy_1&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>如果是Win10</p><div class="tag-plugin copy"><input class="copy-area" id="copy_2" value="Windows10:Windows"><button class="copy-btn" onclick="util.copy(&quot;copy_2&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>同步添加文件<code>Windows11.icns</code>到主题文件夹下。</p><h3 id="plist文件修改方式"><a class="markdownIt-Anchor" href="#plist文件修改方式"></a> plist文件修改方式</h3><p>这里以 linux 为例</p><p>如图添加</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/1.png" alt="oc截图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="oc截图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">oc截图</span></div></div><p>同样你需要添加<code>ubuntu2404.icns</code>到主题文件夹下</p><p>效果图：</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/headimg/headimg_37.png" alt="oc效果图截图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="oc效果图截图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/headimg/headimg_37.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">oc效果图截图</span></div></div><h2 id="添加-linux-磁盘引导"><a class="markdownIt-Anchor" href="#添加-linux-磁盘引导"></a> 添加 Linux 磁盘引导</h2><p>首先需要添加<code>Openshell.efi</code></p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/4.png" alt="oc截图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="oc截图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">oc截图</span></div></div><ol><li>重启进入<code>UEFI SHELL</code></li><li>找到 <code>Ubuntu</code> 存储的盘符名称，我的是<code>FS1:</code>（其实这里只需要找一个地方存储 txt 文件就可以，至于是不是 EFI 无所谓，但你要知道 Ubuntu 的 efi 是存在那个盘符的）</li><li>进入磁盘后输入</li></ol><div class="tag-plugin copy"><input class="copy-area" id="copy_3" value="map > map_table_linux.txt"><button class="copy-btn" onclick="util.copy(&quot;copy_3&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>重启后打开文件如图，这里重点找存放 ubuntu 启动的 efi 的磁盘，我存放 Ubuntu 的引导盘和 OC 引导盘不在同一个盘，可能和其他博主的教程不太一样</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/5.png" alt="map_table_linux" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="map_table_linux" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">map_table_linux</span></div></div><ol start="4"><li>添加到 boot 中</li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/1.png" alt="map_table_linux" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="map_table_linux" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/OC引导的一些优化/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">map_table_linux</span></div></div><h2 id="持续更新"><a class="markdownIt-Anchor" href="#持续更新"></a> <em>持续更新…</em></h2><!-- <div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>正文文末闲语</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div> --><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://apple.sqlsec.com/6-%E5%AE%9E%E7%94%A8%E5%A7%BF%E5%8A%BF/6-10/#_6">「国光」OC 主题与启动项</a></li><li>「知乎」使用Opencore引导ubuntu以及Linux的步骤(<a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/256400835">https://zhuanlan.zhihu.com/p/256400835</a>)</li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="opencore" scheme="https://blog.findingx.cc/tags/opencore/"/>
    
    <category term="boot" scheme="https://blog.findingx.cc/tags/boot/"/>
    
  </entry>
  
  <entry>
    <title>DCDC电路学习笔记</title>
    <link href="https://blog.findingx.cc/2024/09/25/163349/"/>
    <id>https://blog.findingx.cc/2024/09/25/163349/</id>
    <published>2024-09-25T08:33:49.000Z</published>
    <updated>2025-07-11T01:38:06.137Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>电源就像是心脏，电流就像是血液，电压就像是脉搏。由于电路中每个部分电压要求不一致，大多数IC为3.3V，一部分为1.8V，如果是CPU这种复杂芯片，电源电压可能更低。对于像单片机和嵌入式MCu等供电需求较小的IC来说,LDO完全可以解决他们的供电问题，但如果供电功率稍微大一些比如FPGA以及CPU大功率LED等等可能就需要用到DCDC了，DCDC相对来说效率较高,应用广泛。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><h2 id="是什么"><a class="markdownIt-Anchor" href="#是什么"></a> 是什么</h2><p>DCDC 是直流转直流的转换器，能够实现升降压。目前主流的主要分两大类，下面主要按照分类来讲：</p><ol><li>开关型稳压电源（Buck；Boost；Boost-Buck）</li><li>线性稳压电源（LDO）</li></ol><h2 id="开关型稳压电源"><a class="markdownIt-Anchor" href="#开关型稳压电源"></a> 开关型稳压电源</h2><p>开关型有三种：Buck；Boost；Boost-Buck。开关型效率高，但是噪声很大，在layout方面需要注意很多细节。下面主要讲解<mark class="tag-plugin colorful mark" color="red">Buck；Boost</mark>。</p><h3 id="buck降压"><a class="markdownIt-Anchor" href="#buck降压"></a> Buck（降压）</h3><p>下图中两个⬛️上面分别写着<code>BSW</code>和<code>SW</code>的是 IC 引脚标识，一般在规格书上都会写出来，<code>BSW</code>也有可能叫做<code>BOOT</code>或者<code>BSBT</code>，⬛️的左侧为IC内部框图，右侧为外部电路（也就是我们设计的电路）。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/1.png" alt="Buck（降压）" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Buck（降压）" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Buck（降压）</span></div></div><p>Buck的本质是什么？通过<mark class="tag-plugin colorful mark" color="red">高速开关调节电压高低</mark>，那怎么调节呢，上图中有两个<code>MOS</code>，二者互斥，同一时刻只能有一个<code>MOS</code>打开，二者不同时关闭活同时开启。流程大概是–&gt;上<code>MOS</code>开–&gt;<code>SW</code>电压瞬间上升–下<code>MOS</code>开–&gt;<code>SW</code>电压瞬间下降；此时<code>SW</code>输出类似于方波，但是通过LC后电压变化得缓慢，将时间轴拉长来看就像是电压在小范围中波动，近似于稳定电压，对于输入<code>VIN</code>电压降低了。</p><p>通过运放控制<code>H-MOS</code>（上面的MOS：Q1）和<code>L-MOS</code>（下面的MOS：Q2）相间通断控制输出电压高低。</p><h4 id="工作时"><a class="markdownIt-Anchor" href="#工作时"></a> 工作时</h4><ol start="0"><li><p>当IC工作电源抬起时，IC开始工作，即VCC电压上升，此时<code>H-MOS</code>的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>G</mi><mi>S</mi></mrow></msub><mo>=</mo><mi>V</mi><mi>C</mi><mi>C</mi></mrow><annotation encoding="application/x-tex">V_{GS}=VCC</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span></span></span></span>，<code>H-MOS</code>正常被开启。</p></li><li><p>当<code>H-MOS</code>导通，<code>L-MOS</code>截止时，紫色高亮部分电压抬高，其中<code>SW</code>引脚电压瞬间上升到VIN，电流通过<code>L1</code>、<code>C2</code> LC震荡，让瞬间上升的波形变成缓慢上升的波形，此状态一直持续到H-MOS断开。</p></li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/2.png" alt="Buck状态-1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Buck状态-1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Buck状态-1</span></div></div><ol start="2"><li>当<code>H-MOS</code>截止，<code>L-MOS</code>导通时，紫色高亮部分电压因外部电容<code>C2</code>有电而缓慢下降，其中<code>SW</code>引脚电压由于<code>L-MOS</code>的导通而接地，此时，<code>VCC</code>给自举电容<code>C1</code>充电。此状态一直持续到<code>L-MOS</code>断开。</li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/3.png" alt="Buck状态-2" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Buck状态-2" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Buck状态-2</span></div></div><ol start="3"><li>这时为了维持右侧用电器输入电压稳定，不能继续降低上图<code>用电器R2的输入电压</code>（后面都用<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>R</mi><mn>2</mn></mrow></msub></mrow><annotation encoding="application/x-tex">V_{R2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>表示）了，我们必须使得<code>H-MOS</code>导通，此时由于<code>L-MOS</code>的关断，<code>SW</code>电压从<code>0V</code>回到了<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>R</mi><mn>2</mn></mrow></msub></mrow><annotation encoding="application/x-tex">V_{R2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>，同时电容<code>BSBT</code>端电压（下图中高亮部分）与<code>SW</code>端电压压差为<code>VCC</code>，而此时由于<mark class="tag-plugin colorful mark" color="red">电容两端电压不可突变</mark>，电容两端<mark class="tag-plugin colorful mark" color="red">对地压差同时</mark>上升了<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>R</mi><mn>2</mn></mrow></msub></mrow><annotation encoding="application/x-tex">V_{R2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>，于是<code>H-MOS</code>的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mi>G</mi></msub><mo>=</mo><mi>V</mi><mi>C</mi><mi>C</mi><mo>+</mo><msub><mi>V</mi><mrow><mi>R</mi><mn>2</mn></mrow></msub></mrow><annotation encoding="application/x-tex">V_G=VCC+V_{R2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">G</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mord mathdefault" style="margin-right:0.07153em;">C</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.00773em;">R</span><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>，此时<code>H-MOS</code>满足了导通条件，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>G</mi><mi>S</mi></mrow></msub><mo>&gt;</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">V_{GS}&gt;0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&gt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>，<code>H-MOS</code>导通。</li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/4.png" alt="Buck状态-3" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Buck状态-3" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Buck状态-3</span></div></div><ol start="4"><li>重复2步骤：2–&gt;3–&gt;2–&gt;循环往复，不停的通断<code>HL-MOS</code>以达到调节降压的目的。</li></ol><h4 id="layout注意事项"><a class="markdownIt-Anchor" href="#layout注意事项"></a> Layout注意事项</h4><p>以下参考自[参考链接3]</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/5.png" alt="Buck-layout" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Buck-layout" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Buck-layout</span></div></div><blockquote><ol><li>当输出电流IO ≤ 1A时，可以将CIN和CBYPASS用一个陶瓷电容来替代；当输出电流比较大时，则不能将这两个电容合并，并且CIN需要一个容值更大的电容，一般来说，容值越大通常意味着频率特性越差（自谐振频率越低）；CBYPASS一般采用X5R或X7R的 0.1uF~0.47 uF贴片型陶瓷电容。</li><li>CIN和CBYPASS的过孔寄生电感会使输出电压噪声显著增加。</li><li>不要增加电感的出线线宽</li><li>电感下方的GND铜皮要挖空</li><li>避免电感下方的两块铜皮过近，寄生电容会直接将开关节点出的噪声直接引入至输出</li><li>反馈网络布线是最需要注意的，如果这根线上加载了噪声，将会直接体现在输出电压上。</li><li>在远离电感和二极管开关节点的地方出线。不要在电感器和二极管正下方布线。</li></ol></blockquote><h3 id="boost升压"><a class="markdownIt-Anchor" href="#boost升压"></a> Boost（升压）</h3><h4 id="仿真分享"><a class="markdownIt-Anchor" href="#仿真分享"></a> 仿真分享</h4><blockquote><p>网站：<a target="_blank" rel="noopener" href="https://cc.xiaogd.net/">https://cc.xiaogd.net/</a></p></blockquote><p>打开网页，左上角文件–&gt;文本导入，复制以下文本。下面的仿真参数是参考MT3608的规格书做的。可以大致看个效果，实际应用中，这颗IC有反馈电压的引脚，这部分我没有仿真出来</p><figure class="highlight txt"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line">$ 1 2.6041666666666667e-8 0.08119363461506351 51 5 43 5e-11</span><br><span class="line">r 816 352 816 80 0 10000</span><br><span class="line">c 640 352 640 80 0 1e-7 -8.071510880640082 -10</span><br><span class="line">l 352 80 528 80 0 0.0000047 1.8721934015586417e-7 0</span><br><span class="line">v 352 352 352 80 0 0 40 5 0 0 0.5</span><br><span class="line">r 528 352 352 352 0 100</span><br><span class="line">d 528 80 640 80 2 default</span><br><span class="line">w 640 80 688 80 0</span><br><span class="line">w 816 352 640 352 0</span><br><span class="line">w 640 352 528 352 0</span><br><span class="line">f 480 208 528 208 32 1.5 0.02</span><br><span class="line">R 384 208 384 160 0 2 1200000 5 0 0 0.5</span><br><span class="line">w 448 208 464 208 0</span><br><span class="line">w 528 192 528 80 0</span><br><span class="line">w 528 224 528 352 0</span><br><span class="line">w 464 208 480 208 0</span><br><span class="line">p 880 80 880 352 3 0 0</span><br><span class="line">370 688 80 816 80 1 0 0</span><br><span class="line">w 816 80 880 80 0</span><br><span class="line">w 816 352 880 352 0</span><br><span class="line">368 528 80 560 32 0 0</span><br><span class="line">368 352 80 384 32 0 0</span><br><span class="line">s 576 176 576 256 0 1 false</span><br><span class="line">w 576 176 576 144 0</span><br><span class="line">w 576 256 576 304 0</span><br><span class="line">w 576 304 528 352 0</span><br><span class="line">w 576 144 528 80 0</span><br><span class="line">s 384 208 448 208 0 0 false</span><br><span class="line">368 640 80 672 32 0 0</span><br><span class="line">o 6 1 0 4099 20 0.0015625 0 2 6 3</span><br><span class="line">o 5 1 0 4099 10 0.05 1 2 5 3</span><br><span class="line">o 19 1 0 4099 10 12.8 2 2 19 3</span><br><span class="line">o 20 1 0 4099 5 6.4 3 2 20 3</span><br><span class="line">38 1 F1 0 0.000001 0.000101 -1 Capacitance</span><br><span class="line">38 2 F1 0 0.01 1.01 -1 Inductance</span><br><span class="line">38 0 F1 0 1 101 -1 Resistance</span><br></pre></td></tr></table></figure><p>Boost同理，通过高速通断，利用电感充磁放磁，电流无法突变，电压瞬间反向，使得电源电压与电感感应电动势一起为用电器供电以达到升压作用。</p><h4 id="工作时-2"><a class="markdownIt-Anchor" href="#工作时-2"></a> 工作时</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/1.gif" alt="boost仿真" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="boost仿真" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/1.gif"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">boost仿真</span></div></div><ol><li>MOS打开，电源给电感充磁，同时给二极管后端电容充电。</li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/7.png" alt="boost-1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="boost-1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/7.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">boost-1</span></div></div><ol start="2"><li>MOS关闭，电感为了维持电流而电压反向，二极管后端电路电压为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mi>L</mi></msub><mo>+</mo><msub><mi>V</mi><mrow><mi>V</mi><mi>C</mi><mi>C</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_L+V_{VCC}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">L</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" style="margin-right:0.22222em;">V</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span><span class="mord mathdefault mtight" style="margin-right:0.07153em;">C</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>（VCC电源电压）</li></ol><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/6.png" alt="boost-2" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="boost-2" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">boost-2</span></div></div><ol start="3"><li>重复步骤1–&gt;2–&gt;1循环往复</li></ol><p>关于计算方法可以参考[参考链接5]</p><p>这里讲解的相对简单，Boost我没有实际使用过，最常用的还是Buck降压。Boost相对于Buck，电流在一定范围内变化，就类似于Buck中输出电压变化。</p><h3 id="线性稳压电源ldo"><a class="markdownIt-Anchor" href="#线性稳压电源ldo"></a> 线性稳压电源（LDO）</h3><p>详细了解可以参考[参考链接6]</p><p>几个特性：<br />LDO=low dropout regulator，低压差+线性+稳压器。</p><ul><li>低压差： 输出压降比较低，例如输入3.3V，输出可以达到3.2V。</li><li>线性： LDO内部的MOS管工作于线性电阻。</li><li>稳压器： 说明了LDO的用途是用来给电源稳压。</li></ul><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/8.png" alt="LDO" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="LDO" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DCDC电路学习笔记/8.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">LDO</span></div></div><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>毕业前不论是电赛还是科创，基本都用的是LDO居多，DCDC的应用也是上班后才上手实操过，关于DCDC布局方面需要详细参考规格书，否则输出电压电流可能达不到预期效果。这次写DCDC的文章也算是对之前学习的总结，之前只知道用就完事了，但究其根本还是说不出来。凡是接触电学，总是离不开电源，Buck和Boost也只是众多电源中最基础的，还有很多值得学习…</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接：</p><ol><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_40379143/article/details/85267799">BUCK电路的参数计算「CSDN」</a></li><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/73283825">秒懂电容自举电路「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/luohuo9844/article/details/112627692">Buck DC-DC 的PCB layout</a></li><li><a target="_blank" rel="noopener" href="https://club.szlcsc.com/article/details_43524_1.htm">电源篇 – 升压电路 Boost【立创社区】</a></li><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/588382758">直流电路中升压电路（Boost）的设计原理、参数计算及MATLAB仿真「知乎」</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_36347513/article/details/121019508">电子电路学习笔记（14）——LDO(低压差线性稳压器)「CSDN」</a></li></ol></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="BUCK" scheme="https://blog.findingx.cc/tags/BUCK/"/>
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title>i5-8279U黑苹果配置记录</title>
    <link href="https://blog.findingx.cc/2024/09/10/220243/"/>
    <id>https://blog.findingx.cc/2024/09/10/220243/</id>
    <published>2024-09-10T14:02:43.000Z</published>
    <updated>2025-07-11T01:38:06.143Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>最近想弄一台移动本，小主机实在是不方便，不能携带，找到了一个八代的小本子（8279U），适合携带用。下面是最近的折腾记录，只可惜目前触摸板还是没有调通。这颗U和<code>MacBook Pro 2018</code>几乎一样（i5-8259U），可以说黑的很完美，进入睡眠正常，不过主板声卡无解，只能用USB了，但是会限制功耗，开机只有6W，可以手动解锁功耗墙。</p></div></div><div class="footer"><div class="author-date"><span class="author">如需EFI可以到关于页面找联系方式···方寻</span></div></div></div></div></p></div><h2 id="具体配置"><a class="markdownIt-Anchor" href="#具体配置"></a> 具体配置</h2><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/3.png" alt="配置截图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="配置截图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">配置截图</span></div></div><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">                    &#x27;c.          lake@MacBook-Pro.local</span><br><span class="line">                 ,xNMM.          ----------------------</span><br><span class="line">               .OMMMMo           OS: macOS 13.6.9 22G830 x86_64</span><br><span class="line">               OMMM0,            Host: Hackintosh (SMBIOS: MacBookPro15,2)</span><br><span class="line">     .;loddo:&#x27; loolloddol;.      Kernel: 22.6.0</span><br><span class="line">   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 41 mins</span><br><span class="line"> .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 14 (brew)</span><br><span class="line"> XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: zsh 5.9</span><br><span class="line">;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 1920x1080</span><br><span class="line">:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua</span><br><span class="line">.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Quartz Compositor</span><br><span class="line"> kMMMMMMMMMMMMMMMMMMMMMMMMWd.    WM Theme: Blue (Light)</span><br><span class="line"> .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   Terminal: iTerm2</span><br><span class="line">  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   Terminal Font: JetBrainsMonoNF-Regular 12</span><br><span class="line">    kMMMMMMMMMMMMMMMMMMMMMMd     CPU: Intel i5-8279U (8) @ 2.40GHz</span><br><span class="line">     ;KMMMMMMMWXXWMMMMMMMk.      GPU: Intel CoffeeLake-U GT3e [Iris Plus Graphics 655]</span><br><span class="line">       .cooc,.    .,coo:.        Memory: 2901MiB / 4096MiB</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="efi-与-bug"><a class="markdownIt-Anchor" href="#efi-与-bug"></a> EFI 与 BUG</h2><p>我是用的是黑果小兵维护的三分区镜像，这份镜像应该大部分电脑都能进入系统安装界面，进入后最大的问题就是显卡无法正确驱动，显示只有 7MB。</p><h3 id="添加驱动程序"><a class="markdownIt-Anchor" href="#添加驱动程序"></a> 添加驱动程序</h3><ol><li>键盘</li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://github.com/acidanthera/VoodooPS2">🔗仓库链接</a><br />键盘使用的是<code>VoodooPS2Controller.kext</code>，键盘相关的是<code>VoodooPS2Keyboard.kext</code>。其中<code>VoodooPS2Trackpad.kext</code>应该是触控盘相关驱动，我的虽然是 I2C 但装上之后无效，于是我暂时先禁用了。<code>VoodooPS2Controller.kext</code>，该插件中包含四个附加驱动，其中起作用的是<code>VoodooPS2Keyboard.kext</code>，建议制作引导盘的时候加上他，这样安装系统无需外接键盘</p></blockquote><ol start="2"><li><p>网卡 蓝牙<br />网卡是<code>Intel</code>网卡，使用的驱动为<code>AirportItlwm.kext</code>，还需要定制 USB 驱动<code>UTBMap.kext</code>才能完全驱动蓝牙，否则可能会出现搜不到设备或者连接不上设备的情况。</p></li><li><p>电池修复</p></li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://github.com/RehabMan/OS-X-ACPI-Battery-Driver">🔗ACPIBatteryManager.kext 仓库链接</a><br /><a target="_blank" rel="noopener" href="https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads/">🔗ACPIBatteryManager.kext 下载链接</a><br /><a target="_blank" rel="noopener" href="https://github.com/1Revenger1/ECEnabler">🔗ECEnabler.kext 仓库链接</a></p></blockquote><p><code>ACPIBatteryManager.kext</code>，电池驱动，需要再添加驱动<code>ECEnabler.kext</code>，这样可以不需要添加 ACPI 补丁。但我的电池状态不是很稳定，插拔适配器响应慢。电量正确。</p><ol start="4"><li>笔记本背光</li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://github.com/acidanthera/BrightnessKeys">🔗仓库链接</a></p></blockquote><p><code>BrightnessKeys.kext</code>，添加驱动即可，但背光调到最低时会把背光彻底关掉。</p><ol start="5"><li>USB 定制</li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://apple.sqlsec.com/6-%E5%AE%9E%E7%94%A8%E5%A7%BF%E5%8A%BF/6-1/?h=usb">🔗国光教程链接</a></p></blockquote><ol start="6"><li>I2C 触摸板</li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://github.com/VoodooI2C/VoodooI2C">🔗仓库链接</a><br />只需要安装<code>VooDooI2C</code> 驱动即可成功驱动触摸板，若想使用GPIO中断模式，则需要定制补丁，我在首次使用这个驱动时，设置中有设备出来，但是系统下无功能，后来换了一块触摸板才可以完美驱动，我的过程不是很复杂，安装上<code>VooDooI2C</code>，手势等功能完美驱动，无需增加补丁了。</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/9.jpg" alt="VooDooI2C" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="VooDooI2C" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/9.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">VooDooI2C</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/10.jpg" alt="VooDooI2C" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="VooDooI2C" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/10.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">VooDooI2C</span></div></div><ol start="7"><li>电压功耗调节驱动</li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://github.com/acidanthera/CPUFriend/releases">🔗仓库链接</a></p></blockquote><p><code>CPUFriend.kext</code>，需要先定制<code>CPUFriendDataProvider.kext</code><br />但有时会出现睿频失败的问题。</p><blockquote><p>步骤如下：</p><ul><li>载CPUFriend.kext驱动包，里面包含两个文件，<a target="_blank" rel="noopener" href="http://CPUFriend.xn--kextResourceConverter-1t07a.sh">CPUFriend.kext与ResourceConverter.sh</a>，我们重点使用后者这个命令。</li><li>进入Resources目录，在访达窗口按下 Command + Shift + G 调出快速跳转，输入/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources/进入</li><li>确定自己的Board-id，最简单的办法就是打开hackintool，一键查看</li><li>拷贝Board-id名文件，在3.1打开的Resources文件夹中找到你Board-id同名文件，拷贝一份到桌面</li><li>生成CPUFriendDataProvider.kext</li><li>终端输入 cd desktop ，在拖入ResourceConverter.sh后，输入一个空格，再输入 --kext（两个 – 号），再输入一个空格，把刚刚拷贝出来的 Mac-xxxxx.plist 文件也拖进终端，然后确定。最终效果如下：</li><li>桌面将自动生成CPUFriendDataProvider.kext，将其与CPUFriend.kext一起放入EFI-OC-KEXTS目录，然后config里勾选上，重启即可。</li></ul></blockquote><div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));"><div class="cell" style="">    <div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/1.jpg" alt="CPU-S" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="CPU-S" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/1.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">CPU-S</span></div></div>    </div>    <div class="cell" style="">    <div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/4.png" alt="CPU-S" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="CPU-S" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">CPU-S</span></div></div>    </div>    </div><h3 id="修复一下-bug"><a class="markdownIt-Anchor" href="#修复一下-bug"></a> 修复一下 BUG</h3><ol><li><p>闪屏<br />刚开始装系统没有注意到，装好系统、处理好显卡驱动问题后发现有闪屏现象，用了两天，Windows 下没有发现，之前转过 Ubuntu，也会有类似情况，但是 Ubuntu 严重得多，拖动窗口就会有问题。<br />上网搜了下黑苹果的解决办法，添加 EDID，问题并没有完全解决，但是闪屏没有之前那么频繁了，但任然存在闪屏。<br />后来又有一篇文章说更新 <code>WhateverGreen.kext</code> 更新后闪屏没有优化.<br /><strong>最后更新：换了 DDR 解决了还从 8G 换到了 4G，并不是电脑不支持8G，而是这个 8G ddr 有毛病</strong><span class="tag-plugin emoji"><img no-lazy="" class="inline" src="https://gcore.jsdelivr.net/gh/norevi/waline-blobcatemojis@1.0/blobs/blobbanhammerr.png"/></span></p></li><li><p>蓝牙连接问题<br /><strong>需要定制 USB 驱动才能正常使用。</strong></p></li><li><p>声卡<strong>无解</strong>，准备使用 USB</p></li><li><p>系统卡顿，平均频率上不去</p></li></ol><blockquote><p><a target="_blank" rel="noopener" href="https://bbs.pcbeta.com/viewthread-1825055-1-1.html">🔗原文链接</a><br />点击下载<a target="_blank" rel="noopener" href="https://github.com/sicreative/VoltageShift">VoltageShift.kext</a>,下载后有个压缩包<code>voltageshift_1.25.zip</code>解压，打开终端，将文件夹拖入到终端，回车。<br />进入该文件夹后输入指令给权限：</p></blockquote><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_4" value="sudo chown -R root:wheel VoltageShift.kext"><button class="copy-btn" onclick="util.copy(&quot;copy_4&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>极限超频，Pl1为长时间功率，pl2为瞬时最大的。这个有点问题就是睡眠后是无效的，所以你得写个脚本加入到用户与群组里面的登录项</p><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_5" value="./voltageshift power <PL1> <PL2>"><button class="copy-btn" onclick="util.copy(&quot;copy_5&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>举个例子，我输入的是<code>./voltageshift power 15 15</code>。，原本功耗限制 6w，速度太慢，但是风扇是真的安静，CPU 温度稳定在 60 度。<br />以上代码是测试稳定性使用，如果要开机自动设置可以用下面的命令：</p><blockquote><p>sudo ./voltageshift buildlaunchd &lt;CPU电压&gt; &lt;GPU电压&gt; &lt;CPUCache电压&gt; &lt;SA电压&gt; &lt;AI/O电压&gt; &lt;DI/O电压&gt; &lt;turbo睿频&gt; <pl1> <pl2> &lt;remain是否保留在系统中&gt; &lt;UpdateMins (0 only apply at bootup)&gt;</p></blockquote><p>这是我使用的</p><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_6" value="sudo ./voltageshift buildlaunchd 0 0 0 0 0 0 1 12 25 0 160"><button class="copy-btn" onclick="util.copy(&quot;copy_6&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>成功会有提示</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/5.png" alt="voltageshift" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="voltageshift" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/i5-8279U黑苹果配置记录/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">voltageshift</span></div></div><h2 id="软件下载"><a class="markdownIt-Anchor" href="#软件下载"></a> 软件下载</h2><h3 id="brew"><a class="markdownIt-Anchor" href="#brew"></a> brew</h3><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_7" value="/bin/zsh -c $(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"><button class="copy-btn" onclick="util.copy(&quot;copy_7&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><h3 id="ntfs-3g"><a class="markdownIt-Anchor" href="#ntfs-3g"></a> NTFS-3g</h3><p>需要预先安装macFUSE<br />依据流程中的介绍，需要另外添加FUSE推荐的包含了可以正常的ntfs-3g的源。</p><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_8" value="brew tap gromgit/homebrew-fuse"><button class="copy-btn" onclick="util.copy(&quot;copy_8&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_9" value="brew install gromgit/fuse/ntfs-3g-mac"><button class="copy-btn" onclick="util.copy(&quot;copy_9&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_10" value="brew install ntfs-3g-mac"><button class="copy-btn" onclick="util.copy(&quot;copy_10&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>或者直接写ntfs-3g-mac，注意名称上与自带的ntfs-3g区分</p><p>Mac下可移动设备的挂载都是在/Volumes目录下进行的</p><ol><li>通过设备文件名称卸载</li></ol><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_11" value="sudo umount /dev/xxxx"><button class="copy-btn" onclick="util.copy(&quot;copy_11&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><ol start="2"><li>使用挂载点目录名称卸载</li></ol><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_12" value="sudo umount /Volumes/xxxx"><button class="copy-btn" onclick="util.copy(&quot;copy_12&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><ol start="3"><li>使用ntfs-3g重新挂载到指定的目录</li></ol><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_13" value="sudo ntfs-3g /dev/xxxx /mnt/xxxx"><button class="copy-btn" onclick="util.copy(&quot;copy_13&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><h3 id="oh-my-zsh"><a class="markdownIt-Anchor" href="#oh-my-zsh"></a> Oh My Zsh</h3><h4 id="安装"><a class="markdownIt-Anchor" href="#安装"></a> 安装</h4><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_14" value="sh -c $(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"><button class="copy-btn" onclick="util.copy(&quot;copy_14&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><h4 id="主题"><a class="markdownIt-Anchor" href="#主题"></a> 主题</h4><blockquote><p>想要完美显示最好安装字体，我安装的是<a target="_blank" rel="noopener" href="https://github.com/ryanoasis/nerd-fonts">JetBrainsMonoNL-NF</a></p></blockquote><p>安装以及应用</p><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_15" value="git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"><button class="copy-btn" onclick="util.copy(&quot;copy_15&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_16" value="open ~/.zshrc"><button class="copy-btn" onclick="util.copy(&quot;copy_16&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><div class="tag-plugin copy"><span>$</span><input class="copy-area" id="copy_17" value="ZSH_THEME=powerlevel10k/powerlevel10k"><button class="copy-btn" onclick="util.copy(&quot;copy_17&quot;,&quot;复制成功&quot;)"><svg class="icon copy-btn" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg></button></div><p>github 有一些网友分享的配置，参考链接如下<br /><a target="_blank" rel="noopener" href="https://github.com/Powerlevel9k/powerlevel9k/wiki/Show-Off-Your-Config">Show Off Your Config</a></p><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>再次制作黑苹果 EFI，虽然 ACPI 补丁没有成功打上，但了解了不少新的东西，ACPI 代码是 BIOS 众多模块中的一部分，我所做的补丁是在修改 BIOS 的硬件描述，让系统明白我有什么硬件设备。感觉这次能开机纯属侥幸，后来在网上看到很多说笔记本需要挂载一大堆驱动并且需要手动调整kext，否则可能出现很多问题甚至开不了机。我后来试过按照网上教程重新调整了kext，结果是无法开机，kext需要顺序可能是和依赖有关系，目前我的顺序看起来并不完美，不过开机不成问题使用都正常就先这样吧~</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考链接</p><ol><li><a target="_blank" rel="noopener" href="https://bbs.pcbeta.com/viewthread-1987318-1-1.html">[变频] 【保姆级cpu睿频教程】解决睿频，让黑苹果更加完美</a></li><li><a target="_blank" rel="noopener" href="https://www.bilibili.com/read/cv13273551/">Mac上安装ntfs-3g过程整理</a></li><li><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/265525597">Oh My Zsh, 『 Powerlevel10k 安装 &amp; 配置 』</a></li></ol></blockquote><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="黑苹果" scheme="https://blog.findingx.cc/tags/%E9%BB%91%E8%8B%B9%E6%9E%9C/"/>
    
    <category term="macOS" scheme="https://blog.findingx.cc/tags/macOS/"/>
    
  </entry>
  
  <entry>
    <title>注册机出现cannot retrieve MAC addre</title>
    <link href="https://blog.findingx.cc/2024/07/28/090828/"/>
    <id>https://blog.findingx.cc/2024/07/28/090828/</id>
    <published>2024-07-28T01:08:28.000Z</published>
    <updated>2025-07-11T01:38:06.150Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>Keyshot注册机破解时出现<code>cannot retrieve MAC addre</code>，网上搜了一圈设置MAC地址的办法都无法解决。添加成功设备管理器的网卡设置已经出现MAC地址了也还是不行。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><p>手上一台win11 pc安装keyshot时出现<code>cannot retrieve MAC addre</code>，用手机有线提供以太网则不会出现问题，最终解决办法如下：</p><ol><li><code>win</code> + <code>R</code> 输入 <code>hdwwiz</code></li><li>点击下一步直到出现<mark class="tag-plugin colorful mark" color="red">安装我手动从列表选择的的硬件(高级)</mark><br />，找到<mark class="tag-plugin colorful mark" color="red">网络适配器</mark></li><li>左侧厂商选择<mark class="tag-plugin colorful mark" color="red">Microsoft</mark>，右侧型号选择<mark class="tag-plugin colorful mark" color="red">Microsoft_KM-TEST环回适配器</mark></li><li>开始安装。重新破解成功不会出现报错</li></ol><p>上网搜了一下这个Microsoft_KM-TEST环回适配器，AI 给出了答案</p><blockquote><p>Microsoft_KM-TEST环回适配器的作用<br />Microsoft_KM-TEST环回适配器（Loopback Adapter）是一种虚拟网络适配器，主要用于在计算机系统中模拟网络连接。它的作用是使计算机可以与自身进行通信，而无需实际的物理网络连接。环回适配器通常用于以下场景：</p><ul><li>网络应用程序测试：通过将网络应用程序配置为使用环回适配器作为目标地址，可以在没有真实网络连接的情况下测试和调试应用程序的功能和性能。</li><li>网络配置测试：使用环回适配器具于测试网络配置，确保计算机的网络配置正确无误。</li><li>软件开发和测试：在开发和测试软件时，环回适配器可以模拟网络环境，帮助开发者在没有真实网络设备的情况下进行测试。</li><li>网络安全：环回适配器可以用于测试和评估计算机的安全性，例如模拟攻击、漏洞扫描等。</li><li>虚拟化环境：在虚拟化环境中，环回适配器可以用作虚拟机之间或虚拟机与物理机之间的内部通信通道，使得虚拟机能够通过该适配器进行内部网络通信，而无需物理网卡的支持。</li><li>网络故障排除：环回适配器也可以在本地计算机上用于诊断和排除网络问题。通过将网络流量通过环回适配器进行循环发送和接收，可以检查网络配置、路由、防火墙设置等是否正常工作.</li></ul></blockquote><!-- <div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>没有文末闲语</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div> --><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="注册机" scheme="https://blog.findingx.cc/tags/%E6%B3%A8%E5%86%8C%E6%9C%BA/"/>
    
    <category term="破解" scheme="https://blog.findingx.cc/tags/%E7%A0%B4%E8%A7%A3/"/>
    
    <category term="mac地址" scheme="https://blog.findingx.cc/tags/mac%E5%9C%B0%E5%9D%80/"/>
    
  </entry>
  
  <entry>
    <title>机器之眼的视神经--卷积算法</title>
    <link href="https://blog.findingx.cc/2024/07/14/220529/"/>
    <id>https://blog.findingx.cc/2024/07/14/220529/</id>
    <published>2024-07-14T14:05:29.000Z</published>
    <updated>2025-07-11T01:38:06.150Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>大学时候，随着学习到的东西越来越多，偶然一次接触到了机器视觉，于是大三和大四基本都在做与机器视觉有关的东西，毕业设计也是依靠谷歌出品的MediaPipe，主要是在于使用MediaPipe进行姿势检测，这篇文章并不是讲解如何做，而是将机器视觉中的算法进行简单的介绍。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><h2 id="卷积神经网络算法的原理"><a class="markdownIt-Anchor" href="#卷积神经网络算法的原理"></a> 卷积神经网络算法的原理</h2><h3 id="卷积计算和卷积核"><a class="markdownIt-Anchor" href="#卷积计算和卷积核"></a> 卷积计算和卷积核</h3><p>先说一个词，卷积核也是在卷积神经网络中必不可少的，卷积核简单理解就是一种特征。我们的大脑在看到一个物体时，是如何知道他是什么的，就是通过一个一个部位的特征组合形成一个完整的图像信息，我们就能判断他是什么。这里的卷积神经网络就是在模仿人类视觉。先看一张图。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/卷积核.png" alt="卷积核" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="卷积核" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/卷积核.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">卷积核</span></div></div><p>这四张分别表示了四种特征</p><p>卷积，这在信号与系统（或者是通信原理，有点记不清了）中有学习到，只不过当初学习的时候是通信中译码和解码时候提到的，没有涉及到机器视觉。接下来讲解一下如何通过卷积计算提取特征矩阵。</p><p>如下图，按照下图方法，将矩阵逐一提取出来与卷积核卷积得出右侧绿色方块中的数值，就像这样</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/卷积神经网络算法.gif" alt="卷积神经网络算法" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="卷积神经网络算法" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/卷积神经网络算法.gif"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">卷积神经网络算法</span></div></div><p>这是结果，数值越高代表这种特征越明显。这里输出的5*5矩阵就是卷积层的面积，而另一个参数厚度指的是有 N 个卷积核对原图进行卷积操作，输出的就是 N 个特征矩阵。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/卷积神经网络算法.png" alt="卷积神经网络算法" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="卷积神经网络算法" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/卷积神经网络算法.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">卷积神经网络算法</span></div></div><h3 id="池化"><a class="markdownIt-Anchor" href="#池化"></a> 池化</h3><p>目的主要是降低数据维度，减少计算量。池化有很多种，这里展示的是最简单的一种，下池化中的最大池化：MaxPool。在本文案例只是一个演示，在实际的图像处理中，数据比这里复杂的多，不仅要考虑图像整体大小，还包括颜色信息，明暗度信息等。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/最大池化.png" alt="最大池化" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="最大池化" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/最大池化.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">最大池化</span></div></div><h3 id="展平与接入连接层-激活"><a class="markdownIt-Anchor" href="#展平与接入连接层-激活"></a> 展平与接入连接层、激活</h3><p>展平操作本质上是一个简单的重排元素的过程，使得原始的多维数据结构能够被后续处理层（如全连接层）接受和处理。例如展成一列，就像神经网络中的全连接层接收的输入。</p><p>这里引用一张图，连接层相当于多个线性变换，也就是图中的隐层</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/接入连接层.png" alt="接入连接层" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="接入连接层" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/接入连接层.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">接入连接层</span></div></div><p>为什么要激活</p><blockquote><p>如果不用激活函数，每一层输出都是上层输入的线性函数，无论神经网络有多少层，输出都是输入的线性组合，这种情况就是最原始的感知机（Perceptron）。使用激活函数能够给神经元引入非线性因素，使得神经网络可以任意逼近任何非线性函数，使深层神经网络表达能力更加强大，这样神经网络就可以应用到众多的非线性模型中。–<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_42691298/article/details/126590726">深度学习中常见的10种激活函数（Activation Function）总结</a></p></blockquote><p>这篇文章讲到了十种激活函数<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_42691298/article/details/126590726">深度学习中常见的10种激活函数（Activation Function）总结</a>。</p><p>常用的激活函数如<code>sigmoid</code>，如果要对概率建模，此函数作为输出非常有用。神经网络经过大量计算输出的结果更可能数值域的范围非常大，这时候就用到激活函数限定输出范围，限定到我们能够处理的范围或者想要处理的范围</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/线性和非线性.jpeg" alt="线性和非线性.jpeg" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="线性和非线性.jpeg" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/线性和非线性.jpeg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">线性和非线性.jpeg</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/1.png" alt="1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/机器之眼的视神经-卷积算法/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">1</span></div></div><p>分类后机器便知道这张图几成概率是物体 1，几成概率是物体 2。</p><p>整个过程相当于从输入分类，神经网络判断这些数据是否具有卷积核的特征值，有理想输出为 1，没有理想输出为 0。</p><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>以上的过程是单层最简单的基于卷积神经网络的机器视觉过程，其实还有许多的步骤在上文中未提及，有些步骤和算法用于加强识别能力或者是降低数据信息等等。卷积神经网络的机器视觉用于图像分类、目标检测、人脸识别和图像生成等任务，这样的技术在十年前就已经出来了，当下使用的更新的算法，并且不止在图像领域，在其他如机器学习，自然语言处理 (NLP)等等。本文可能有部分描述不准确或者与实际算法有偏差或错误，欢迎指正。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><blockquote><p>参考文献与博客：</p><ol><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_42691298/article/details/126590726">深度学习中常见的10种激活函数（Activation Function）总结</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/yuyu_297/article/details/139101610">卷积神经网络（CNN）自学笔记2：卷积层</a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/ThorKing01/article/details/90482242">CNN 理解神经网络中卷积(大小，通道数，深度)</a></li><li><a target="_blank" rel="noopener" href="https://www.cnblogs.com/peachtea/p/13449619.html">【学习笔记】Pytorch深度学习-网络层之池化层、线性层、激活函数层 </a></li><li><a target="_blank" rel="noopener" href="https://blog.csdn.net/xhyu61/article/details/129644692">【学习笔记】计算机视觉与深度学习(2.全连接神经网络)</a></li><li><a target="_blank" rel="noopener" href="https://developer.volcengine.com/articles/7382256324605640754">神经网络算法 - 一文搞懂FFNN（前馈神经网络）</a></li></ol></blockquote><!-- ## _还没写完.._ --><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="卷积" scheme="https://blog.findingx.cc/tags/%E5%8D%B7%E7%A7%AF/"/>
    
    <category term="机器视觉" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89/"/>
    
  </entry>
  
  <entry>
    <title>kindle 越狱+插件安装</title>
    <link href="https://blog.findingx.cc/2024/07/10/143551/"/>
    <id>https://blog.findingx.cc/2024/07/10/143551/</id>
    <published>2024-07-10T06:35:51.000Z</published>
    <updated>2025-07-11T01:38:06.143Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>Kindle已经退出中国市场，有点惋惜，国内账号无法通过自动推送邮箱发送到设备了，之前有翻过一些教程，但是没有越狱成功，今天试了下成功越狱于是有了这篇文章，网上的教程已经很详细了，这里我就不再赘述，分享些教程和网站。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><h2 id="准备"><a class="markdownIt-Anchor" href="#准备"></a> 准备</h2><h3 id="kindle越狱"><a class="markdownIt-Anchor" href="#kindle越狱"></a> Kindle越狱</h3><blockquote><p>链接：<span class="tag-plugin icon colorful" color="accent"><img  src="https://api.iconify.design/solar:link-circle-bold.svg" /></span><a target="_blank" rel="noopener" href="https://bookfere.com/post/406.html">Kindle越狱支持一览：检查 Kindle设备能否越狱</a></p></blockquote><p>我的是kindle8这是教程链接，使用的教程是<a target="_blank" rel="noopener" href="https://bookfere.com/post/1075.html">Kindle 通用越狱教程：适用版本小于等于 5.16.2.1.1 固件</a></p><p>注意这一步，速度要<mark class="tag-plugin colorful mark" color="red">快</mark></p><blockquote><p>依次点击【销售设备→销售】按钮，稍等片刻等待“Kindle按钮示意图”出现；一旦屏幕出现“Kindle按钮示意图”，立即用USB数据线将Kindle连到电脑；</p></blockquote><p>基本上一次成功。</p><div class="tag-plugin swiper fancybox" id="swiper-api" effect="cards"><div class="swiper-wrapper"><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kindle-%E8%B6%8A%E7%8B%B1-%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85/5.jpg" alt="" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kindle-%E8%B6%8A%E7%8B%B1-%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85/1.jpg" alt="" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kindle-%E8%B6%8A%E7%8B%B1-%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85/2.jpg" alt="" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kindle-%E8%B6%8A%E7%8B%B1-%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85/3.jpg" alt="" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kindle-%E8%B6%8A%E7%8B%B1-%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85/4.jpg" alt="" /></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev blur"></div><div class="swiper-button-next blur"></div></div><h3 id="越狱插件"><a class="markdownIt-Anchor" href="#越狱插件"></a> 越狱插件</h3><blockquote><p>Kindle越狱插件：<span class="tag-plugin icon colorful" color="accent"><img  src="https://api.iconify.design/solar:link-circle-bold.svg" /></span><a target="_blank" rel="noopener" href="https://bookfere.com/post/311.html">Kindle越狱插件资源下载及详细安装步骤</a></p></blockquote><p>需要先按照教程安装<code>MobileRead Package Installer (MRPI) — 插件安装器</code>和<code>KUAL — 插件程序启动器</code></p><p>我在安装USBNetwork Hack插件时遇到无法通过ssh访问设备的问题，我同时还参考了<a target="_blank" rel="noopener" href="https://www.znjoa.com/2023/07/26/installing-usbnetwork-on-kindle/">Installing USBNetwork (SSH service) on Kindle</a>中<mark class="tag-plugin colorful mark" color="red">SSH via USB</mark>节提到需要在搜索栏输入<mark class="tag-plugin colorful mark" color="red">;un</mark>才能打开ssh服务。</p><p>安装完之后不得不说上传下载文件真是舒服多了，不用每次通过usb连接。</p><p>另外 python 插件应该是有pip的，可以去python目录下，原本的python库是不带<code>socker</code>的，去Python二进制文件目录下调用pip安装socker即可。后面可以使用pip安装其他库，运行自动化程序。</p><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>通过网上的使用美国亚马逊账号设置设备可以像之前那样推送书籍。一顿操作之后把之前在 <code>documents</code> 的文件都清空了，后悔没有提前备份，有一些用于操作插件的文件也清空了。但是越狱效果还是在，能通过ssh连接设备。重新安装一次<a target="_blank" rel="noopener" href="https://bookfere.com/post/311.html#p_2">KUAL — 插件程序启动器</a>就可以正常使用了。并且多出来的异常文本书籍可以删除，删除后到目前为止没遇到异常。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="kindle" scheme="https://blog.findingx.cc/tags/kindle/"/>
    
  </entry>
  
  <entry>
    <title>Image转RGB565工具</title>
    <link href="https://blog.findingx.cc/2024/07/09/115544/"/>
    <id>https://blog.findingx.cc/2024/07/09/115544/</id>
    <published>2024-07-09T03:55:44.000Z</published>
    <updated>2025-07-11T01:38:06.139Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="写在前面"><a class="markdownIt-Anchor" href="#写在前面"></a> 写在前面</h1><p>一个小工具</p><style>/* 样式用于将标签样式化为按钮 */.custom-button {  display: inline-block;  padding: 10px 20px;  font-size: 16px;  font-weight: bold;  color: #fff;  background-color: #007bff;  border: none;  border-radius: 5px;  cursor: pointer;}/* 隐藏文件选择输入框 */.input-file {  display: none;}</style><script>    // Dither threshold values for each color channel    const ditherThresholdR = [      0, 8, 2, 10,      12, 4, 14, 6,      3, 11, 1, 9,      15, 7, 13, 5    ];    const ditherThresholdG = [      0, 8, 2, 10,      12, 4, 14, 6,      3, 11, 1, 9,      15, 7, 13, 5    ];    const ditherThresholdB = [      0, 8, 2, 10,      12, 4, 14, 6,      3, 11, 1, 9,      15, 7, 13, 5    ];    // Returns the nearest color value    function getClosestColorValue(colorValue) {      return (colorValue >> 2 << 2);    }    /**     * 对图像数据应用抖动算法     *     * @param {Uint8ClampedArray} imageData - 包含图像数据的数组，每个像素为 RGBA 格式     * @param {number} width - 图像的宽度     * @param {number} height - 图像的高度     * @return {Uint8ClampedArray} - 处理后的图像数据数组     */    function dither(imageData, width, height) {      for (let y = 0; y < height; y++) {        for (let x = 0; x < width; x++) {          const pixelIndex = (y * width + x) * 4;          let r = imageData[pixelIndex];          let g = imageData[pixelIndex + 1];          let b = imageData[pixelIndex + 2];          // 获取此像素的抖动阈值索引          const thresholdIndex = ((y & 3) << 2) + (x & 3);          // 将抖动算法应用于每个颜色通道          r = getClosestColorValue(Math.min(r + ditherThresholdR[thresholdIndex], 255));          g = getClosestColorValue(Math.min(g + ditherThresholdG[thresholdIndex], 255));          b = getClosestColorValue(Math.min(b + ditherThresholdB[thresholdIndex], 255));          // 更新 imageData 数组中的像素数据          imageData[pixelIndex] = r;          imageData[pixelIndex + 1] = g;          imageData[pixelIndex + 2] = b;        }      }      return imageData;    }    function handleFileSelect_dither(event) {      console.log("handleFileSelect_dither");      var file = event.target.files[0];      if (!file) {        alert('Please select an image file.');        return;      }      var reader = new FileReader();      reader.onload = function (event) {        var img = new Image();        img.onload = function () {          var canvas = document.createElement('canvas');          var ctx = canvas.getContext('2d');          canvas.width = img.width;          canvas.height = img.height;          ctx.drawImage(img, 0, 0);          var imageData = ctx.getImageData(0, 0, img.width, img.height);          var data = imageData.data;                    data_B = dither(data, img.width,img.height);          var rgb565Array = [];          for (var i = 0; i < data_B.length; i += 4) {            var r = data_B[i];            var g = data_B[i + 1];            var b = data_B[i + 2];            // Convert RGB888 to RGB565            var r5 = (r >> 3) & 0x1F;            var g6 = (g >> 2) & 0x3F;            var b5 = (b >> 3) & 0x1F;            var rgb565 = (r5 << 11) | (g6 << 5) | b5;            rgb565Array.push(rgb565);          }          var width = img.width;          var height = img.height;          // var rgb565Array_B = [];          // Generate C array output          var cArray = 'const uint16_t image[' + height + '][' + width + '] = {\n';          for (var row = 0; row < height; row++) {            cArray += '  {';            for (var col = 0; col < width; col++) {              var index = row * width + col;              cArray += '0x' + rgb565Array[index].toString(16);              if (col < width - 1) {                cArray += ', ';              }            }            cArray += '}';            if (row < height - 1) {              cArray += ',\n';            } else {              cArray += '\n';            }          }          cArray += '};';          // Save to text file          var blob = new Blob([cArray], {            type: 'text/plain'          });          var url = URL.createObjectURL(blob);          var a = document.createElement('a');          a.href = url;          a.download = 'image_data.c';          document.body.appendChild(a);          a.click();          document.body.removeChild(a);          URL.revokeObjectURL(url);        };        img.src = event.target.result;      };      reader.readAsDataURL(file);    }    function handleFileSelect_no_dither(event) {      console.log("handleFileSelect_no_dither");      var file = event.target.files[0];      if (!file) {        alert('Please select an image file.');        return;      }      var reader = new FileReader();      reader.onload = function (event) {        var img = new Image();        img.onload = function () {          var canvas = document.createElement('canvas');          var ctx = canvas.getContext('2d');          canvas.width = img.width;          canvas.height = img.height;          ctx.drawImage(img, 0, 0);          var imageData = ctx.getImageData(0, 0, img.width, img.height);          var data = imageData.data;                    data_B = data;          var rgb565Array = [];          for (var i = 0; i < data_B.length; i += 4) {            var r = data_B[i];            var g = data_B[i + 1];            var b = data_B[i + 2];            // Convert RGB888 to RGB565            var r5 = (r >> 3) & 0x1F;            var g6 = (g >> 2) & 0x3F;            var b5 = (b >> 3) & 0x1F;            var rgb565 = (r5 << 11) | (g6 << 5) | b5;            rgb565Array.push(rgb565);          }          var width = img.width;          var height = img.height;          // var rgb565Array_B = [];          // Generate C array output          var cArray = 'const uint16_t image[' + height + '][' + width + '] = {\n';          for (var row = 0; row < height; row++) {            cArray += '  {';            for (var col = 0; col < width; col++) {              var index = row * width + col;              cArray += '0x' + rgb565Array[index].toString(16);              if (col < width - 1) {                cArray += ', ';              }            }            cArray += '}';            if (row < height - 1) {              cArray += ',\n';            } else {              cArray += '\n';            }          }          cArray += '};';          // Save to text file          var blob = new Blob([cArray], {            type: 'text/plain'          });          var url = URL.createObjectURL(blob);          var a = document.createElement('a');          a.href = url;          a.download = 'image_data.c';          document.body.appendChild(a);          a.click();          document.body.removeChild(a);          URL.revokeObjectURL(url);        };        img.src = event.target.result;      };      reader.readAsDataURL(file);    }</script>  <!-- 使用label来包裹input --><p><label for="fileInput_dither" class="custom-button">Choose File(带有抖动)</label><br /><input type="file" id="fileInput_dither" class="input-file" accept="image/*" onchange="handleFileSelect_dither(event)"></p><p><label for="fileInput_no_dither" class="custom-button">Choose File</label><br /><input type="file" id="fileInput_no_dither" class="input-file" accept="image/*" onchange="handleFileSelect_no_dither(event)"></p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="RGB565" scheme="https://blog.findingx.cc/tags/RGB565/"/>
    
  </entry>
  
  <entry>
    <title>DIY PC机副屏</title>
    <link href="https://blog.findingx.cc/2024/07/01/184130/"/>
    <id>https://blog.findingx.cc/2024/07/01/184130/</id>
    <published>2024-07-01T10:41:30.000Z</published>
    <updated>2025-07-11T01:38:06.151Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>前段时间自己做了一套M910X的亚克力外壳，设计之初考虑到侧面能够添加自己的副屏，再加上曾做过点阵RGB，于是也设置了防止RGB点阵的位置。最初的想法是在这个设备上显示视频，但是刷新率太低了，没有做到 24fps ，放弃了显示视频，转而用了一个简单的PC机副屏，显示一些电脑性能信息，比如CPU频率，内存使用情况，硬盘使用情况，网络情况等等。另外这个副屏外面还做了一圈 RGB。<br />这个副屏由这几个部分组成，四块 SPI ST7735 屏幕（160*128*4）和一圈ws2812b 灯珠组成，主控是 STM32F103C8T6 和 ESP8266组成。stm32 主要作用是控制屏幕刷新和点亮 RGB ，esp8266 主要作用是通过串口发送 json 数据，让 STM32 解析显示。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><p>这个副屏由这几个部分组成，四块 SPI ST7735 屏幕（160*128*4）和一圈ws2812b 灯珠组成，主控是 STM32F103C8T6 和 ESP8266组成。stm32 主要作用是控制屏幕刷新和点亮 RGB ，esp8266 主要作用是通过串口发送 json 数据，让 STM32 解析显示。</p><div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));"><div class="cell" style="">    <div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));"><div class="cell" style="">    <div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));"></div>    </div>    <div class="cell" style="">    <div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));"><div class="cell" style="">    <div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/3.jpg" alt="飞线" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="飞线" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/3.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">飞线</span></div></div>    </div>    </div>    </div>    </div>    </div>    <div class="cell" style="">    <div class="tag-plugin grid"  style="grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));"><div class="cell" style="">    <div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/1.jpg" alt="亚克力外壳" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="亚克力外壳" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/1.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">亚克力外壳</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/4.jpg" alt="亚克力外壳" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="亚克力外壳" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/4.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">亚克力外壳</span></div></div>    </div>    </div>    </div>    </div><p><strong>下面是副屏</strong></p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/2.jpg" alt="副屏" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="副屏" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/2.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">副屏</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/UI.jpg" alt="副屏UI" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="副屏UI" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/UI.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">副屏UI</span></div></div><h2 id="硬件部分"><a class="markdownIt-Anchor" href="#硬件部分"></a> 硬件部分</h2><p>SPI ST7735这部分硬件设计，四块屏幕共用一组SPI，通过不同的CS来控制不同的屏幕显示。原本有做背光控制，但是买回来的屏幕上电后背光默认开启，有面有空再研究研究啥情况。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/12.png" alt="12" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="12" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/12.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">12</span></div></div><p>layout</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/11.png" alt="11" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="11" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/11.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">11</span></div></div><p>3D 图</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/3D_左侧USB3.0拓展卡.png" alt="3D_左侧USB3.0拓展卡" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="3D_左侧USB3.0拓展卡" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/3D_左侧USB3.0拓展卡.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">3D_左侧USB3.0拓展卡</span></div></div><h3 id="关于背光控制电路"><a class="markdownIt-Anchor" href="#关于背光控制电路"></a> 关于背光控制电路</h3><p>背光控制需要使用pwm调光，买回来的屏幕问了客服说不支持调光，我看了下lcd的板子，上面的背光电路被强行打开了，所以调不了。重新返工屏上线路后如下图，左侧是修改前，右侧是修改后 + 板上电路。将<code>R148</code>与<code>3V3</code>断开，<code>BLK</code>引脚连接主板控制引脚。当<code>BL_CTRL_PWM</code>为低电平时 <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>U</mi><mrow><mi>G</mi><mi>S</mi></mrow></msub><mo>&lt;</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">U_{GS}&lt;0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.10903em;">U</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.10903em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">G</span><span class="mord mathdefault mtight" style="margin-right:0.05764em;">S</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">&lt;</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span> ，有压差导通，<code>BLK</code>信号高电平。裸屏背光信号<code>BL</code>与<code>GND</code>导通，有电流流过，背光亮，反之背光暗。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/pwm调背光.png" alt="pwm调背光" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="pwm调背光" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/pwm调背光.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">pwm调背光</span></div></div><h2 id="软件部分"><a class="markdownIt-Anchor" href="#软件部分"></a> 软件部分</h2><h3 id="时序设计"><a class="markdownIt-Anchor" href="#时序设计"></a> 时序设计</h3><p>第一次做时序打算使用GPIO外部中断，但实际测试，想用GPIO外部中断，发现中断触发时序概率性错乱导致卡死，所以换成了串口中断。</p><details class="tag-plugin colorful folding" color="red"><summary><span>这是条失败的路</span></summary><div class="body"><h4 id="时序框图"><a class="markdownIt-Anchor" href="#时序框图"></a> 时序框图</h4><p>这个时序框图不是完整的，有些细节部分没有写出来，但是大致思路是这样</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/时序.png" alt="时序框图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="时序框图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/时序.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">时序框图</span></div></div><p>这是实际时序</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/6.png" alt="时序" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="时序" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">时序</span></div></div><h4 id="调试过程"><a class="markdownIt-Anchor" href="#调试过程"></a> 调试过程</h4><p>过程中遇到些许问题，有时候调得头皮发麻，一整天愣是解不出来</p><p>下图是第一次进入中断时也就是发送字符长度的时候</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/5.png" alt="Debug1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Debug1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Debug1</span></div></div><p>放大之后是这样的</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/7.png" alt="Debug1放大" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Debug1放大" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/7.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Debug1放大</span></div></div><p>中断进入debug ，奇怪的是我的代码中串口发送是写在进入STM32 触发中断（GPIO6 边沿触发）后的</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/8.png" alt="esp8266片段代码截图 1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="esp8266片段代码截图 1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/8.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">esp8266片段代码截图 1</span></div></div><p>实际效果不影响 STM32 串口接收数据。这是实际效果</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/10.png" alt="STM32 串口接收数据" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="STM32 串口接收数据" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/10.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">STM32 串口接收数据</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/9.png" alt="实际效果 1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="实际效果 1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/9.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">实际效果 1</span></div></div></div></details><p>下面讲成功的时序</p><h4 id="时序总图"><a class="markdownIt-Anchor" href="#时序总图"></a> 时序总图</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/时序总图.png" alt="时序总图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="时序总图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/时序总图.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">时序总图</span></div></div><p>时序大概是这样：</p><ul><li>8266：上电初始化-&gt;连接WiFi-&gt;主循环侦测UDP连接</li><li>STM32： 上电初始化-&gt;打开串口中断-&gt;进入主循环显示</li></ul><h4 id="调试过程"><a class="markdownIt-Anchor" href="#调试过程"></a> 调试过程</h4><h5 id="上电瞬间及初始化"><a class="markdownIt-Anchor" href="#上电瞬间及初始化"></a> 上电瞬间及初始化</h5><div class="tag-plugin colorful note" color="blue"><div class="body"><p>此处解决8266上电过程中串口有段杂波干扰STM32串口接收</p></div></div><p>上电瞬间ESP8266串口会有一小段杂波，最初做GPIO外部中断就是为了避免这部分，但是最终想了很多办法没有解决。如下图D1通道，前面一小段就是杂波。右边的两小段下拉是连接Wi-Fi时发送的数据<code>.</code>。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/上电瞬间时序总图.png" alt="上电瞬间时序总图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="上电瞬间时序总图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/上电瞬间时序总图.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">上电瞬间时序总图</span></div></div><p>这里是初始化HAL库函数和四块屏幕后，进入while循环前的代码，可以看到右侧2处D1和D0通道就是串口中断产生的结果，由于一次直接收一个字符，所以把异常数据都挤掉了。猜测1处可能是拉高后打开了 串口中断，进入中断后又被拉低了。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/上电初始化时序.png" alt="上电初始化时序" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="上电初始化时序" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/上电初始化时序.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">上电初始化时序</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/代码截图1.png" alt="代码截图1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="代码截图1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/代码截图1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">代码截图1</span></div></div><p>下面是中断放大后的时序图以及对应的代码，高电平一直触发单个字节接收中断。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/时序代码截图_1.png" alt="时序代码截图_1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="时序代码截图_1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/时序代码截图_1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">时序代码截图_1</span></div></div><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 高电平 接收数据 */</span></span><br><span class="line"><span class="keyword">if</span> (pin_pb6_value == <span class="number">1</span>) &#123;</span><br><span class="line"><span class="comment">/* 回复8266，GPIO拉底 解锁 已经完成第一字节串口接收 */</span></span><br><span class="line">HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, &amp;USART_RX_LINE,</span><br><span class="line">atoi(USART_RX_ONE_LINE) + <span class="number">1</span>, <span class="number">100</span>);</span><br><span class="line"></span><br><span class="line">CS++;</span><br><span class="line"><span class="keyword">if</span>(CS&gt;<span class="number">4</span>)&#123;</span><br><span class="line">CS = <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 串口中断开启接收长度 1 */</span></span><br><span class="line">HAL_UART_Receive_IT(&amp;huart2, &amp;USART_RX_ONE_LINE_LEN, <span class="number">1</span>);</span><br><span class="line"></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h5 id="串口中断部分"><a class="markdownIt-Anchor" href="#串口中断部分"></a> 串口中断部分</h5><p>这是串口中断部分时序</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图.png" alt="串口中断放大图" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="串口中断放大图" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">串口中断放大图</span></div></div><details class="tag-plugin colorful folding" child="codeblock"><summary><span>串口中断代码片段</span></summary><div class="body"><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/****************************************************************************</span></span><br><span class="line"><span class="comment"> * 函数名: HAL_UART_RxCpltCallback()</span></span><br><span class="line"><span class="comment"> * 功 能: 串口中断函数</span></span><br><span class="line"><span class="comment"> * 输 入: None</span></span><br><span class="line"><span class="comment"> * 全局变量 ALL</span></span><br><span class="line"><span class="comment"> * 输 出: 无</span></span><br><span class="line"><span class="comment"> */</span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">HAL_UART_RxCpltCallback</span><span class="params">(UART_HandleTypeDef *huart)</span> &#123;</span><br><span class="line"><span class="keyword">if</span> (huart-&gt;Instance == USART2) <span class="comment">// ???????????? USART1</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;IN UART_RxCpltCallback\n&quot;</span>, <span class="number">23</span>, <span class="number">100</span>);</span><br><span class="line"><span class="comment">/*判断 PB6 为上升或下降沿触发*/</span></span><br><span class="line">pin_pb6_value = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6);</span><br><span class="line"><span class="comment">/* 高电平 接收数据 */</span></span><br><span class="line"><span class="keyword">if</span> (pin_pb6_value == <span class="number">1</span>) &#123;</span><br><span class="line"><span class="comment">/* 回复8266，GPIO拉底 解锁 已经完成第一字节串口接收 */</span></span><br><span class="line">HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, &amp;USART_RX_LINE,</span><br><span class="line">atoi(USART_RX_ONE_LINE) + <span class="number">1</span>, <span class="number">100</span>);</span><br><span class="line">CS++;</span><br><span class="line"><span class="keyword">if</span> (CS &gt; <span class="number">4</span>) &#123;</span><br><span class="line">CS = <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* 串口中断开启接收长度 1 */</span></span><br><span class="line">HAL_UART_Receive_IT(&amp;huart2, &amp;USART_RX_ONE_LINE_LEN, <span class="number">1</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* 低电平 接收长度 */</span></span><br><span class="line"><span class="keyword">if</span> (pin_pb6_value == <span class="number">0</span>) &#123;</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;pin_pb6_value == 0\n&quot;</span>, <span class="number">19</span>, <span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 回复8266，GPIO拉底 解锁 已经完成第一字节串口接收 */</span></span><br><span class="line">HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;GPIO7 DOWN\n&quot;</span>, <span class="number">11</span>, <span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 串口 2 接收长度2 */</span></span><br><span class="line">HAL_UART_Receive(&amp;huart2, &amp;USART_RX_ONE_LINE,</span><br><span class="line">atoi(USART_RX_ONE_LINE_LEN) + <span class="number">2</span>, <span class="number">0xFFFF</span>);</span><br><span class="line"><span class="comment">/* 回复8266，GPIO拉高 已经完成第二字节串口接收 */</span></span><br><span class="line">HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;GPIO7 UP\n&quot;</span>, <span class="number">9</span>, <span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;\n############################\n&quot;</span>, <span class="number">30</span>,</span><br><span class="line"><span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, &amp;USART_RX_ONE_LINE_LEN, <span class="number">1</span>, <span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;\n############################\n&quot;</span>, <span class="number">30</span>,</span><br><span class="line"><span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, &amp;USART_RX_ONE_LINE,</span><br><span class="line">atoi(USART_RX_ONE_LINE_LEN) + <span class="number">2</span>, <span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 串口 1debug */</span></span><br><span class="line">HAL_UART_Transmit(&amp;huart1, <span class="string">&quot;\n############################\n&quot;</span>, <span class="number">30</span>,</span><br><span class="line"><span class="number">100</span>);</span><br><span class="line"><span class="comment">/* 开启下一次接收数据内容中断 */</span></span><br><span class="line">HAL_UART_Receive_IT(&amp;huart2, &amp;USART_RX_LINE,</span><br><span class="line">atoi(USART_RX_ONE_LINE) + <span class="number">2</span>);</span><br><span class="line">&#125;</span><br><span class="line">&#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure></div></details><p>下面是三个串口数据发送过程</p><h6 id="第一步"><a class="markdownIt-Anchor" href="#第一步"></a> 第一步</h6><p>获取<emp>数据长度的长度</emp></p><div class="tag-plugin colorful note" color="yellow"><div class="body"><p>预发送长度为1045长度的字符串，1045的长度为4，这里指的就是4</p></div></div><p>ESP8266 拉低 GPIO6 做准备，接着ESP8266发送串口数据触发STM32串口中断。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图1.png" alt="串口中断放大图1" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="串口中断放大图1" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">串口中断放大图1</span></div></div><h6 id="第二步"><a class="markdownIt-Anchor" href="#第二步"></a> 第二步：</h6><p>获取<emp>数据的长度</emp></p><p>上一步完成接收进入中断，STM32拉高GPIO7，进入阻塞串口接收，此时ESP8266（串口中断放大图2）ESP8266等待100ms后发送数据长度，STM32接收完成拉高GPIO7，ESP8266退出死循环进入下一步发送数据内容。STM32退出中断前打开串口中断，准备接收数据。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图2.png" alt="串口中断放大图2" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="串口中断放大图2" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">串口中断放大图2</span></div></div><p>对ESP8266应代码如下，等待GPIO7被拉高。</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 打印长度 尾部带有\r</span></span><br><span class="line">Serial.<span class="built_in">print</span>(<span class="built_in">static_cast</span>&lt;<span class="type">int</span>&gt;(<span class="built_in">strlen</span>(substring)));</span><br><span class="line"></span><br><span class="line"><span class="built_in">delay</span>(<span class="number">100</span>);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 打印长度</span></span><br><span class="line">Serial.<span class="built_in">println</span>(Tcp_len);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 等待STM32响应，调试需注释</span></span><br><span class="line"><span class="keyword">while</span> (!<span class="built_in">digitalRead</span>(<span class="number">4</span>)) &#123;  <span class="comment">//等待响应</span></span><br><span class="line">  <span class="built_in">delay</span>(<span class="number">80</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h6 id="第三步"><a class="markdownIt-Anchor" href="#第三步"></a> 第三步：</h6><p>获取<emp>数据内容</emp></p><p>上一步GPIO7被拉高后，ESP8266发送数据内容，STM32进入串口中断，识别到GPIO7为高，拉低GPIO7，打开串口中断，STM32准备接收下一次数据长度的长度。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图3.png" alt="串口中断放大图3" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="串口中断放大图3" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/用STM32和ESP8266做一个PC机附屏-纯娱乐/串口中断放大图3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">串口中断放大图3</span></div></div><p>时序设计部分到这里就结束了。</p><h3 id="ui"><a class="markdownIt-Anchor" href="#ui"></a> UI</h3><p>UI部分是直接使用st7735驱动中自带的，简单做了下，自己做的部分主要是换字体，换成了霞鹜文楷等宽。这部分我没有去看具体显示文本的流程，暂时阶段是能用就行。</p><p>关于图像显示，我在<a target="_blank" rel="noopener" href="https://hp-l.github.io/2024/07/09/115544/">Image转RGB565工具</a>放了两个摁钮，可以将RGB图像转成RGB565的字符串，目前颜色部分好像还是有点问题（原本蓝色在屏上会显示出绿色），但是基本形状是正确的。</p><div class="tag-plugin link dis-select"><a class="link-card plain" title="Image转RGB565工具" href="https://hp-l.github.io/2024/07/09/115544/" target="_blank" rel="external nofollow noopener noreferrer" cardlink autofill=""><div class="left"><span class="title">Image转RGB565工具</span><span class="cap link footnote">https://hp-l.github.io/2024/07/09/115544/</span></div><div class="right"><div class="lazy img" data-bg="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/headimg/headimg_34.png"></div></div></a></div><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>久违的代码激情占用了几乎所有的时间，后面的慢慢更新固件吧，第一次做了一个完整的双主控项目。其实一个PC机也是如此，CPU是主控，微控制器也是主控，较老的机型还分南北桥，相互访问的桥梁就是PCB上的电路。说起来PC很复杂，但也很简单。</p></div><div class="line"><p>公元2024年了，科技越来越进步，我想，CPU的终极形态是将一切的一切集成起来吧，ssd，内存，显卡，wifi等等外设，也不知道那是硬件工程师会不会失业哈哈哈哈哈哈哈。也许想得太多太远，当下还应好好进步，在深度学习和智能AI的时代，layout可能会被替代，那时会不会机器人能自建工厂自行组装呢。。。就好像生物的繁衍一样。。。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="作品" scheme="https://blog.findingx.cc/categories/%E4%BD%9C%E5%93%81/"/>
    
    
    <category term="ESP8266" scheme="https://blog.findingx.cc/tags/ESP8266/"/>
    
    <category term="STM32" scheme="https://blog.findingx.cc/tags/STM32/"/>
    
    <category term="HAL" scheme="https://blog.findingx.cc/tags/HAL/"/>
    
  </entry>
  
  <entry>
    <title>ADC上是否要加旁路电容</title>
    <link href="https://blog.findingx.cc/2024/05/08/054333/"/>
    <id>https://blog.findingx.cc/2024/05/08/054333/</id>
    <published>2024-05-07T21:43:33.000Z</published>
    <updated>2025-07-11T01:38:06.137Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>之所以写这篇博客，是调试能源卡程序的时候发现ADC的数值总是高了那么一点，而且如果循环检测时，两次检测读取的时间必须大于1000ms，否则会出现读取数据无变化的情况。但是用示波器或者万用表点ADC这条线，不需要延时1000ms也能够快速响应进行ADC检测了。上网查阅了相关信息初步得出一个结论：<mark class="tag-plugin colorful mark" color="yellow">ADC硬件线路最好加上旁路电容</mark>，否则会出现上述情况。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><h2 id="参考"><a class="markdownIt-Anchor" href="#参考"></a> 参考</h2><p>电池电压检测在ADC引脚采样，使用旁路电容可以降低噪声。实际测量中发现，为添加时，电压略微偏高，添加电容后电压稳定。</p><div class="tag-plugin link dis-select"><a class="link-card plain" title="电容（2）旁路电容工作原理深度解析" href="https://www.cnblogs.com/sunshine-jackie/p/8324709.html" target="_blank" rel="external nofollow noopener noreferrer" cardlink autofill="icon"><div class="left"><span class="title">电容（2）旁路电容工作原理深度解析</span><span class="cap link footnote">https://www.cnblogs.com/sunshine-jackie/p/8324709.html</span></div><div class="right"><div class="lazy img" data-bg="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/link/8f277b4ee0ecd.svg"></div></div></a></div><div class="tag-plugin link dis-select"><a class="link-card plain" title="【STM32学习】ADC（一）—— STM32 内置 AD 模块框图" href="https://blog.csdn.net/challenglistic/article/details/132311833" target="_blank" rel="external nofollow noopener noreferrer" cardlink autofill="icon"><div class="left"><span class="title">【STM32学习】ADC（一）—— STM32 内置 AD 模块框图</span><span class="cap link footnote">https://blog.csdn.net/challenglistic/article/details/132311833</span></div><div class="right"><div class="lazy img" data-bg="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/link/8f277b4ee0ecd.svg"></div></div></a></div><h2 id="添加旁路电容的原因"><a class="markdownIt-Anchor" href="#添加旁路电容的原因"></a> 添加旁路电容的原因</h2><blockquote><p>高低电平变换时间越短，则产生的谐波（高频）成分越丰富，因此，低速开关并不意味着高频成分少，信号频率为1MHz方波存在的高频谐波成分比同频率正弦波要高得多，因为方波的高低电平切换时间非常短，而正弦波则相对非常缓慢。【<a target="_blank" rel="noopener" href="https://www.cnblogs.com/sunshine-jackie/p/8324709.html">电容（2）旁路电容工作原理深度解析</a>】</p></blockquote><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ADC上是否要加旁路电容/1.png" alt="adc" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="adc" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ADC上是否要加旁路电容/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">adc</span></div></div><p>简单来说，STM32（其他MCU应该也是类似的）ADC通过开关打开，连接之后就可以通过运放检测电压了，这是开关打开与关闭就像上面所说，低速开关并不意味着高频成分少，自然会产生高频噪声，这是旁路电容就起到了除噪声的作用，<a target="_blank" rel="noopener" href="https://www.cnblogs.com/sunshine-jackie/p/8324709.html">参考链接</a>中说到，IC中存在大量运放，所有的VDD全部同源时，这样的高频信号叠加起来便会产生杂乱的噪声，影响VDD原本干净的电压。</p><blockquote><p>也就是说，其它门的噪声电压（也称为共路噪声）被传递到门A的输出端，同一时间逻辑切换越多则产生的共路噪声越大，一旦叠加在VDD上的共路噪声超过芯片的噪声容限，电路因无法有效地判断高低电平而导致异常【<a target="_blank" rel="noopener" href="https://www.cnblogs.com/sunshine-jackie/p/8324709.html">电容（2）旁路电容工作原理深度解析</a>】</p></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ADC" scheme="https://blog.findingx.cc/tags/ADC/"/>
    
  </entry>
  
  <entry>
    <title>DIY 联网RGB万年历</title>
    <link href="https://blog.findingx.cc/2024/05/04/152534/"/>
    <id>https://blog.findingx.cc/2024/05/04/152534/</id>
    <published>2024-05-04T07:25:34.000Z</published>
    <updated>2025-07-11T01:38:06.147Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>今年一月份整理元件箱的时候发现了一个8位RGB灯条，想起网上前段时间流行的 WIFI 像素时钟：LaMetric</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/https://lametric.com/sites/default/files/2020-05/desktop.%20jpg.jpg" alt="LaMetric" /></p><p>正好可以巩固一下曾经写代码的快乐时光，开搞！！手上的灯珠比较大，当时也没有仔细考虑工业设计，就打算做个能用的就行。</p><p>下面做了个简单的第一版，其实真的可以优化很多地方，看完不要笑😂😂😂，但是懒得搞了，先用着再说</p><p>硬件创造世界，软件让世界更美好，硬件底层搭好了，软件能实现出各种各样的功能，优化人类体验。</p><div class="tag-plugin swiper fancybox" id="swiper-api" width="max" effect="cards"><div class="swiper-wrapper"><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/8.jpg" alt="8.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/9.jpg" alt="9.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/1.png" alt="1.png" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/2.jpg" alt="2.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/3.jpg" alt="3.jpg" /></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev blur"></div><div class="swiper-button-next blur"></div></div><p>调试的时候拍的</p><div class="tag-plugin swiper fancybox" id="swiper-api" width="max" effect="cards"><div class="swiper-wrapper"><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/4.jpg" alt="4.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/5.jpg" alt="5.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/6.jpg" alt="6.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E8%87%AA%E5%8A%A8%E8%BF%9C%E7%A8%8B%E6%9B%B4%E6%96%B0%E7%9A%84RGB%E4%B8%87%E5%B9%B4%E5%8E%86/7.jpg" alt="7.jpg" /></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev blur"></div><div class="swiper-button-next blur"></div></div><h2 id="硬件设计"><a class="markdownIt-Anchor" href="#硬件设计"></a> 硬件设计</h2><p>硬件设计其实比较简单，我懒到电源直接买了整个模块搭上去。。。就是PCB正面左边二维码区域，PCB正面右边就是8266模块了，背面的是陀螺仪的降压IC</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/制作一个自动远程更新的RGB万年历/2.png" alt="PCB正面" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">PCB正面</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/制作一个自动远程更新的RGB万年历/3.png" alt="PCB背面" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">PCB背面</span></div></div><h3 id="原理图"><a class="markdownIt-Anchor" href="#原理图"></a> 原理图</h3><p>硬件预留了18650电池和电量检测部分电路，软件没有还没有做</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/制作一个自动远程更新的RGB万年历/4.png" alt="原理图1" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">原理图1</span></div></div><p>这个小项目 RGB 灯有 100 个，也就是<code>10 * 10 = 100</code>的点阵，当时没想那么多，结果就是很多图像没有办法展示出来了，LaMetric可是 <code>4 * 8 * 8 = 256</code>像素的，按照设计第一版有预留电容，但是背面的图案太不好看了，就直接拿掉了（按道理加电容更加稳定），一百个灯珠，焊接是真的累😮‍💨</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/制作一个自动远程更新的RGB万年历/5.png" alt="原理图2" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">原理图2</span></div></div><h3 id="功耗测试"><a class="markdownIt-Anchor" href="#功耗测试"></a> 功耗测试</h3><p>实际测试发现，运行彩虹流水灯，也就是功耗拉满的时候过 RGB 灯珠电流达到了 0.9A 左右，也就是5V*09.A=4.5W了，功耗比较高了，再测了测发热量满载都50°C了</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/制作一个自动远程更新的RGB万年历/1.jpg" alt="温度" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">温度</span></div></div><h2 id="软件设计"><a class="markdownIt-Anchor" href="#软件设计"></a> 软件设计</h2><p>代码是arduino写的，写了两千多行，代码长了点，不太好展示，基本逻辑就是控制RGB显示图案出来。</p><p>下面展示几个联网跟新的操作</p><h3 id="联网抓取json文件"><a class="markdownIt-Anchor" href="#联网抓取json文件"></a> 联网抓取json文件</h3><p>每天检测两次，看是否有固件更新，一但有就马上判断进入OTA了</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/制作一个自动远程更新的RGB万年历/6.png" alt="获取更新" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">获取更新</span></div></div><p>文件格式如下：</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;app_version_X&quot;</span><span class="punctuation">:</span> <span class="number">0</span><span class="punctuation">,</span> <span class="comment">//主版本号</span></span><br><span class="line">    <span class="attr">&quot;app_version_Y&quot;</span><span class="punctuation">:</span> <span class="number">0</span><span class="punctuation">,</span> <span class="comment">//子版本号</span></span><br><span class="line">    <span class="attr">&quot;app_version_Z&quot;</span><span class="punctuation">:</span> <span class="number">5</span><span class="punctuation">,</span> <span class="comment">//阶段版本号</span></span><br><span class="line">    <span class="attr">&quot;update&quot;</span><span class="punctuation">:</span> <span class="number">1</span><span class="punctuation">,</span> <span class="comment">//更新锁</span></span><br><span class="line">    <span class="attr">&quot;MUST_update&quot;</span><span class="punctuation">:</span> <span class="number">0</span> <span class="comment">//强制更新</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><h3 id="通过http网址跟新固件"><a class="markdownIt-Anchor" href="#通过http网址跟新固件"></a> 通过http网址跟新固件</h3><p>就这个功能函数我找了好久，网上大部分都是 arduino IDE 更新固件，要不就是局域网跟新，自己整合了一段时间，打包了一个函数，直接拿去使用，记得需要添加头文件</p><p>下面这段是更新固件的百分数，实现每增加1%就亮一个灯。</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">strip.<span class="built_in">setPixelColor</span>(((progress / (total / <span class="number">100</span>))) - <span class="number">1</span>, (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span> * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>);</span><br></pre></td></tr></table></figure><p>而<code>http://V1_0_1_beta.bin</code>可以替换成自己的固件链接</p><p>完整函数如下：</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//必备的头文件</span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ESP8266WiFi.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ESP8266httpUpdate.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 功能：联网下载固件文件OTA</span></span><br><span class="line"><span class="comment"> * @param NONE</span></span><br><span class="line"><span class="comment"> * @return NONE</span></span><br><span class="line"><span class="comment"> * @example https_OTA();</span></span><br><span class="line"><span class="comment"> * @note NONE</span></span><br><span class="line"><span class="comment"> * @link https://zhuanlan.zhihu.com/p/435855807</span></span><br><span class="line"><span class="comment"> * @history</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-05 初始版本，未能实现功能</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-08 更新变量 UpdateClient，成功升级</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">https_OTA</span><span class="params">()</span> </span>&#123;</span><br><span class="line">  <span class="built_in">RGB_GFX_PIC</span>(up_date);</span><br><span class="line">  <span class="keyword">while</span> (<span class="number">1</span>) &#123;</span><br><span class="line">    <span class="comment">// 设置回调函数以获取下载进度</span></span><br><span class="line">    ESPhttpUpdate.<span class="built_in">onProgress</span>([](<span class="type">int</span> progress, <span class="type">int</span> total) &#123;</span><br><span class="line">      <span class="comment">//注释打印 Serial.printf(&quot;Progress: %d%%\n&quot;, (progress * 100) / total);</span></span><br><span class="line">      strip.<span class="built_in">setPixelColor</span>(((progress / (total / <span class="number">100</span>))) - <span class="number">1</span>, (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span> * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>);</span><br><span class="line">      strip.<span class="built_in">show</span>();</span><br><span class="line">    &#125;);</span><br><span class="line"></span><br><span class="line">    t_httpUpdate_return ret = ESPhttpUpdate.<span class="built_in">update</span>(UpdateClient, <span class="string">&quot;http://V1_0_1_beta.bin&quot;</span>);</span><br><span class="line">    <span class="keyword">switch</span> (ret) &#123;</span><br><span class="line">      <span class="keyword">case</span> HTTP_UPDATE_OK:</span><br><span class="line">        <span class="comment">//注释打印 Serial.println(&quot;Firmware updated successfully&quot;);</span></span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">      <span class="keyword">case</span> HTTP_UPDATE_FAILED:</span><br><span class="line">        <span class="comment">//注释打印 Serial.println(&quot;Firmware update failed&quot;);</span></span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">      <span class="keyword">case</span> HTTP_UPDATE_NO_UPDATES:</span><br><span class="line">        <span class="comment">//注释打印 Serial.println(&quot;No firmware updates available&quot;);</span></span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">      <span class="keyword">default</span>:</span><br><span class="line">        <span class="comment">//注释打印 Serial.printf(&quot;Firmware update error %d\n&quot;, ret);</span></span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>除了网络信号不好之外，没有出过一次差错，这个小玩意就这样放在那里稳定地运行着。这个版本后续没有再做了，算是一次尝试，毕业后第一次捡回了嵌入式编程，回顾下大学那会敲代码的快乐时光。才几个月没有动，基本上是重新学了，这老本行不能就这样丢了呀，以后再多做些好玩的项目练练手。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="作品" scheme="https://blog.findingx.cc/categories/%E4%BD%9C%E5%93%81/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="ws2812b" scheme="https://blog.findingx.cc/tags/ws2812b/"/>
    
    <category term="esp8266" scheme="https://blog.findingx.cc/tags/esp8266/"/>
    
  </entry>
  
  <entry>
    <title>蒸汽核心能源卡诞生日</title>
    <link href="https://blog.findingx.cc/2024/04/27/233524/"/>
    <id>https://blog.findingx.cc/2024/04/27/233524/</id>
    <published>2024-04-27T15:35:24.000Z</published>
    <updated>2025-07-11T01:38:06.153Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<写在前面>>></div><div class="body"><div class="line"><p>最近想做一块移动充电板子，想着以后其他小制作能用得上，起个名字就叫“蒸汽核心”吧，电源就像心脏，为机器提供源源不断的能源，所以这块板卡就是心脏卡。在选择PMIC的时候选中了BQ24610，不得不说这是颗PMIC真的坑啊啊啊啊！！第一版做出来后端系统电始终是2V，查了半天规格书没发现问题，结果找了一下TI的论坛才发现不止我一个人遇到，捣鼓捣鼓就有了下面这块板子，先上图！！！</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><div class="tag-plugin swiper fancybox" id="swiper-api" width="max" effect="cards"><div class="swiper-wrapper"><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/1.jpg" alt="1.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/2.jpg" alt="2.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/3.jpg" alt="3.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/4.jpg" alt="4.jpg" /></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev blur"></div><div class="swiper-button-next blur"></div></div><p>回板了，以后要换方案也不一定，如果功率上到百瓦这颗心脏就可能顶不住了</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/6.jpg" alt="实物图" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">实物图</span></div></div><p>做了个程序 DEMO</p><div class="tag-plugin swiper fancybox" id="swiper-api" width="max" effect="cards"><div class="swiper-wrapper"><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/15.png" alt="15.png" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/7.jpg" alt="7.jpg" /></div><div class="swiper-slide"><img no-lazy src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%92%B8%E6%B1%BD%E6%A0%B8%E5%BF%83%E8%83%BD%E6%BA%90%E5%8D%A1%E8%AF%9E%E7%94%9F%E6%97%A5/8.jpg" alt="8.jpg" /></div></div><div class="swiper-pagination"></div><div class="swiper-button-prev blur"></div><div class="swiper-button-next blur"></div></div><h2 id="硬件设计"><a class="markdownIt-Anchor" href="#硬件设计"></a> 硬件设计</h2><h3 id="bq24610"><a class="markdownIt-Anchor" href="#bq24610"></a> BQ24610</h3><h4 id="特性简介"><a class="markdownIt-Anchor" href="#特性简介"></a> 特性简介</h4><blockquote><p>参考链接：<a target="_blank" rel="noopener" href="https://www.ti.com.cn/document-viewer/cn/bq24610/datasheet">https://www.ti.com.cn/document-viewer/cn/bq24610/datasheet</a><br />BQ2461x 1 节至 6 节电池的独立同步降压电池充电器控制器</p></blockquote><h4 id="特性"><a class="markdownIt-Anchor" href="#特性"></a> 特性</h4><blockquote><p>600kHz NMOS-NMOS 同步降压转换器<br />适用于锂离子或锂聚合物电池的独立充电器<br />工作输入范围为 5V 至 28V VCC，支持 1 节至 6 节电池 (BQ24610)<br />工作输入范围为 5V 至 24V VCC，支持 1 节至 5 节电池 (BQ24617)<br />充电电流和适配器电流高达 10A<br />自动选择适配器或电池作为系统电源<br />电池检测<br />FET 提供反向输入保护<br />充电使能引脚<br />适用于同步降压转换器的 6V 栅极驱动<br />关闭状态电池放电电流 &lt; 15µA<br />关闭状态输入静态电流 &lt; 1.5mA</p></blockquote><h4 id="原理图-设计"><a class="markdownIt-Anchor" href="#原理图-设计"></a> 原理图 设计</h4><p>原理图部分基本没什么大的问题有疑问可以去看我之前转载的文章</p><div class="tag-plugin link dis-select"><a class="link-card plain" title="BQ24610锂电池充电方案 PWM直流脉冲充电 https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/Planck.jpg true" href="/2024/04/09/zhuan_zai_bq24610_li_dian_chi_chong_dian_fang_an_pwm_zhi_liu_mai_chong_chong_dian" cardlink autofill="icon"><div class="left"><span class="title">BQ24610锂电池充电方案 PWM直流脉冲充电 https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/headimg/Planck.jpg true</span><span class="cap link footnote">https://blog.findingx.cc/2024/04/09/zhuan_zai_bq24610_li_dian_chi_chong_dian_fang_an_pwm_zhi_liu_mai_chong_chong_dian</span></div><div class="right"><div class="lazy img" data-bg="https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/link/8f277b4ee0ecd.svg"></div></div></a></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/4.png" alt="原理图设计" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="原理图设计" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/4.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">原理图设计</span></div></div><h4 id="layout-设计指导"><a class="markdownIt-Anchor" href="#layout-设计指导"></a> Layout 设计指导</h4><p>以下来自TI官方论坛下载</p><p>BQ24610, BQ24616, BQ24617, BQ24618, and BQ24630</p><p>下面有翻译</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/1.png" alt="Layout设计指导" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Layout设计指导" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/1.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Layout设计指导</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/2.png" alt="Layout设计指导" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Layout设计指导" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/2.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Layout设计指导</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/3.png" alt="Layout设计指导" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="Layout设计指导" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/3.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">Layout设计指导</span></div></div><h5 id="指导方案"><a class="markdownIt-Anchor" href="#指导方案"></a> 指导方案：</h5><blockquote><ul><li>建议采用多层PCB。至少布置两层地面。BQ24610EVM使用4层PCB(顶层，两个信号层和底层)</li><li>将输入电容尽可能靠近QH MOSFET的漏极和QL MOSFET的源极，并使用尽可能短的铜走线连接。这些部件应该放在PCB的同一层上，而不是在不同的层上，并且应该使用过孔来进行连接。</li><li>IC应放置在开关MOSFET栅极端子附近，以保持栅极驱动信号走线短，以实现干净的MOSFET驱动。IC可以放置在PCB的另一侧，与开关mosfet分开</li><li>将电感输入端尽可能靠近开关MOSFET输出端。尽量减少该走线的铜面积，以降低电场和磁场辐射，但使走线足够宽以承载充电电流。不要使用多层并联进行此连接。最小化从该区域到任何其他走线或平面的寄生电容。</li><li>充电电流感应电阻应该放在电感输出的右边。将穿过感测电阻连接的感测引线路由回同一层的IC，彼此靠近(最小化环路面积)，并且不要将感测引线路由通过大电流路径(参见开尔文连接BQ24610数据表的图27，以获得最佳电流精度)。将去耦电容放在IC旁边的这些走线上。</li><li>将输出电容放置在感应电阻输出和接地旁边。在连接系统地之前，必须将输出电容接地连接在连接输入电容接地的同一根铜线上。</li><li>模拟地与电源地分开走线，使用单一接地连接将充电器电源地绑在充电器模拟地上。在IC下方，使用倒铜作为模拟接地，但避免电源引脚，以减少电感和电容噪声耦合。使用热垫作为单地连接点，将模拟地和电源地连接在一起。或者使用0-Ω电阻将模拟地连接到电源地(在这种情况下，热垫应连接到模拟地)。强烈建议在热垫下方采用星形连接。</li><li>将IC封装背面暴露的热垫焊到PCB接地上是至关重要的。确保IC的正下方有足够的热通孔，并与其他层的接平面相连。</li><li>将去耦电容放置在IC引脚旁边，并使走线连接尽可能短。</li><li>对于给定的电流路径，所有过孔的大小和数量必须足够。</li></ul></blockquote><h5 id="错误layout布局"><a class="markdownIt-Anchor" href="#错误layout布局"></a> 错误layout布局</h5><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/5.png" alt="错误layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="错误layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/5.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">错误layout布局</span></div></div><p>上图箭头是电流方向，最重大的问题应该是在于精密电阻的焊盘下方的过孔，此国控会影响BQ24610侦测电压和电流，使得输出端只能到2V。</p><h5 id="成功的第一版本layout布局"><a class="markdownIt-Anchor" href="#成功的第一版本layout布局"></a> 成功的第一版本layout布局</h5><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/6.png" alt="成功layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="成功layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/6.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">成功layout布局</span></div></div><p>上图是按照TI给的设计图基本完全照搬做的，输入18V成功打出18V系统电。</p><h4 id="关于充电路径"><a class="markdownIt-Anchor" href="#关于充电路径"></a> 关于充电路径</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/7.png" alt="充电路径layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="充电路径layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/7.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">充电路径layout布局</span></div></div><p>从系统电经过表层HL MOS 电感 精密电阻 输出，这里由于有电池电压反馈，默认不插入电池该路径关闭。</p><h4 id="电池放电路径"><a class="markdownIt-Anchor" href="#电池放电路径"></a> 电池放电路径</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/8.png" alt="放电路径layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="放电路径layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/8.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">放电路径layout布局</span></div></div><p>通过一个 NMos 输出到系统电。</p><h4 id="自举电容"><a class="markdownIt-Anchor" href="#自举电容"></a> 自举电容</h4><p>自举电容在BUCK中有关键作用</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/9.png" alt="放电路径layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="放电路径layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/9.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">放电路径layout布局</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/10.png" alt="放电路径layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="放电路径layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/10.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">放电路径layout布局</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/12.png" alt="放电路径layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="放电路径layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/12.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">放电路径layout布局</span></div></div><blockquote><p>原文翻译<br />特性描述(续)<br />上部装置总是有足够的电压保持完全接通。如果BTST引脚到PH引脚的电压低于4.2 V超过3个周期，则关闭高侧n沟道功率MOSFET，打开低侧n沟道功率MOSFET，将PH节点拉下并给BTST电容充电。然后，高侧驱动器返回到100%占空比工作，直到检测到(BTST- ph)电压再次下降，因为泄漏电流使BTST电容器放电低于4.2 V，并重新发出复位脉冲。<br />定频振荡器在输入电压、电池电压、充电电流和温度等各种条件下都能严格控制开关频率，简化了输出滤波器的设计，使其远离可听噪声区域。关于如何选择电感、电容和MOSFET，请参见应用和实现</p></blockquote><p>另一款 BUCK IC MP1484（MPS家的）规格书中写到</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/11.png" alt="放电路径layout布局" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="放电路径layout布局" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/11.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">放电路径layout布局</span></div></div><blockquote><p>原文翻译<br />转换器使用内部n沟道MOSFET开关将输入电压降压到调节的输出电压。由于高侧MOSFET需要大于输入电压的栅极电压，因此需要连接在SW和BS之间的升压电容器来驱动高侧栅极。当SW低时，升压电容器从内部5V轨道充电。</p></blockquote><h2 id="程序设计"><a class="markdownIt-Anchor" href="#程序设计"></a> 程序设计</h2><h3 id="函数说明"><a class="markdownIt-Anchor" href="#函数说明"></a> 函数说明</h3><h4 id="oled部分"><a class="markdownIt-Anchor" href="#oled部分"></a> OLED部分</h4><p>目前移植 0.91 OLED 成功</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/13.png" alt="OLED部分" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="OLED部分" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/13.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">OLED部分</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/14.png" alt="OLED部分" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="OLED部分" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/14.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">OLED部分</span></div></div><p>移植参考链接：</p><blockquote><p><a target="_blank" rel="noopener" href="https://github.com/yangjinhaoaa/OLED0.91-SSD1306-HAL">https://github.com/yangjinhaoaa/OLED0.91-SSD1306-HAL</a></p></blockquote><h4 id="功率检测"><a class="markdownIt-Anchor" href="#功率检测"></a> 功率检测</h4><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/9.jpg" alt="功率检测" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="功率检测" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/9.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">功率检测</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/10.jpg" alt="功率检测" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="功率检测" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/10.jpg"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">功率检测</span></div></div><p>移植参考链接：</p><blockquote><p><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/659846231">https://zhuanlan.zhihu.com/p/659846231</a></p></blockquote><h4 id="电池电压检测"><a class="markdownIt-Anchor" href="#电池电压检测"></a> 电池电压检测</h4><p>关于电池包电压，下面表格方便查看，列出了1~20串锂电池最高最低电压以及通过分压电阻得出的电压，还有理论上ADC寄存器中的值</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/16.png" alt="功率检测" data-fancybox="true"/><a class="image-download blur" style="opacity:0" target="_blank" download="功率检测" href="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/蒸汽核心能源卡诞生日/16.png"><svg class="icon" style="width: 1em; height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3734"><path d="M561.00682908 685.55838913a111.03077546 111.03077546 0 0 1-106.8895062 0L256.23182837 487.72885783a55.96309219 55.96309219 0 0 1 79.13181253-79.18777574L450.70357448 523.88101491V181.55477937a55.96309219 55.96309219 0 0 1 111.92618438 0v344.06109173l117.07478902-117.07478901a55.96309219 55.96309219 0 0 1 79.13181252 79.18777574zM282.81429711 797.1487951h447.70473912a55.96309219 55.96309219 0 0 1 0 111.92618438H282.81429711a55.96309219 55.96309219 0 0 1 0-111.92618438z" p-id="3735"></path></svg></a></div><div class="image-meta"><span class="image-caption center">功率检测</span></div></div><table><thead><tr><th>bat</th><th>Vbat min</th><th>Vbat max</th><th>Rup</th><th>Rlo</th><th>Vadc min</th><th>Vadc max</th><th></th><th>adc min</th><th>adc min</th></tr></thead><tbody><tr><td>1</td><td>3.7</td><td>4.2</td><td>680</td><td>100</td><td>0.474358974</td><td>0.538461538</td><td>4096</td><td>589</td><td>668</td></tr><tr><td>2</td><td>7.4</td><td>8.4</td><td>680</td><td>100</td><td>0.948717949</td><td>1.076923077</td><td>4096</td><td>1178</td><td>1337</td></tr><tr><td>3</td><td>11.1</td><td>12.6</td><td>680</td><td>100</td><td>1.423076923</td><td>1.615384615</td><td>4096</td><td>1766</td><td>2005</td></tr><tr><td>4</td><td>14.8</td><td>16.8</td><td>680</td><td>100</td><td>1.897435897</td><td>2.153846154</td><td>4096</td><td>2355</td><td>2673</td></tr><tr><td>5</td><td>18.5</td><td>21</td><td>680</td><td>100</td><td>2.371794872</td><td>2.692307692</td><td>4096</td><td>2944</td><td>3342</td></tr><tr><td>6</td><td>22.2</td><td>25.2</td><td>680</td><td>100</td><td>2.846153846</td><td>3.230769231</td><td>4096</td><td>3533</td><td>4010</td></tr><tr><td>7</td><td>25.9</td><td>29.4</td><td>680</td><td>100</td><td>3.320512821</td><td>3.769230769</td><td>4097</td><td>4122</td><td>4680</td></tr><tr><td>8</td><td>29.6</td><td>33.6</td><td>680</td><td>100</td><td>3.794871795</td><td>4.307692308</td><td>4098</td><td>4713</td><td>5349</td></tr><tr><td>9</td><td>33.3</td><td>37.8</td><td>680</td><td>100</td><td>4.269230769</td><td>4.846153846</td><td>4099</td><td>5303</td><td>6020</td></tr><tr><td>10</td><td>37</td><td>42</td><td>680</td><td>100</td><td>4.743589744</td><td>5.384615385</td><td>4100</td><td>5894</td><td>6690</td></tr><tr><td>11</td><td>40.7</td><td>46.2</td><td>680</td><td>100</td><td>5.217948718</td><td>5.923076923</td><td>4101</td><td>6484</td><td>7361</td></tr><tr><td>12</td><td>44.4</td><td>50.4</td><td>680</td><td>100</td><td>5.692307692</td><td>6.461538462</td><td>4102</td><td>7076</td><td>8032</td></tr><tr><td>13</td><td>48.1</td><td>54.6</td><td>680</td><td>100</td><td>6.166666667</td><td>7</td><td>4103</td><td>7667</td><td>8703</td></tr><tr><td>14</td><td>51.8</td><td>58.8</td><td>680</td><td>100</td><td>6.641025641</td><td>7.538461538</td><td>4104</td><td>8259</td><td>9375</td></tr><tr><td>15</td><td>55.5</td><td>63</td><td>680</td><td>100</td><td>7.115384615</td><td>8.076923077</td><td>4105</td><td>8851</td><td>10047</td></tr><tr><td>16</td><td>59.2</td><td>67.2</td><td>680</td><td>100</td><td>7.58974359</td><td>8.615384615</td><td>4106</td><td>9443</td><td>10720</td></tr><tr><td>17</td><td>62.9</td><td>71.4</td><td>680</td><td>100</td><td>8.064102564</td><td>9.153846154</td><td>4107</td><td>10036</td><td>11392</td></tr><tr><td>18</td><td>66.6</td><td>75.6</td><td>680</td><td>100</td><td>8.538461538</td><td>9.692307692</td><td>4108</td><td>10629</td><td>12065</td></tr><tr><td>19</td><td>70.3</td><td>79.8</td><td>680</td><td>100</td><td>9.012820513</td><td>10.23076923</td><td>4109</td><td>11222</td><td>12739</td></tr><tr><td>20</td><td>74</td><td>84</td><td>680</td><td>100</td><td>9.487179487</td><td>10.76923077</td><td>4110</td><td>11816</td><td>13413</td></tr></tbody></table><p>代码部分使用ADC检测。判断电池部分使用if，简单粗暴，下面是识别1~6串代码</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span>(ADC_Value_int &lt;= <span class="number">300</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">0</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span>(ADC_Value_int &gt;= <span class="number">588</span> &amp;&amp; ADC_Value_int &lt;= <span class="number">689</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">1</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span>(ADC_Value_int &gt;= <span class="number">1177</span> &amp;&amp; ADC_Value_int &lt;= <span class="number">1337</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">2</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span>(ADC_Value_int &gt;= <span class="number">1766</span> &amp;&amp; ADC_Value_int &lt;= <span class="number">2005</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">3</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span>(ADC_Value_int &gt;= <span class="number">2355</span> &amp;&amp; ADC_Value_int &lt;= <span class="number">2674</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">4</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span>(ADC_Value_int &gt;= <span class="number">2943</span> &amp;&amp; ADC_Value_int &lt;= <span class="number">3342</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">5</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span>(ADC_Value_int &gt;= <span class="number">3532</span> &amp;&amp; ADC_Value_int &lt;= <span class="number">4011</span>)&#123;</span><br><span class="line">OLED_ShowNum(<span class="number">110</span>,<span class="number">0</span>,<span class="number">6</span>,<span class="number">1</span>,<span class="number">16</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><div id="first_down"><p><div class="tag-plugin paper"><div class="content underline"><div class="title"><<<文末闲语>>></div><div class="body"><div class="line"><p>这个电源暂时没有计划后续做了，原本想要搭配其他板子做扫地机器人，最近时间不够承宇，暂时搁置了。不过在这里也学到了不少和 buck 升压有关的电路知识，虽然没有继续做了，但是也学到了不少。</p></div></div><div class="footer"><div class="author-date"><span class="author">方寻</span></div></div></div></div></p></div><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="作品" scheme="https://blog.findingx.cc/categories/%E4%BD%9C%E5%93%81/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="bq24610" scheme="https://blog.findingx.cc/tags/bq24610/"/>
    
    <category term="PMIC" scheme="https://blog.findingx.cc/tags/PMIC/"/>
    
  </entry>
  
  <entry>
    <title>kivy制作跨平台软件</title>
    <link href="https://blog.findingx.cc/2024/04/24/131251/"/>
    <id>https://blog.findingx.cc/2024/04/24/131251/</id>
    <published>2024-04-24T05:12:51.000Z</published>
    <updated>2025-07-11T01:38:06.144Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="kivy相关链接"><a class="markdownIt-Anchor" href="#kivy相关链接"></a> kivy相关链接</h1><blockquote><p><a target="_blank" rel="noopener" href="https://kivy.org/">https://kivy.org/</a><br /><a target="_blank" rel="noopener" href="https://cycleuser.gitbooks.io/kivy-guide-chinese/content/">https://cycleuser.gitbooks.io/kivy-guide-chinese/content/</a></p></blockquote><h1 id="编程环境"><a class="markdownIt-Anchor" href="#编程环境"></a> 编程环境</h1><h2 id="anaconda"><a class="markdownIt-Anchor" href="#anaconda"></a> Anaconda</h2><p>下载链接</p><blockquote><p><a target="_blank" rel="noopener" href="https://docs.anaconda.com/free/anaconda/install/">https://docs.anaconda.com/free/anaconda/install/</a></p></blockquote><h2 id="建立工程文件夹"><a class="markdownIt-Anchor" href="#建立工程文件夹"></a> 建立工程文件夹</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">mkdir test</span><br><span class="line">cd test</span><br><span class="line">conda create -n kivy-study python=3.7</span><br></pre></td></tr></table></figure><h2 id="安装一些依赖"><a class="markdownIt-Anchor" href="#安装一些依赖"></a> 安装一些依赖</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">pip install kivy</span><br><span class="line">pip install buildozer</span><br><span class="line">pip install Cython</span><br></pre></td></tr></table></figure><h1 id="初始化文件夹"><a class="markdownIt-Anchor" href="#初始化文件夹"></a> 初始化文件夹</h1><p><code>buildozer init</code><br />初始化生成配置文件<code>buildozer.spec</code><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kivy%E5%88%B6%E4%BD%9C%E8%B7%A8%E5%B9%B3%E5%8F%B0%E8%BD%AF%E4%BB%B6/2.png" alt="2.png" /></p><h1 id="打包apk"><a class="markdownIt-Anchor" href="#打包apk"></a> 打包apk</h1><p>写一个 demo 文件</p><figure class="highlight py"><figcaption><span>main.py</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> kivy</span><br><span class="line"><span class="keyword">from</span> kivy.app <span class="keyword">import</span> App</span><br><span class="line"><span class="keyword">from</span> kivy.uix.button <span class="keyword">import</span> Button</span><br><span class="line"><span class="keyword">class</span> <span class="title class_">hellokivy</span>(<span class="title class_ inherited__">App</span>) :</span><br><span class="line">    <span class="keyword">def</span> <span class="title function_">build</span>(<span class="params">self</span>):</span><br><span class="line">        <span class="keyword">return</span> Button(text=<span class="string">&quot;hellokivy&quot;</span>)</span><br><span class="line"><span class="keyword">if</span> __name__==<span class="string">&quot;__main__&quot;</span> :</span><br><span class="line">    hellokivy().run()</span><br></pre></td></tr></table></figure><blockquote><p>时间十分漫长，一言难尽<br />buildozer -v android debug<br />成功将会出现 <code># Android packaging done! # APK myapp-0.1-arm64-v8a_armeabi-v7a-debug.apk available in the bin directory</code></p></blockquote><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/kivy%E5%88%B6%E4%BD%9C%E8%B7%A8%E5%B9%B3%E5%8F%B0%E8%BD%AF%E4%BB%B6/1.png" alt="1.png" /></p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="python" scheme="https://blog.findingx.cc/tags/python/"/>
    
    <category term="kivy" scheme="https://blog.findingx.cc/tags/kivy/"/>
    
    <category term="多平台" scheme="https://blog.findingx.cc/tags/%E5%A4%9A%E5%B9%B3%E5%8F%B0/"/>
    
  </entry>
  
  <entry>
    <title>beeware 参考</title>
    <link href="https://blog.findingx.cc/2024/04/23/181716/"/>
    <id>https://blog.findingx.cc/2024/04/23/181716/</id>
    <published>2024-04-23T10:17:16.000Z</published>
    <updated>2025-07-11T01:38:06.142Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="参考链接"><a class="markdownIt-Anchor" href="#参考链接"></a> 参考链接</h1><p><a target="_blank" rel="noopener" href="https://docs.beeware.org/zh-cn/latest/">https://docs.beeware.org/zh-cn/latest/</a></p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="python" scheme="https://blog.findingx.cc/tags/python/"/>
    
  </entry>
  
  <entry>
    <title>「转载」BQ24610锂电池充电方案 PWM直流脉冲充电</title>
    <link href="https://blog.findingx.cc/2024/04/09/091750/"/>
    <id>https://blog.findingx.cc/2024/04/09/091750/</id>
    <published>2024-04-09T01:17:50.000Z</published>
    <updated>2025-07-11T01:38:06.145Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="bq24610锂电池充电方案-pwm直流脉冲充电-souha-博客园"><a class="markdownIt-Anchor" href="#bq24610锂电池充电方案-pwm直流脉冲充电-souha-博客园"></a> BQ24610锂电池充电方案 PWM直流脉冲充电 - souha - 博客园</h1><hr /><ul><li><a target="_blank" rel="noopener" href="https://www.cnblogs.com/since1996/p/13625960.html">https://www.cnblogs.com/since1996/p/13625960.html</a></li><li>2024-04-09 09:14:13</li></ul><hr /><p>BQ24610锂电池充电方案 PWM直流脉冲充电</p><h2 id="1概述"><a class="markdownIt-Anchor" href="#1概述"></a> 1.概述</h2><p>随着移动电话、笔记本电脑、平板电脑等众多便携式电子设备的迅速普及应用，与之配套的小型锂离子电池、锂聚合物电池等二次电池的生产及需求量与日俱增，特别是锂离子电池体积小、重量轻;循环寿命长、充电可达几百次甚至上千次;自放电率低等优点广泛应用于可移动便携式电子产品中。因此，设计一套高精度锂离子充电管理系统对于锂离子电池应用是至关重要的，严格防止在电池的使用中出现过充电、过放电等现象。<br />　　目前比较成熟的锂电池充电管理方案就是基于笔记本电脑的方案，该类电源管理方案已经接近成熟，但是往往成本较高，不太符合应用于便携式分子筛制氧机设计中。结合成本与性能的考虑，最后我们选择BQ24610芯片作为主芯片，结合外围电路，来设计便携式分子筛制氧机电源管理模块。<br />　　BQ24610是TI公司生产，可以实现5V-28V锂电池充电管理。充电控制器与传统的控制器相比较，效率更高，散热更少;充电电压及电流的准确度接近百分之百，有助于延长电池使用寿命;集成型独立解决方案可提高设计灵活性，缩小整体解决方案尺寸，更有利于广泛应用于便携式设备中;动态电源管理可在电池充电时仍可为系统供电，最大限度地提高适配器功率.本文就通过在实际中的探索，对电池充电控制器和选择器芯片BQ24610的基本性能、工作原理、参数设置及应用中出现的问题进行了分析，给出了相应的典型应用电路设计。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/1.png" alt="1.png" /></p><h2 id="2bq24610功能及特性"><a class="markdownIt-Anchor" href="#2bq24610功能及特性"></a> 2.BQ24610功能及特性</h2><h3 id="21-引脚介绍"><a class="markdownIt-Anchor" href="#21-引脚介绍"></a> 2.1 引脚介绍</h3><p>ACN(引脚1)：适配器电流误差放大器负输入。<br />ACP (引脚2)：适配器电流误差放大器正输入。<br />ACDRV (引脚3)：交流适配器到系统MOSFET驱动器输出。</p><p>ISET1(引脚11)：快速充电电流输入设置。<br />ISET2 (引脚15)：预充电和终止当前输入设置。<br />ACSET(引脚16)：适配器当前输入设置。</p><p>VREF(引脚10)：3.3V参考电压输出。<br />CE(引脚4)：充电使能，逻辑高电平输入。高电平充电时能，低电平停止充电，它有一个1MΩ内部下拉电阻。</p><p>STAT1(引脚5)：漏极开路充电状态指示按钮，指示各种充电操作。<br />STAT2(引脚9)：漏极开路充电状态指示按钮，指示各种充电操作。<br />PG(引脚8)：开漏输出状态良好指示。</p><p>TS(引脚6)：电池组温度CP系数检测。</p><p>BATDRV (引脚23)：电池和系统之间的MOSFET驱动输出。防止电流从系统流向电池，将系统与电池隔离。<br />HIDRV(引脚21)：PWM高压侧驱动器输出。<br />PH(引脚20)：PWM高压侧驱动器负极电源。<br />BTST(引脚22)：PWM高压侧驱动器正极电源。<br />REGN(引脚18)：PWM低压侧驱动器正6伏电源输出。<br />LODRV(引脚19)：PWM低压侧驱动器输出。</p><p>SRP(引脚14)：电池电流误差放大器正输入。<br />SRN(引脚13)：电池电流误差放大器负输入。</p><p>VFB(引脚12)：输出电压模拟反馈调整。</p><p>TTC(引脚7)：安全时间和终止控制。</p><p>VCC(引脚24)<br />GND(引脚17)</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/2.png" alt="2.png" /></p><h3 id="22-工作原理"><a class="markdownIt-Anchor" href="#22-工作原理"></a> 2.2 工作原理</h3><p>锂离子电池的充电过程可以分为三个阶段：涓流充电（低压预充电）、恒流充电、恒压充电。<br />锂电池的充电方式是限压恒流，都是由IC芯片控制的，典型的充电方式是：先检测待充电电池的电压，如果电压低于3V，要先进行预充电，充电电流为设定电流的1/10，电压升到3V后，进入标准充电过程。</p><p>标准充电过程为： 以设定电流进行恒流充电，电池电压升到4.20V时，改为恒压充电，保持充电电压为 4.20V。此时，充电电流逐渐下降，当电流下降至设定充电电流的1/10时，充电结束</p><p>BQ24610充电电路工作原理如图2所示，该充电电路基本工作原理可分为预充、快充和终止阶段。<br />当接通电源，如果VBAT<br />　　快充分恒流充电和恒压充电两个阶段，在该充电阶段，恒流充电电流不变，电压持续上升，当电压达到调节电压时，充电进入恒压充电阶段。在恒压阶段，充电电流逐渐减小，BQ24610负责管理充电电流。在VTT有效情况下，如果VVFB&gt;VRECH,并且ICHARGE<br />　　BQ24610能够自动选择适配器或者电池给负载供电，当处于上电状态或者睡眠模式的时候，电池连到负载。当电池跳出睡眠模式30ms,电池自动与负载断开，适配器与电池相连。一个自动闭合逻辑防止转换器转换的时候电流击穿。每次确保输出电容或者电源转换器没有充或击穿之后，进入快速充电模式，充电器自动软启动充电器调节电流。</p><h2 id="3便携式制氧机中的锂离子电池充电管理系统的设计与应用"><a class="markdownIt-Anchor" href="#3便携式制氧机中的锂离子电池充电管理系统的设计与应用"></a> 3.便携式制氧机中的锂离子电池充电管理系统的设计与应用</h2><p>依据参数要求，我们结合BQ24610的特性设计了一套适合四节锂离子电池的充放电系统，电路图如图3所示。该系统是给便携式分子筛制氧机供电，实现了以下设计：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/3.png" alt="3.png" /></p><h3 id="31-适配器或电池供电的设计"><a class="markdownIt-Anchor" href="#31-适配器或电池供电的设计"></a> 3.1 适配器或电池供电的设计</h3><p>主要通过两个P沟道的MOSFET实现。BQ24610能够自动控制实现适配器或者电池给负载供电，当系统启动或者进入睡眠模式时，电池默认与系统连接，当退出休眠模式30ms,电池自动与系统断开，适配器与系统连接。每次进入快速充电，当确定没有过充、输出电容和电源转换器没有过压现象时，系统自动软启动充电电流管理。当CE引脚的状态指示灯亮表明系统进入充电使能状态。</p><h3 id="32-锂电池的电量检测与充电指示设计"><a class="markdownIt-Anchor" href="#32-锂电池的电量检测与充电指示设计"></a> 3.2 锂电池的电量检测与充电指示设计</h3><p>通过分压法采集电池电量AD信号，通过I/O口传输给单片机，单片机对信号进行处理做出反应。电池充电状态的显示是通过两个LED灯(STAT1、STAT2)，实现充电与充电完成状态显示。当SRN与SRP之间的电压低于5mv时，芯片自动控制进入周期循环充电潜流保护，这能够阻止引起提振效应的负面感应电流。提振效应能够随着电池到输入电容的输入电压增大，导致VCC引脚过压，引起系统损坏。输入过压和低压保护，能够有效的预防过压或低压对系统造成的损坏。电池的过压保护，充电电流过流保护，热关机保护等一系列的保护措施能够大大提高系统的安全性。</p><h3 id="33-系统电压低于12v时系统自动关机的设计"><a class="markdownIt-Anchor" href="#33-系统电压低于12v时系统自动关机的设计"></a> 3.3 系统电压低于12V时系统自动关机的设计</h3><p>通过一个含有最大限制电压是30V的P沟道MOSFET和一个分流基准源实现，在此部分电路中电阻R43,R44需要满足12*R44/(R43+R44)=2.5,经计算取R43=38K,R44=10K3.4 系统按键开关的设计<br />　　含有按键开关的S1部分能够实现该功能，主要原理如下：按钮按下前，VT2的GS电压(即C1电压)为零，VT2截止，V1的GS电压为零，V1截止无输出;当按下S1,C1充电，VT GS电压上升至约3V时VT2导通，并迅速饱和，V1 GS电压小于-4V,V1饱和导通，VOUT有输出，发光管亮，C1通过R6、R12继续充电，V1、VT2状态被锁定;当再次按下按钮时，由于VT2处于饱和导通状态，漏极电压约为0VC1通过R3放电，方至约3V时，VT2截止，V1栅源电压大于-4V,V1截止，VOUT无输出，发光管灭，C1通过R6、R12及外电路继续放电，V1、VT2维持截止状。</p><h3 id="35-电流电压参数的设计"><a class="markdownIt-Anchor" href="#35-电流电压参数的设计"></a> 3.5 电流电压参数的设计</h3><h4 id="351-充电电压设计"><a class="markdownIt-Anchor" href="#351-充电电压设计"></a> 3.5.1 充电电压设计</h4><p>电池充电调整电压VBAT通过电池和地之间的电阻进行设定，从中间部分与VFB引脚相连。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/4.png" alt="4.png" /></p><p>R2在VFB和电池之间，R1在电池和地之间。</p><h4 id="352-充电电流的设计"><a class="markdownIt-Anchor" href="#352-充电电流的设计"></a> 3.5.2 充电电流的设计</h4><p>ISET1输入设置最大快速充电电流。蓄电池充电电流由连接在SRP和SRN之间的电阻器R SR感测。SRP和SRN之间的满标度差分电压为100mv。因此，对于10-mΩ感应电阻器，最大充电电流为10 A。充电电流的方程式为：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/5.png" alt="5.png" /></p><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mi>I</mi></msub><mi>S</mi><mi>E</mi><mi>T</mi><mn>1</mn></mrow><annotation encoding="application/x-tex">V_ISET1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.32833099999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight" style="margin-right:0.07847em;">I</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathdefault" style="margin-right:0.05764em;">S</span><span class="mord mathdefault" style="margin-right:0.05764em;">E</span><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="mord">1</span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>I</mi><mi>S</mi><mi>E</mi><mi>T</mi><mn>1</mn></mrow><annotation encoding="application/x-tex">ISET1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.68333em;vertical-align:0em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord mathdefault" style="margin-right:0.05764em;">S</span><span class="mord mathdefault" style="margin-right:0.05764em;">E</span><span class="mord mathdefault" style="margin-right:0.13889em;">T</span><span class="mord">1</span></span></span></span>的输入电压范围为0 V至2 V。SRP和SRN引脚用于感应R SR上的电压，默认值为10 mΩ。但是，也可以使用其他值的电阻器。更高的准确度和更高的电阻感，但更大的损失。</p><h4 id="353-适配器输入电流的设计"><a class="markdownIt-Anchor" href="#353-适配器输入电流的设计"></a> 3.5.3 适配器输入电流的设计</h4><p>来自交流适配器AC或其他直流电源的总输入是系统电源电流和蓄电池充电电流的总和。系统电流通常随着部分系统通电或断电而波动。没有DPM，电源必须能够同时提供最大系统电流和最大充电电流。而使用DPM，当输入电流超过ACSET设定的输入电流限制时，电池充电器可降低充电电流，降低系统损耗。与设置电池充电电流类似，适配器电流由连接在ACP和ACN之间的电阻器RAC感应。其最大值由ACSET使用方程式3设定：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/6.png" alt="6.png" /></p><p>V ACSET，ACSET的输入电压范围为0 V至2 V。ACP和ACN引脚用于感应交流电压，默认值为10 mΩ。但是，也可以使用其他值的电阻器。感测电阻越大，感应电压越大，调节精度也越高，但以较高的传导损耗为代价。</p><h4 id="354-预充电电流的设计"><a class="markdownIt-Anchor" href="#354-预充电电流的设计"></a> 3.5.4 预充电电流的设计</h4><p>通电时，如果蓄电池电压低于V低电压阈值，bq2461x会向蓄电池施加预充电电流。此功能旨在使深度放电的细胞复活。如果在启动预充电后30分钟内未达到V低电压阈值，充电器将关闭，状态引脚上会显示故障。预充电电流由ISET2引脚上的电压V ISET2决定。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/7.png" alt="7.png" /></p><h4 id="355-充电终止电流-安全计时器"><a class="markdownIt-Anchor" href="#355-充电终止电流-安全计时器"></a> 3.5.5 充电终止电流、安全计时器</h4><p>bq2461x在电压调节阶段监控充电电流。当V TTC有效时，当VFB管脚上的电压高于V RECH阈值且充电电流小于I项阈值时检测到终端，如等式5所计算：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/8.png" alt="8.png" /> (充电终止电流)</p><p>ISET2的输入电压为0 V至2 V。使用默认的10 mΩ感应电阻器，最小预充电/端接电流钳制在125 mA左右。作为安全备份，bq2461x还提供了一个可编程的充电计时器。充电时间由连接在TTC引脚和GND之间的电容器编程，由等式6给出:</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/9.png" alt="9.png" /></p><p>其中,K TTC是常数，K TTC=5.6 min/nF。<br />当出现以下任一情况时，将启动新的充电循环并重置安全计时器：<br />•电池电压低于充电阈值。<br />•发生上电复位（POR）事件。<br />•CE已切换。<br />TTC引脚可能被调低以禁用终端和安全定时器。如果TTC被拉到VREF，bq2461x继续允许终止，但禁用安全计时器。TTC取低重置安全计时器。什么时候ACOV、VCCLOWV和休眠模式恢复正常，安全计时器复位。</p><h4 id="356-vcc上电"><a class="markdownIt-Anchor" href="#356-vcc上电"></a> 3.5.6 VCC上电</h4><p>bq2461x使用休眠比较器来确定VCC引脚上的电源，因为VCC可以由电池或适配器供电。如果VCC电压大于SRN电压，bq2461x启用ACFET并禁用BATFET。如果满足所有其他充电条件，bq2461x将尝试对电池充电（请参阅启用和禁用充电）。</p><p>如果SRN电压大于VCC，表明电池是电源，bq2461x启动BATFET并进入低静态电流（&lt;15μa）休眠模式，以最大限度地减少电池的电流消耗。如果VCC低于UVLO阈值，则设备被禁用，ACFET关闭，BATFET打开。</p><h4 id="357-启用和禁用充电"><a class="markdownIt-Anchor" href="#357-启用和禁用充电"></a> 3.5.7 启用和禁用充电</h4><p>启用充电前，以下条件必须有效：</p><pre><code>•CE高。•设备未处于欠压锁定（UVLO）和VCCLOWV模式。•设备未处于睡眠模式。•VCC电压低于交流过电压阈值（VCC&lt;V ACOV）。•初始通电后30 ms延迟完成。•REGN LDO和VREF LDO电压处于正确水平。•热关机（TSHUT）无效。•未检测到TS故障。</code></pre><p>下列情况之一将停止持续充电：</p><pre><code>•CE低。•适配器已卸下，导致设备进入UVLO、VCCLOWV或睡眠模式。•适配器电压过高。•REGN或VREF LDO过载。•t达到关闭IC温度阈值（上升沿145°C，滞后15°C）。•TS电压超出范围，表明电池温度过高或过低。•TTC安全计时器超时。</code></pre><h4 id="358-系统电源选择器"><a class="markdownIt-Anchor" href="#358-系统电源选择器"></a> 3.5.8 系统电源选择器</h4><p>bq2461x自动将适配器或电池电源切换到系统负载。在开机或休眠模式下，电池默认连接到系统。电池与系统断开连接，然后适配器在退出休眠30毫秒后连接到系统。一个自动断开-关合逻辑可防止选择器切换时的击穿电流。</p><p>ACDRV用于驱动适配器和ACP之间的一对背靠背P沟道功率MOSFET，S极连接在一起并连接到VCC。连接到适配器上的FET防止电池在关闭时向适配器反向放电。与肖特基二极管相比，带有漏极连接到适配器输入端的P沟道FET在关闭时提供反向电池放电保护；同时，与肖特基二极管相比，它的低Rds（on）  (MOS管导通电阻)也使系统功耗最小化。另一个连接到ACP的Pmos将电池与适配器分离，并通过控制FET开启时间在将适配器连接到系统时提供有限的dI/dt。BATDRV控制一个位于BAT和系统之间的P沟道功率MOSFET。</p><p>当没有检测到适配器时，ACDRV被拉到VCC以保持ACFET关闭，断开适配器与系统的连接。BATDRV保持ACN-6V电压，将电池连接至系统。</p><p>在设备从休眠模式出来大约30毫秒后，系统开始从电池切换到适配器。先断后合逻辑使ACFET和BATFET在ACFET开启前关闭10µs。这防止了射电电流或任何大放电电流进入电池。BATDRV被拉至ACN，ACDRV引脚由内部调节器设置为VCC-6V，以打开P通道ACFET，将适配器连接到系统。</p><p>卸下适配器后，系统将等待VCC降至SRN以上200 mV以内，然后从适配器切换回电池。先断后合逻辑仍保持10μs的死区时间。ACDRV被拉至VCC，BATDRV引脚由内部调节器设置为ACN-6V，以打开P通道BATFET，将电池连接至系统。</p><p>用于ACDRV和BATDRV驱动器的非对称栅极驱动（快速关断和慢导通）提供ACFET和BATFET的快速关断和慢导通，以帮助实现先断后合逻辑，并允许在任一FET接通时软启动。通过在P沟道功率mosfet的栅极到源端放置电容器，可以进一步提高软启动时间。</p><h4 id="359-自动内部软启动充电器电流"><a class="markdownIt-Anchor" href="#359-自动内部软启动充电器电流"></a> 3.5.9 自动内部软启动充电器电流</h4><p>每次充电器快速充电时，充电器都会自动软启动充电器调节电流，以确保输出电容器或电源转换器没有过冲或应力。软启动包括将充电调节电流分为八个等分步骤，直到编程的充电电流。每个步骤持续约1.6毫秒，典型上升时间为12.8毫秒。此功能不需要外部组件。</p><h4 id="3510-变频器操作"><a class="markdownIt-Anchor" href="#3510-变频器操作"></a> 3.5.10 变频器操作</h4><p>同步buck-PWM变换器采用固定频率电压模式和前馈控制方案。III型补偿网络允许在转换器的输出端使用陶瓷电容器。补偿输入级内部连接在反馈输出（FBO）和误差放大器输入（EAI）之间。反馈补偿级连接在误差放大器输入（EAI）和误差放大器输出之间<br />（EAO）。选择LC输出滤波器，使bq2461x的谐振频率为12 kHz至17 kHz，其中谐振频率f o由以下公式给出：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/10.png" alt="10.png" /></p><p>将内部锯齿形斜坡与内部EAO错误控制信号进行比较，以改变转换器的占空比。斜坡高度为输入适配器电压的7%，使其始终与输入适配器电压成正比。这消除了由于输入电压变化而引起的任何环路增益变化，并简化了环路补偿。当占空比小于300%时，允许斜坡信号的占空比为300%。EAO信号也允许超过锯齿波斜坡信号，以获得100%的占空比PWM请求。内部门驱动逻辑允许实现99.5%的占空比，同时确保N通道上部设备始终有足够的电压保持完全开启。如果BTST引脚到PH引脚的电压下降到4.2 V以下超过3个周期，则高侧N沟道功率MOSFET关闭，低侧N沟道功率MOSFET被打开，以拉低PH节点电位并对BTST电容器充电。然后，高压侧驱动器返回到100%占空比(通电时间占比)运行，直到检测到（BTST-PH）电压再次下降，因为泄漏电流使BTST电容器放电低于4.2V，然后重新发出复位脉冲。固定频率振荡器在输入电压、电池电压、充电电流和温度的所有条件下都能严格控制开关频率，简化了输出滤波器的设计，并使其远离可听见的噪声区域。另请参阅应用和实施，了解如何选择电感器、电容器和MOSFET。</p><h4 id="3511-同步和非同步运行"><a class="markdownIt-Anchor" href="#3511-同步和非同步运行"></a> 3.5.11 同步和非同步运行</h4><p>当SRP-SRN电压高于5 mV（10 mΩ感应电阻器的电感电流为0.5 A）时，充电器以同步模式工作。在同步模式下，内部门驱动逻辑确保在进行互补切换之前有断路，以防止击穿电流。在两个fet都关闭的30ns死区时间内，低侧功率MOSFET的体二极管传导电感电流。有低边场效应晶体管打开保持低功耗，并允许在高电流安全充电。在同步模式下，电感器电流始终流动，转换器以连续导通模式（CCM）运行，<br />创建固定的两极系统。<br />当SRP-SRN电压低于5 mV（10 mΩ感应电阻器的电感电流为0.5 A）时，充电器以非同步模式工作。当电池电压低于2 V或SRP-SRN平均电压低于1.25 mV时，充电器被迫进入非同步模式。<br />在非同步工作时，下侧MOSFET的体二极管可以在高侧N沟道功率MOSFET关断后导通正电感电流。当负载电流降低，电感器电流降到零时，体二极管关闭，电感器电流不连续。这种模式称为不连续传导模式（DCM）。在DCM过程中，当自举电容电压下降到4.2V以下时，低侧N沟道功率MOSFET打开约80ns；然后低压侧功率MOSFET关闭并保持关闭状态，直到下一个循环开始，此时高压侧功率MOSFET再次打开。80纳秒的低侧MOSFET通电时间要求，以确保引导电容始终充电，并能够保持高侧功率MOSFET在下一个循环中接通。这对电池充电器很重要，不像普通的DC-DC转换器，有一个电池负载可以维持电压，并且可以产生和吸收电流。80ns的低压侧脉冲拉低PH节点（高、低压侧MOSFET之间的连接），允许自举电容器重新充电到REGN LDO值。80ns后，低侧MOSFET保持关闭，以防止出现负电感电流。<br />在非同步运行期间的极低电流下，80ns充电脉冲期间可能会有少量的负电感电流。电荷应足够低，以被输入电容吸收。每当转换器进入0%的占空比时，高侧MOSFET不导通，低侧MOSFET也不导通（只有80ns充电脉冲），电池几乎没有放电。<br />在DCM模式下，回路响应会自动改变，并且有一个极点与负载电流成比例的单极系统，因为转换器不吸收电流，只有负载提供电流汇。这意味着在非常低的电流下，回路响应较慢，因为可以释放输出电压的陷波电流较少。</p><h4 id="3512-循环充电欠电流保护"><a class="markdownIt-Anchor" href="#3512-循环充电欠电流保护"></a> 3.5.12 循环充电欠电流保护</h4><p>如果SRP-SRN电压降低到5 mV以下（当平均SRP-SRN电压低于1.25 mV时，充电器也被迫进入非同步模式），则在剩余的开关周期内关闭低压侧FET，以防止出现负电感电流。在DCM过程中，当自举电容电压降到4.2v以下时，低侧FET只开启约80ns，为自举电容提供刷新电荷。这对于防止负电感器电流引起输入电压升高的升压效应非常重要，因为电源从电池传输到输入电容器，导致VCC节点上的过电压应力，并可能导致系统损坏。</p><h4 id="3513-输入过压保护acov"><a class="markdownIt-Anchor" href="#3513-输入过压保护acov"></a> 3.5.13 输入过压保护（ACOV）</h4><p>ACOV提供保护，防止高输入电压导致系统损坏。一旦适配器电压达到ACOV阈值，充电将被禁用，系统将切换到电池而不是适配器。</p><h4 id="3514-输入欠压锁定uvlo"><a class="markdownIt-Anchor" href="#3514-输入欠压锁定uvlo"></a> 3.5.14 输入欠压锁定(UVLO)</h4><p>系统必须具有最小VCC电压，以允许正常工作。此VCC电压可能来自输入适配器或电池，因为存在从电池到VCC的传导路径，通过高压侧NMOS主体二极管。当VCC低于UVLO阈值时，IC上的所有电路都被禁用，ACFET和BATFET的栅极驱动偏置也被禁用。</p><h4 id="3515-电池过电压保护"><a class="markdownIt-Anchor" href="#3515-电池过电压保护"></a> 3.5.15 电池过电压保护</h4><p>转换器不允许高侧场效应晶体管打开，直到电池电压低于102%的调节电压。这允许对过电压条件作出一个周期的响应，例如在卸下负载或断开蓄电池时发生的情况。从SRP到GND的8毫安电流接收器仅在充电期间打开，并允许将存储的输出电感器能量放电到输出电容器。BATOVP还暂停了安全计时器。</p><h4 id="3516-循环充电过电流保护"><a class="markdownIt-Anchor" href="#3516-循环充电过电流保护"></a> 3.5.16 循环充电过电流保护</h4><p>充电器具有二次循环对循环过电流保护。它监控充电电流，防止电流超过编程充电电流的160%。当检测到过电流时，高压侧栅极驱动关闭，当电流降至过电流阈值以下时自动恢复驱动。</p><h4 id="3517-热关断保护"><a class="markdownIt-Anchor" href="#3517-热关断保护"></a> 3.5.17 热关断保护</h4><p>QFN封装具有低的热阻抗，从硅到环境提供良好的热传导，以保持结温低。作为附加保护级别，每当结温超过145°C的TSHUT阈值时，充电器转换器关闭并自我保护。充电器保持关闭状态，直到结温降至130°C以下；然后，如果所有其他启用充电条件都有效，充电器将再次软启动。热关机也会暂停安全计时器。</p><h4 id="3518-温度限定条件"><a class="markdownIt-Anchor" href="#3518-温度限定条件"></a> 3.5.18 温度限定条件</h4><p>控制器通过测量TS引脚和GND之间的电压来持续监测电池温度。负温度系数热敏电阻（NTC）和外部分压器通常产生这种电压。控制器将该电压与其内部阈值进行比较，以确定是否允许充电。要启动充电循环，电池温度必须在V LTF至V HTF阈值范围内。如果电池温度超出此范围，控制器将暂停充电和安全计时器，并等待电池温度在V LTF到V HTF范围内。在充电周期内，电池温度必须在V LTF到V TCO阈值范围内。如果电池温度超出该范围，控制器将暂停充电并等待，直到电池温度在V LTF至V HTF范围内。控制器通过关闭PWM充电fet来暂停充电。图14总结了该操作。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/11.png" alt="11.png" /></p><p>假设电池组上有一个103AT的NTC热敏电阻，如图19所示，可使用以下公式确定值RT1和RT2：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/12.png" alt="12.png" /></p><p>例如，103AT NTC热敏电阻用于监测电池组温度。选择T冷=0ºC，T截止=45ºC；则R T2=430 kΩ，R T1=9.31 kΩ。建议使用小型RC滤波器进行系统级ESD保护。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/13.png" alt="13.png" /></p><h4 id="3519-计时器故障恢复"><a class="markdownIt-Anchor" href="#3519-计时器故障恢复"></a> 3.5.19 计时器故障恢复</h4><p>bq2461x提供了一种恢复方法来处理定时器故障情况。下文对此进行了总结<br />方法：<br />情况1：蓄电池电压高于充电阈值，出现超时故障。恢复方法：当电池电压低于充电阈值时，定时器故障清除，电池检测开始。采用CE低或POR条件也可以清除故障。<br />情况2：蓄电池电压低于充电阈值，出现超时故障。恢复方法：在这种情况下，bq2461x对电池施加I故障电流。此小电流用于检测蓄电池拆卸情况，只要蓄电池电压保持在充电阈值以下，该电流就会保持接通。如果电池电压高于充电阈值，bq2461x将禁用故障电流并执行条件1中所述的恢复方法。采用CE低或POR条件也可以清除故障。</p><h4 id="3520-ce充电使能"><a class="markdownIt-Anchor" href="#3520-ce充电使能"></a> 3.5.20 CE（充电使能）</h4><p>开路漏极PG（功率良好）输出指示VCC电压是否有效。当bq2461x有一个有效的VCC输入（不在UVLO、ACOV或睡眠模式下）时，开路漏极FET就会打开。PGpin可用于驱动LED或与主机处理器通信。</p><h4 id="3521-充电状态"><a class="markdownIt-Anchor" href="#3521-充电状态"></a> 3.5.21 充电状态</h4><p>CE数字输入用于禁用或启用充电过程。如果满足所有其他充电条件，此引脚上的高电平信号将启用充电（请参阅启用和禁用充电）。此引脚上的高到低转换也会重置所有计时器和故障条件。CE引脚上有一个内部1 MΩ下拉电阻器，因此如果CE浮动，充电不会开启。</p><h4 id="3522-电池检测输出"><a class="markdownIt-Anchor" href="#3522-电池检测输出"></a> 3.5.22 电池检测输出</h4><p>开路漏极STAT1和STAT2输出指示各种充电器操作，如表2所示。这些状态引脚可用于驱动LED或与主机处理器通信。关表示开漏晶体管关断。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/14.png" alt="14.png" /></p><h2 id="4结论"><a class="markdownIt-Anchor" href="#4结论"></a> 4.结论</h2><p>通过试验结果分析，充电电压在12.6V左右浮动，准确度超过95%,充电电流在3A左右浮动，准确度超过99%.系统的输入过压过流保护、电池的过压、过流保护，高温保护准确度达到了99%.经过多次试验该电路能其要求的功能。<br />　　本文系统地分析了锂离子电池充电控制集成电路芯片应用中常用到的技术问题，并给出了在便携式制氧机中的典型应用实例。根据系统对电池的应用需求，通过合理设置BQ24610的外部元件参数，就可构成一个功能完备的锂离子电池充电器。该设计能够很好的实现系统锂离子电池充电器的功能，可作为有关设计人员对电池充电器进一步开发的参考。该类集成芯片系列较多，但在使用方法上存在许多类似之处，这使得本文的分析讨论在实际应用中具有重要的实用价值和参考价值，为电池充电电路设计者提供了有用的参考，同时也可为其他电子元件的应用提供参考。</p><p>应用电路图</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/15.png" alt="15.png" /></p><h1 id="pcb设计"><a class="markdownIt-Anchor" href="#pcb设计"></a> PCB设计</h1><p>官方建议</p><p>开关节点的上升和下降时间应最小化，以使开关损耗最小。部件的合理布局以尽量减少高频电流路径回路（见图23）对于防止电磁场辐射和高频共振问题非常重要。下面是一个正确布局的PCB布局优先级列表。根据这个特定的顺序来布置PCB是必要的。</p><ol><li>将输入电容器尽可能靠近开关MOSFET电源和接地连接，并使用尽可能短的铜迹线连接。这些零件应该放在PCB的同一层上，而不是放在不同的层上，并使用通孔进行连接。</li><li>集成电路应放置在靠近开关MOSFET栅极端子的地方，以保持栅极驱动信号的轨迹较短，以便进行干净的MOSFET驱动。集成电路可以放置在开关MOSFET的PCB层的背面。</li><li>将电感器输入端尽可能靠近开关MOSFET输出端。尽可能减小该轨迹的铜面积，以降低电场和磁场辐射，但应使该轨迹足够宽以承载充电电流。请勿将多层并行用于此连接。最小化从这个区域到任何其他轨迹或平面的寄生电容。</li><li>电流采样电阻应该放在电感输出的旁边。将穿过采样电阻的感测引线布线回同一层中的IC，彼此靠近（尽量减少回路面积），不要将感测引线穿过高电流路径（有关最佳电流精度的开尔文连接，请参见图24）。将去耦电容器放在IC旁边。</li><li>将输出电容器放在感应电阻输出和接地旁边。</li><li>在连接到系统接地之前，输出电容器必须与连接到输入电容共地。</li><li>将模拟地(AGND)与电源地(GND)分开布线，并使用一个接地连接将GND连接到AGND。就在集成电路下面，使用铺铜模拟接地，但要避免电源引脚，以减少感应和电容噪声耦合。将AGND连接到GND。使用热垫作为单个接地连接点，将AGND和GND连接在一起。或者使用一个0Ω的电阻将AGND连接到GND（在这种情况下，热垫应连接到AGND）。强烈建议在热垫下使用星形连接。</li><li>将IC封装背面裸露的热焊盘焊接到PCB地上，这是至关重要的。确保IC正下方有足够的热通孔，连接到其他层的接地层。</li><li>将去耦电容器放在IC引脚旁边，并使跟踪连接尽可能短。</li><li>所有过孔的大小和数量必须足以满足给定的当前路径</li></ol><h2 id="pcb一般要求"><a class="markdownIt-Anchor" href="#pcb一般要求"></a> PCB一般要求</h2><p>除此之外还要注意电流与线宽、铜厚之间的关系</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/16.png" alt="16.png" /></p><p>差分线:</p><p>尽量减少高频电流路径回路</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/17.png" alt="17.png" /></p><p>bq2461x设备是一个独立的集成锂离子或锂聚合物电池充电器。该装置采用开关频率恒定的开关模式同步降压PWM控制器。该设备控制外部开关，以防止电池放电回输入，连接适配器到系统，并使用6伏栅极驱动器将电池连接到系统，以提高系统效率。bq2461x的特点是动态电源管理(DPM)，当达到输入功率限制时降低电池充电电流，以避免在同时向系统和电池充电器供电时AC适配器过载。一个高度精确的电流感应放大器可以精确测量来自交流适配器的输入电流，以监测整个系统的功率。输入电流限制可通过设备的ACSET引脚配置。bq2461x有一个电池检测方案，允许它自动检测电池的存在和缺少。当电池被检测到时，充电开始于三个阶段之一(取决于电池电压):预充电、恒流(快速充电电流调节)和恒压(快速充电电压调节)。当达到终止电流阈值时，设备将终止充电。当电池电压降至充电阈值(V RECHG)以下时，开始一个充电周期。可通过ISET1和ISET2引脚配置预充电、恒流和终止电流，使电池充电配置更加灵活。在充电过程中，设备集成了电池过压保护、电池短路检测(V BATSHT)、热关机(内部T SHUT和TS引脚)、安全定时器过期(TTC引脚)、输入电压保护(V ACOV)等故障监控，确保电池安全。bq2461x有三个状态引脚(STAT1, STAT2, PG)来指示充电状态和输入电压(AC适配器)状态。这些引脚可以用来驱动led或与主机处理器通信。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/18.png" alt="18.png" /></p><p>上图额定参数:</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E3%80%90%E8%BD%AC%E8%BD%BD%E3%80%91BQ24610%E9%94%82%E7%94%B5%E6%B1%A0%E5%85%85%E7%94%B5%E6%96%B9%E6%A1%88-PWM%E7%9B%B4%E6%B5%81%E8%84%89%E5%86%B2%E5%85%85%E7%94%B5/19.png" alt="19.png" /></p><p>为使bq2461x正常工作，VCC必须为5 V至28 V（bq24610）或24 V（bq24617）。要开始充电，VCC必须高于SRN至少500毫伏（否则，设备将处于休眠模式）。TI建议输入电压至少比电池电压高1.5 V到2 V，考虑到高侧FET（Rdson）、电感器（DCR）和输入感测电阻（ACP和ACN之间）的直流损耗、VCC和输入电源之间的RBFET体二极管压降以及电池感应电阻（SRP和SRN之间）。输入电源的功率限制必须大于系统负载或电池充电所需的最大功率（两者中的较大者）。</p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="BQ24610" scheme="https://blog.findingx.cc/tags/BQ24610/"/>
    
    <category term="电源管理" scheme="https://blog.findingx.cc/tags/%E7%94%B5%E6%BA%90%E7%AE%A1%E7%90%86/"/>
    
  </entry>
  
  <entry>
    <title>STM32 HAL DHT11</title>
    <link href="https://blog.findingx.cc/2024/03/22/201232/"/>
    <id>https://blog.findingx.cc/2024/03/22/201232/</id>
    <published>2024-03-22T12:12:32.000Z</published>
    <updated>2025-07-11T01:38:06.141Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="记录一次cubeide的dht11代码调试"><a class="markdownIt-Anchor" href="#记录一次cubeide的dht11代码调试"></a> 记录一次CUBEIDE的DHT11代码调试</h1><blockquote><p>文末有贴代码，亲测可用</p></blockquote><h2 id="stm32cubeide"><a class="markdownIt-Anchor" href="#stm32cubeide"></a> STM32CUBEIDE</h2><p>首先本文是基于STM32官方出品的CUBEIDE进行代码编写和调试的</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/1.png" alt="1.png" /></p><h2 id="环境搭建"><a class="markdownIt-Anchor" href="#环境搭建"></a> 环境搭建</h2><p>官网下载之后安转完成（软件安装后可能需要登录才可以下载相关库文件）</p><p>新建工程网上已经有很多博主写了，直接略过。关于DHT11除了一些基本配置（如外部晶振、调试接口等）需要使用的一些配置如下图：</p><p>注意生成代码记得勾选<code>Generate peripheral initialization as a pair of'.c/.h' files per peripheral</code></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/9.png" alt="9.png" /></p><h3 id="tim配置"><a class="markdownIt-Anchor" href="#tim配置"></a> Tim配置</h3><p>本文选择<code>Tim3</code>，配置如图：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/2.png" alt="2.png" /></p><h3 id="usart配置"><a class="markdownIt-Anchor" href="#usart配置"></a> USART配置</h3><p>本文选择<code>Uart3</code>，配置如图：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/4.png" alt="4.png" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/3.png" alt="3.png" /></p><h3 id="gpio配置"><a class="markdownIt-Anchor" href="#gpio配置"></a> GPIO配置</h3><p>本文选择<code>GPIOB12</code>，配置如图：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/5.png" alt="5.png" /></p><h2 id="配置完成保存生成代码"><a class="markdownIt-Anchor" href="#配置完成保存生成代码"></a> 配置完成保存生成代码</h2><p>手动添加代码如下</p><p>导入h文件，添加变量</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/6.png" alt="6.png" /></p><p>打开串口中断初始化DHT11</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/7.png" alt="7.png" /></p><p>获取DHT11数据以及数据类型转换和串口发送</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/8.png" alt="8.png" /></p><p>下图可以看出获取到的温度数据<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32-HAL-DHT11/10.png" alt="10.png" /></p><h2 id="程序集合"><a class="markdownIt-Anchor" href="#程序集合"></a> 程序集合</h2><h3 id="需要修改项"><a class="markdownIt-Anchor" href="#需要修改项"></a> 需要修改项</h3><ol><li>在文件<code>dht11.h</code>搜索<code>#define DHT11_DATA_OUT_Pin GPIO_PIN_12</code>、<code>#define DHT11_DATA_OUT_GPIO_Port GPIOA</code>换成自己定义的GPIO。</li><li>在文件<code>dht11.c</code>搜索<code>htim3</code>，换成自己想要的定时器。</li><li><code>main.c</code> 函数中需要先定义初始化<code>dht11</code>，之后进行读温度湿度、注意<code>DHT11</code>是<code>5V</code>供电</li><li>如需添加串口中断函数可以直接添加在<code>main.c</code>中的<code>/* USER CODE BEGIN 4 */</code>位置</li></ol><h3 id="dht11c"><a class="markdownIt-Anchor" href="#dht11c"></a> DHT11.c</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;DHT11.h&quot;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;tim.h&quot;</span></span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> DHT11_DQ_IN HAL_GPIO_WritePin(DHT11_GPIO_Port, DHT11_Pin, GPIO_PIN_SET)  <span class="comment">//输入</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">DelayUs</span><span class="params">(<span class="type">uint32_t</span> nus)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">uint16_t</span>  differ = <span class="number">0xffff</span> - nus - <span class="number">5</span>;</span><br><span class="line">    <span class="comment">//设置定时器2的技术初始值</span></span><br><span class="line">    __HAL_TIM_SetCounter(&amp;htim3, differ);</span><br><span class="line">    <span class="comment">//开启定时器</span></span><br><span class="line">    HAL_TIM_Base_Start(&amp;htim3);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">while</span>( differ &lt; <span class="number">0xffff</span> - <span class="number">5</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        differ = __HAL_TIM_GetCounter(&amp;htim3);</span><br><span class="line">    &#125;;</span><br><span class="line"></span><br><span class="line"><span class="comment">//关闭定时器</span></span><br><span class="line">    HAL_TIM_Base_Stop(&amp;htim3);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">DelayXms</span><span class="params">(<span class="type">unsigned</span> <span class="type">char</span> t)</span></span><br><span class="line">&#123;</span><br><span class="line">    HAL_Delay(t);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//初始化DHT11，同时检测是否连接上DHT11，PA11初始化</span></span><br><span class="line"></span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Init</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    GPIO_InitTypeDef GPIO_InitStruct = &#123;<span class="number">0</span>&#125;;</span><br><span class="line"></span><br><span class="line">    <span class="comment">/* GPIO Ports Clock Enable */</span></span><br><span class="line">    __HAL_RCC_GPIOA_CLK_ENABLE();</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">    <span class="comment">/*Configure GPIO pin Output Level */</span></span><br><span class="line">    HAL_GPIO_WritePin(GPIOA, DHT11_DATA_OUT_Pin, GPIO_PIN_SET);</span><br><span class="line"></span><br><span class="line">    <span class="comment">/*Configure GPIO pin : PtPin */</span></span><br><span class="line">    GPIO_InitStruct.Pin = DHT11_DATA_OUT_Pin;</span><br><span class="line">    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;</span><br><span class="line">    GPIO_InitStruct.Pull = GPIO_PULLDOWN;</span><br><span class="line">    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;</span><br><span class="line">    HAL_GPIO_Init(DHT11_DATA_OUT_GPIO_Port, &amp;GPIO_InitStruct);</span><br><span class="line"></span><br><span class="line">    DHT11_Rst();</span><br><span class="line">    <span class="keyword">return</span> DHT11_Check();</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">//复位DHT11</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">DHT11_Rst</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    DHT11_IO_OUT(); <span class="comment">//SET OUTPUT</span></span><br><span class="line">    HAL_GPIO_WritePin(GPIOA, DHT11_DATA_OUT_Pin, GPIO_PIN_RESET); <span class="comment">//拉低</span></span><br><span class="line">    DelayXms(<span class="number">20</span>);    <span class="comment">//拉低延时至少18ms</span></span><br><span class="line">    HAL_GPIO_WritePin(GPIOA, DHT11_DATA_OUT_Pin, GPIO_PIN_SET); <span class="comment">//DQ=1，拉高</span></span><br><span class="line">    DelayUs(<span class="number">30</span>);     <span class="comment">//拉高延时至少20~40us</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//检测回应</span></span><br><span class="line"><span class="comment">//返回1：检测错误</span></span><br><span class="line"><span class="comment">//返回0：检测成功</span></span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Check</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">uint8_t</span> retry = <span class="number">0</span>;</span><br><span class="line">    DHT11_IO_IN();<span class="comment">//SET INPUT</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">while</span> (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_12) &amp;&amp; retry &lt; <span class="number">100</span>) <span class="comment">//DHT11拉低40~80us</span></span><br><span class="line">    &#123;</span><br><span class="line">        retry++;</span><br><span class="line">        DelayUs(<span class="number">12</span>);</span><br><span class="line">    &#125;;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span>(retry &gt;= <span class="number">100</span>)<span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">else</span> retry = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">while</span> (!HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_12) &amp;&amp; retry &lt; <span class="number">100</span>) <span class="comment">//DHT11再次拉高40~80us</span></span><br><span class="line">    &#123;</span><br><span class="line">        retry++;</span><br><span class="line">        DelayUs(<span class="number">1</span>);</span><br><span class="line">    &#125;;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span>(retry &gt;= <span class="number">100</span>)<span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//读取一个位Bit</span></span><br><span class="line"><span class="comment">//返回1或0</span></span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Read_Bit</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">uint8_t</span> retry = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">while</span>(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_12) &amp;&amp; retry &lt; <span class="number">100</span>) <span class="comment">//等待变低电平</span></span><br><span class="line">    &#123;</span><br><span class="line">        retry++;</span><br><span class="line">        DelayUs(<span class="number">1</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    retry = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">while</span>(!HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_12) &amp;&amp; retry &lt; <span class="number">100</span>) <span class="comment">//等待变高电平</span></span><br><span class="line">    &#123;</span><br><span class="line">        retry++;</span><br><span class="line">        DelayUs(<span class="number">1</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    DelayUs(<span class="number">40</span>);<span class="comment">//等待40us</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span>(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_12))<span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">else</span> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//读取一个字节</span></span><br><span class="line"><span class="comment">//返回读到的数据</span></span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Read_Byte</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">uint8_t</span> i, dat;</span><br><span class="line">    dat = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">8</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        dat &lt;&lt;= <span class="number">1</span>;</span><br><span class="line">        dat |= DHT11_Read_Bit();</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> dat;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//DHT11读取一次数据</span></span><br><span class="line"><span class="comment">//temp:温度(范围:0~50°)</span></span><br><span class="line"><span class="comment">//humi:湿度(范围:20%~90%)</span></span><br><span class="line"><span class="comment">//tem：温度小数位</span></span><br><span class="line"><span class="comment">//hum：湿度小数位</span></span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Read_Data</span><span class="params">(<span class="type">uint8_t</span> *temp, <span class="type">uint8_t</span> *humi, <span class="type">uint8_t</span> *tem, <span class="type">uint8_t</span> *hum)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">uint8_t</span> buf[<span class="number">5</span>];</span><br><span class="line">    <span class="type">uint8_t</span> i;</span><br><span class="line">    DHT11_Rst();</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span>(DHT11_Check() == <span class="number">0</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span>(i = <span class="number">0</span>; i &lt; <span class="number">5</span>; i++) <span class="comment">//读取40位字节</span></span><br><span class="line">        &#123;</span><br><span class="line">            buf[i] = DHT11_Read_Byte();</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">if</span>((buf[<span class="number">0</span>] + buf[<span class="number">1</span>] + buf[<span class="number">2</span>] + buf[<span class="number">3</span>]) == buf[<span class="number">4</span>])</span><br><span class="line">        &#123;</span><br><span class="line">            *humi = buf[<span class="number">0</span>];</span><br><span class="line">            *hum = buf[<span class="number">1</span>];</span><br><span class="line">            *temp = buf[<span class="number">2</span>];</span><br><span class="line">            *tem = buf[<span class="number">3</span>];</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span> <span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">//DHT11输出模式配置</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">DHT11_IO_OUT</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    GPIO_InitTypeDef GPIO_InitStruct = &#123;<span class="number">0</span>&#125;;</span><br><span class="line"></span><br><span class="line">    <span class="comment">/* GPIO Ports Clock Enable */</span></span><br><span class="line">    __HAL_RCC_GPIOA_CLK_ENABLE();</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">    <span class="comment">/*Configure GPIO pin Output Level */</span></span><br><span class="line">    HAL_GPIO_WritePin(GPIOA, DHT11_DATA_OUT_Pin, GPIO_PIN_SET);</span><br><span class="line"></span><br><span class="line">    <span class="comment">/*Configure GPIO pin : PtPin */</span></span><br><span class="line">    GPIO_InitStruct.Pin = DHT11_DATA_OUT_Pin;</span><br><span class="line">    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;</span><br><span class="line">    GPIO_InitStruct.Pull = GPIO_PULLDOWN;</span><br><span class="line">    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;</span><br><span class="line">    HAL_GPIO_Init(DHT11_DATA_OUT_GPIO_Port, &amp;GPIO_InitStruct);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//DHT11输入模式配置</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">DHT11_IO_IN</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    GPIO_InitTypeDef GPIO_InitStruct = &#123;<span class="number">0</span>&#125;;</span><br><span class="line"></span><br><span class="line">    <span class="comment">/* GPIO Ports Clock Enable */</span></span><br><span class="line">    __HAL_RCC_GPIOA_CLK_ENABLE();</span><br><span class="line">    <span class="comment">/*Configure GPIO pin : PC0 */</span></span><br><span class="line">    GPIO_InitStruct.Pin = GPIO_PIN_12;</span><br><span class="line">    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;</span><br><span class="line">    GPIO_InitStruct.Pull = GPIO_PULLUP;</span><br><span class="line">    HAL_GPIO_Init(GPIOA, &amp;GPIO_InitStruct);</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="dht11h"><a class="markdownIt-Anchor" href="#dht11h"></a> DHT11.h</h3><figure class="highlight h"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">ifndef</span> _DHT11_H_</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> _DHT11_H_</span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;main.h&quot;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;stdlib.h&quot;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> DHT11_DATA_OUT_Pin GPIO_PIN_12</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> DHT11_DATA_OUT_GPIO_Port GPIOA</span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">DHT11_Rst</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Check</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Read_Bit</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Read_Byte</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Read_Data</span><span class="params">(<span class="type">uint8_t</span> *temp,<span class="type">uint8_t</span> *humi,<span class="type">uint8_t</span> *tem,<span class="type">uint8_t</span> *hum)</span>;</span><br><span class="line"><span class="type">uint8_t</span> <span class="title function_">DHT11_Init</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"><span class="type">void</span> <span class="title function_">DHT11_IO_IN</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"><span class="type">void</span> <span class="title function_">DHT11_IO_OUT</span><span class="params">(<span class="type">void</span>)</span>;</span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">endif</span></span></span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="串口中断函数"><a class="markdownIt-Anchor" href="#串口中断函数"></a> 串口中断函数</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* USER CODE BEGIN 4 */</span></span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment">  * @brief  Interrupt_UARTX_接收</span></span><br><span class="line"><span class="comment">  * @retval None</span></span><br><span class="line"><span class="comment">  */</span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">HAL_UART_RxCpltCallback</span><span class="params">(UART_HandleTypeDef *huart)</span></span><br><span class="line">&#123;</span><br><span class="line"></span><br><span class="line">    <span class="comment">/* 串口 3 中断 */</span></span><br><span class="line">    <span class="keyword">if</span>(huart == (&amp;huart3))</span><br><span class="line">    &#123;</span><br><span class="line">    <span class="comment">//接收字符</span></span><br><span class="line">    HAL_UART_Transmit(&amp;huart3, &amp;kRxBuffer,  <span class="number">10</span>, <span class="number">100</span>);</span><br><span class="line">    <span class="comment">//�??启中�??</span></span><br><span class="line">        HAL_UART_Transmit_IT(&amp;huart3, &amp;kRxBuffer, <span class="number">100</span>);</span><br><span class="line">        <span class="comment">/* z */</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment">  * @brief  Interrupt_UARTX_发�??</span></span><br><span class="line"><span class="comment">  * @retval None</span></span><br><span class="line"><span class="comment">  */</span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">HAL_UART_TxCpltCallback</span><span class="params">(UART_HandleTypeDef *huart)</span></span><br><span class="line">&#123;</span><br><span class="line"></span><br><span class="line">    <span class="comment">/* 串口�?????? */</span></span><br><span class="line">    <span class="keyword">if</span>(huart == (&amp;huart3))</span><br><span class="line">    &#123;</span><br><span class="line">    <span class="comment">//发�?�数�??</span></span><br><span class="line">    HAL_UART_Receive(&amp;huart3, &amp;kRxBuffer, <span class="number">10</span>, <span class="number">100</span>);</span><br><span class="line">    <span class="comment">//打开中断</span></span><br><span class="line">        HAL_UART_Receive_IT(&amp;huart3, &amp;kRxBuffer, <span class="number">100</span>);</span><br><span class="line"><span class="comment">//        HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);</span></span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* USER CODE END 4 */</span></span><br></pre></td></tr></table></figure><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="dht11" scheme="https://blog.findingx.cc/tags/dht11/"/>
    
    <category term="stm32" scheme="https://blog.findingx.cc/tags/stm32/"/>
    
    <category term="cubeide" scheme="https://blog.findingx.cc/tags/cubeide/"/>
    
  </entry>
  
  <entry>
    <title>章节1-新鼹纪</title>
    <link href="https://blog.findingx.cc/2024/03/21/133539/"/>
    <id>https://blog.findingx.cc/2024/03/21/133539/</id>
    <published>2024-03-21T05:35:39.000Z</published>
    <updated>2025-07-11T01:38:06.152Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="新鼹纪"><a class="markdownIt-Anchor" href="#新鼹纪"></a> 新鼹纪</h2><p>人类这一科让世界变得多样化，不确定性逐步增加，地球再也绷不住了，做了一个几千万年前决定，重启！地球恶劣天气日益增多，山洪地震海啸地裂让熔岩再次有了可乘之机，汤加火山持续喷发，堆积的熔岩从大洋底部一直堆积，在大洋海面形成了小岛，持续飞扬的火山灰挡住了太阳的光和热，一切都冷了下来。海洋结成了冰，压着地壳喘不过气来。冰面把光和热反射想宇宙，本就寒冷的地球更加寒冷，太阳看着他的卫三叹了口气，全球极光持续了一年……</p><p>只可惜，这次重启，不太彻底……</p><p><em>……五千万年后……</em></p><p>一只肉乎乎的小手从土里伸了出来，一只近似星鼻鼹属的生物苟延残喘的活到了现在爬出了土层，开始探索这片自己也看不见的世界</p><p><em>……又三千万年……</em></p><p><strong>新鼹纪 241 万年</strong></p><p>鼹民新闻播报：今日 31 时左右，我国考古学家在 2114 鼹摆 （2000 米）深度处挖掘出来灵长类动物化石，按照同位素法时间推算，距今约有六千万到七千万年。</p><p>​鼹这一属统治了地球……</p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="杂谈" scheme="https://blog.findingx.cc/categories/%E6%9D%82%E8%B0%88/"/>
    
    
    <category term="科幻随想" scheme="https://blog.findingx.cc/tags/%E7%A7%91%E5%B9%BB%E9%9A%8F%E6%83%B3/"/>
    
  </entry>
  
  <entry>
    <title>git图形化工具</title>
    <link href="https://blog.findingx.cc/2024/03/20/192156/"/>
    <id>https://blog.findingx.cc/2024/03/20/192156/</id>
    <published>2024-03-20T11:21:56.000Z</published>
    <updated>2025-07-11T01:38:06.142Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="图形化管理git"><a class="markdownIt-Anchor" href="#图形化管理git"></a> 图形化管理git</h2><blockquote><p><a target="_blank" rel="noopener" href="https://www.sourcetreeapp.com/">https://www.sourcetreeapp.com/</a></p></blockquote><h2 id="参考教程"><a class="markdownIt-Anchor" href="#参考教程"></a> 参考教程</h2><blockquote><p><a target="_blank" rel="noopener" href="https://www.liaoxuefeng.com/wiki/896043488029600/1317161920364578">https://www.liaoxuefeng.com/wiki/896043488029600/1317161920364578</a></p></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="git" scheme="https://blog.findingx.cc/tags/git/"/>
    
  </entry>
  
  <entry>
    <title>arduino使用TFT_eSPI库(ST7735)</title>
    <link href="https://blog.findingx.cc/2024/03/14/082156/"/>
    <id>https://blog.findingx.cc/2024/03/14/082156/</id>
    <published>2024-03-14T00:21:56.000Z</published>
    <updated>2025-07-11T01:38:06.142Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="环境配置"><a class="markdownIt-Anchor" href="#环境配置"></a> 环境配置</h2><p>搜索下载TFT_eSPI库</p><p>进入文件夹<code>C:\Users\xx\Documents\Arduino\libraries\TFT_eSPI</code>，有文件<code>User_Setup.h</code>和<code>User_Setup_Select.h</code></p><h3 id="user_setuph修改"><a class="markdownIt-Anchor" href="#user_setuph修改"></a> User_Setup.h修改</h3><ol><li>选择对应的液晶屏驱动芯片</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/1.png" alt="1.png" /></p><ol start="2"><li>配置颜色显示顺序<br />ST7789芯片中MADCTL (36h)寄存器的第3位控制像素颜色顺序</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/2.png" alt="2.png" /></p><ol start="3"><li>配置屏幕尺寸</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/3.png" alt="3.png" /></p><ol start="4"><li>配置屏幕颜色模式</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/4.png" alt="4.png" /></p><ol start="5"><li>定义Pin脚</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/5.png" alt="5.png" /></p><ol start="6"><li>配置需要用到的字体（会占用单片机存储空间）</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/6.png" alt="6.png" /></p><ol start="7"><li>配置SPI频率</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/7.png" alt="7.png" /></p><h3 id="user_setup_selecth修改"><a class="markdownIt-Anchor" href="#user_setup_selecth修改"></a> User_Setup_Select.h修改</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino%E4%BD%BF%E7%94%A8TFT-eSPI%E5%BA%93-ST7735/8.png" alt="8.png" /></p><h2 id="写st7789ino"><a class="markdownIt-Anchor" href="#写st7789ino"></a> 写st7789.ino</h2><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;Arduino.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ArduinoJson.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;TFT_eSPI.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">setup</span><span class="params">(<span class="type">void</span>)</span> </span>&#123;</span><br><span class="line">  TFT_eSPI tft = <span class="built_in">TFT_eSPI</span>();</span><br><span class="line">  TFT_eSprite clk = <span class="built_in">TFT_eSprite</span>(&amp;tft);</span><br><span class="line">  tft.<span class="built_in">init</span>(ST7735_BLACK);</span><br><span class="line">  tft.<span class="built_in">setRotation</span>(<span class="number">1</span>);</span><br><span class="line">  tft.<span class="built_in">fillScreen</span>(TFT_BLACK);</span><br><span class="line">  tft.<span class="built_in">fillRect</span>(tft.<span class="built_in">width</span>() / <span class="number">2</span>, tft.<span class="built_in">height</span>() / <span class="number">2</span>, <span class="number">50</span>, <span class="number">50</span>, TFT_RED);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">loop</span><span class="params">()</span> </span>&#123;&#125;</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="常用函数"><a class="markdownIt-Anchor" href="#常用函数"></a> 常用函数</h2><blockquote><p>参考链接：<a target="_blank" rel="noopener" href="https://blog.csdn.net/finedayforu/article/details/108975245">https://blog.csdn.net/finedayforu/article/details/108975245</a></p></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="arduino" scheme="https://blog.findingx.cc/tags/arduino/"/>
    
    <category term="C++" scheme="https://blog.findingx.cc/tags/C/"/>
    
  </entry>
  
  <entry>
    <title>开源字体集合</title>
    <link href="https://blog.findingx.cc/2024/03/06/111223/"/>
    <id>https://blog.findingx.cc/2024/03/06/111223/</id>
    <published>2024-03-06T03:12:23.000Z</published>
    <updated>2025-07-11T01:38:06.149Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="落霞孤鹜"><a class="markdownIt-Anchor" href="#落霞孤鹜"></a> 落霞孤鹜</h2><blockquote><p>链接地址：<a target="_blank" rel="noopener" href="https://lxgw.github.io/">https://lxgw.github.io/</a></p></blockquote><blockquote><p>自改免费开源字体一览<br /><a target="_blank" rel="noopener" href="https://github.com/lxgw/LxgwMarkerGothic">悠哉字体 / Yozai (猫啃)</a><br /><a target="_blank" rel="noopener" href="https://github.com/lxgw/LxgwMarkerGothic">霞鹜文楷 / LXGW WenKai (猫啃)</a></p></blockquote><blockquote><p>在线版本 <a target="_blank" rel="noopener" href="https://cmbill.github.io/lxgw-wenkai-screen-web/"> 霞鹜文楷屏幕阅读版 网络字体仓库</a></p></blockquote><h2 id="京華老宋体"><a class="markdownIt-Anchor" href="#京華老宋体"></a> 京華老宋体</h2><blockquote><p>链接地址：<a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/637491623">https://zhuanlan.zhihu.com/p/637491623</a></p></blockquote><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="其他" scheme="https://blog.findingx.cc/categories/%E5%85%B6%E4%BB%96/"/>
    
    
    <category term="字体" scheme="https://blog.findingx.cc/tags/%E5%AD%97%E4%BD%93/"/>
    
  </entry>
  
  <entry>
    <title>博客字体超级压缩</title>
    <link href="https://blog.findingx.cc/2024/03/02/221707/"/>
    <id>https://blog.findingx.cc/2024/03/02/221707/</id>
    <published>2024-03-02T14:17:07.000Z</published>
    <updated>2025-07-11T01:38:06.147Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="安装依赖"><a class="markdownIt-Anchor" href="#安装依赖"></a> 安装依赖</h2><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">npm install --global gulp-cli #全局安装gulp指令集</span><br><span class="line">npm install gulp --save #安装gulp插件</span><br><span class="line">npm install --save-dev gulp-fontmin</span><br></pre></td></tr></table></figure><h2 id="脚本编写"><a class="markdownIt-Anchor" href="#脚本编写"></a> 脚本编写</h2><p>在博客根目录新建gulpfile.js</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> gulp = <span class="built_in">require</span>(<span class="string">&quot;gulp&quot;</span>);</span><br><span class="line"><span class="keyword">var</span> fontmin = <span class="built_in">require</span>(<span class="string">&quot;gulp-fontmin&quot;</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">function</span> <span class="title function_">minifyFont</span>(<span class="params">text, cb</span>) &#123;</span><br><span class="line">  gulp</span><br><span class="line">    .<span class="title function_">src</span>(<span class="string">&quot;source/font/*.ttf&quot;</span>) <span class="comment">//原字体所在目录</span></span><br><span class="line">    .<span class="title function_">pipe</span>(</span><br><span class="line">      <span class="title function_">fontmin</span>(&#123;</span><br><span class="line">        <span class="attr">text</span>: text,</span><br><span class="line">      &#125;)</span><br><span class="line">    )</span><br><span class="line">    .<span class="title function_">pipe</span>(gulp.<span class="title function_">dest</span>(<span class="string">&quot;source/fontdest/&quot;</span>)) <span class="comment">//压缩后的输出目录</span></span><br><span class="line">    .<span class="title function_">on</span>(<span class="string">&quot;end&quot;</span>, cb);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">gulp.<span class="title function_">task</span>(<span class="string">&quot;mini-font&quot;</span>, <span class="function">(<span class="params">cb</span>) =&gt;</span> &#123;</span><br><span class="line">  <span class="keyword">var</span> buffers = [];</span><br><span class="line"></span><br><span class="line">  gulp</span><br><span class="line">    .<span class="title function_">src</span>([<span class="string">&quot;./.deploy_git/**/*.html&quot;</span>]) <span class="comment">//HTML文件所在目录请根据自身情况修改</span></span><br><span class="line">    .<span class="title function_">on</span>(<span class="string">&quot;data&quot;</span>, <span class="keyword">function</span> (<span class="params">file</span>) &#123;</span><br><span class="line">      buffers.<span class="title function_">push</span>(file.<span class="property">contents</span>);</span><br><span class="line">    &#125;)</span><br><span class="line">    .<span class="title function_">on</span>(<span class="string">&quot;end&quot;</span>, <span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">      <span class="keyword">var</span> text = <span class="title class_">Buffer</span>.<span class="title function_">concat</span>(buffers).<span class="title function_">toString</span>(<span class="string">&quot;utf-8&quot;</span>);</span><br><span class="line">      <span class="title function_">minifyFont</span>(text, cb);</span><br><span class="line">    &#125;);</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line">gulp.<span class="title function_">task</span>(<span class="string">&quot;default&quot;</span>, gulp.<span class="title function_">parallel</span>(<span class="string">&quot;mini-font&quot;</span>));</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="引入字体到主题文件中"><a class="markdownIt-Anchor" href="#引入字体到主题文件中"></a> 引入字体到主题文件中</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&quot;LXGW&quot;</span>; <span class="comment">/* 字体名自定义即可 */</span></span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">&quot;/fontdest/霞鹜文楷.ttf&quot;</span>); <span class="comment">/* 字体文件路径 */</span></span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="压缩命令"><a class="markdownIt-Anchor" href="#压缩命令"></a> 压缩命令</h2><p>终端输入<code>gulp</code></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%8D%9A%E5%AE%A2%E5%AD%97%E4%BD%93%E8%B6%85%E7%BA%A7%E5%8E%8B%E7%BC%A9/1.png" alt="1" /></p><h2 id="方法二推荐"><a class="markdownIt-Anchor" href="#方法二推荐"></a> 方法二（推荐）</h2><p><a target="_blank" rel="noopener" href="https://www.imaegoo.com/2020/chinese-font-compress/">参考链接</a></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">pip install fonttools</span><br><span class="line">pyftsubset fang-zheng-hei-ti-gbk.ttf --unicodes-file=sc_unicode.txt</span><br><span class="line"><span class="meta prompt_"></span></span><br><span class="line"><span class="meta prompt_">#</span><span class="language-bash"><span class="comment">####</span></span></span><br><span class="line"></span><br><span class="line">sudo apt-get install -y git g++ make</span><br><span class="line">git clone --recursive https://github.com/google/woff2.git</span><br><span class="line">cd woff2</span><br><span class="line">make clean all</span><br><span class="line"></span><br><span class="line">./woff2_compress ../京華老宋体v2.002.subset.ttf </span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">Processing ../京華老宋体v2.002.subset.ttf =&gt; ../京華老宋体v2.002.subset.woff2</span></span><br><span class="line"><span class="meta prompt_"># </span><span class="language-bash">Compressed 4984278 to 3654143.</span></span><br></pre></td></tr></table></figure><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="字体" scheme="https://blog.findingx.cc/tags/%E5%AD%97%E4%BD%93/"/>
    
    <category term="压缩" scheme="https://blog.findingx.cc/tags/%E5%8E%8B%E7%BC%A9/"/>
    
  </entry>
  
  <entry>
    <title>SCT2650电源设计</title>
    <link href="https://blog.findingx.cc/2024/03/01/091632/"/>
    <id>https://blog.findingx.cc/2024/03/01/091632/</id>
    <published>2024-03-01T01:16:32.000Z</published>
    <updated>2025-07-11T01:38:06.140Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="sct2650"><a class="markdownIt-Anchor" href="#sct2650"></a> SCT2650</h1><p>本文介绍一款DCDC的芯片，<code>SCT2650STER</code>：4.5V-60V Vin, 5A，高效率降压DCDC转换器，可编程频率(<em>4.5V-60V Vin, 5A, High Efficiency Step-down DCDC Converter with Programmable Frequency</em>)</p><h2 id="规格书摘要"><a class="markdownIt-Anchor" href="#规格书摘要"></a> 规格书摘要</h2><h3 id="产品特点"><a class="markdownIt-Anchor" href="#产品特点"></a> 产品特点</h3><blockquote><ul><li>Wide Input Range: 4.5V-60V</li><li>Up to 5A Continuous Output Current</li><li>0.8V ±1% Feedback Reference Voltage</li><li>Adjustable Frequency 100KHz to 1.2MHz</li></ul></blockquote><h3 id="大致的电气特性"><a class="markdownIt-Anchor" href="#大致的电气特性"></a> 大致的电气特性</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/9.png" alt="电气特性" /></p><h3 id="33v参考设计"><a class="markdownIt-Anchor" href="#33v参考设计"></a> 3.3V参考设计：</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/1.png" alt="3.3V参考设计电路" /></p><h3 id="pin-function"><a class="markdownIt-Anchor" href="#pin-function"></a> PIN Function</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/2.png" alt="PIN Function " /></p><h3 id="switching-frequency"><a class="markdownIt-Anchor" href="#switching-frequency"></a> Switching Frequency</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/3.png" alt="DCDC开关频率" /></p><h3 id="输出电压"><a class="markdownIt-Anchor" href="#输出电压"></a> 输出电压</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/4.png" alt="输出电压计算" /></p><h3 id="500khz典型输出电压参考表"><a class="markdownIt-Anchor" href="#500khz典型输出电压参考表"></a> 500KHz典型输出电压参考表</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/5.png" alt="典型输出电压参考表" /></p><blockquote><p>规格书中还提到有逆变器方面的应用(<em>Inverting Power application</em>)</p></blockquote><p>这颗IC在24V输入3.3V输出5A电流时，温度高达92°C</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/6.png" alt="典型输出电压参考表" /></p><p>在IC下方有一个大面积阻焊层连接到IC目的就是更好地散热</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/7.png" alt="IC 封装" /></p><h3 id="layout-设计参考"><a class="markdownIt-Anchor" href="#layout-设计参考"></a> Layout 设计参考</h3><p>线上图</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/8.png" alt="Layout 设计参考" /></p><p>Proper PCB layout is a critical for SCT2650’s stable and efficient operation. The traces conducting fast switching currents or voltages are easy to interact with stray inductance and parasitic capacitance to generate noise and degrade performance. For better results, follow these guidelines as below:</p><blockquote><ol><li>Power grounding scheme is very critical because of carrying power, thermal, and glitch/bouncing noise associated with clock frequency. The thumb of rule is to make ground trace lowest impendence and power are distributed evenly on PCB. Sufficiently placing ground area will optimize thermal and not causing over heat area.</li><li>Place a low ESR ceramic capacitor as close to VIN pin and the ground as possible to reduce parasitic effect.</li><li>Freewheeling diode should be place as close to SW pin and the ground as possible to reduce parasitic effect.</li><li>For operation at full rated load, the top side ground area must provide adequate heat dissipating area. Make sure top switching loop with power have lower impendence of grounding.</li><li>The bottom layer is a large ground plane connected to the ground plane on top layer by vias. The power pad should be connected to bottom PCB ground planes using multiple vias directly under the IC. The center thermal pad should always be soldered to the board for mechanical strength and reliability, using multiple thermal vias underneath the thermal pad. Improper soldering thermal pad to ground plate on PCB will cause SW higher ringing and overshoot besides downgrading thermal performance. it is recommended 8mil diameter drill holes of thermal vias, but a smaller via offers less risk of solder volume loss. On applications where solder volume loss thru the vias is of concern, plugging or tenting can be used to achieve a repeatable process.</li><li>Output inductor and freewheeling diode should be placed close to the SW pin. The switching area of the PCB conductor minimized to prevent excessive capacitive coupling.</li><li>The RT/CLK terminal is sensitive to noise so the RT resistor should be located as close as possible to the IC and routed with minimal lengths of trace.</li><li>UVLO adjust and RT resistors, loop compensation and feedback components should connect to small signal ground which must return to the GND pin without any interleaving with power ground.</li><li>Route BOOT capacitor trace on the other layer than top layer to provide wide path for topside ground.</li><li>For achieving better thermal performance, a four-layer layout is strongly recommended.</li></ol></blockquote><h2 id="我的线路设计"><a class="markdownIt-Anchor" href="#我的线路设计"></a> 我的线路设计</h2><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/10.png" alt="原理图设计" /></p><h2 id="layout-设计"><a class="markdownIt-Anchor" href="#layout-设计"></a> Layout 设计</h2><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SCT2650%E7%94%B5%E6%BA%90%E8%AE%BE%E8%AE%A1/11.png" alt="Layout" /></p><h2 id="验证"><a class="markdownIt-Anchor" href="#验证"></a> 验证</h2><p><em>功能待验证</em></p><!-- Category：理论：理论知识技能，技术应用：应用笔记，实操折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)方法：方法论（经验谈），如工程方法工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里作品：自己的作品（成品）、个人项目日志等杂谈：生活碎碎念自然科学：物理，化学，数学其他：没法分类的东西Tags细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),形式：日志具体内容：个人作品、方法论、随笔语言：python C C# Java Html micropython 微信小程序IDE：Arduino CUBEIDE Vscode自然科学：代数 几何 概率 黑洞 白矮星 四维空间...IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI模组：ws2812b系统：Linux Windows macOS openwrt Docker   termux游戏：MC博客：hexo 主题 魔改折腾系类：黑苹果，整服务器，termux -->]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="DCDC" scheme="https://blog.findingx.cc/tags/DCDC/"/>
    
  </entry>
  
  <entry>
    <title>音频PCB设计学习与总结</title>
    <link href="https://blog.findingx.cc/2024/02/29/185959/"/>
    <id>https://blog.findingx.cc/2024/02/29/185959/</id>
    <published>2024-02-29T10:59:59.000Z</published>
    <updated>2025-07-11T01:38:06.154Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>最近在看音频功放类电路设计，也就是HiFi电路，其中涉及模拟电路和数字电路，在模拟电路中放大器将小信号放大的过程中，如果高频也就是数字地或者数字电路对模拟电路产生耦合，那么噪声也会被小信号放大电路所放大，于是就产生了杂音，音质不高。参考了做博客目前还没有实际做出成品，先了解学习一下。</p><h2 id="如何有效地接地"><a class="markdownIt-Anchor" href="#如何有效地接地"></a> 如何有效地接地</h2><p>在音频PCB设计中，<strong>单点接地</strong>和<strong>大面积铺地</strong>都是为了减少噪声和提高信号完整性。它们并不是相互排斥的概念，而是可以根据具体情况和设计需求灵活应用的。</p><p><em>单点接地</em>的主要优点在于能够有效地隔离不同功能模块之间的地回路，从而减少由于地环路产生的噪声。这种方法在处理模拟信号和低电平数字信号时特别有用，因为这些信号更容易受到地噪声的影响。然而，单点接地确实会增加PCB布局的复杂性，尤其是在高密度的集成电路中。</p><p>另一方面，<em>大面积铺</em>地可以提供良好的<strong>电磁屏蔽</strong>效果，有助于减少外部噪声对PCB上敏感电路的影响。此外，大面积铺地还可以<strong>降低</strong>PCB上的接地<strong>阻抗</strong>，从而减少地线电阻引起的噪声。在处理<em>高频信号</em>或需要<em>高电流承载能力</em>的应用中，<strong>大面积铺地尤为重要</strong>。</p><p>在实际设计中，可以根据具体需求和条件选择适当的接地策略。例如，可以将模拟地和数字地分开，并通过<strong>单点接地</strong>连接到公共地；同时，在PCB的<strong>外层使用大面积铺地</strong>，以提供电磁屏蔽和降低接地阻抗。这样的混合策略可以结合单点接地和大面积铺地的优点，从而获得最佳的设计效果。</p><p>简单说就是：<strong>高频走大面积地，低频音频走单点地</strong></p><p>想要地线阻抗为零是几乎不可能的，就算接近零也要看与扰动源的阻抗的比例是否足够小；总之：<br />1、功率地（低阻地）与信号地要注意电流走向，不要形成相互干扰，至少不应该产生正反馈<br />2、数字地与模拟信号要分开走到电源滤波地中点，<strong>不要让数字电路的脉冲干扰串入模拟地</strong><br />3、环地不光要看“直流”环地，也要看“交流”环地，电路分析中的交流分析中，电源是看为对地“短路”的，另外电源退耦电容也是交流短路（通交隔直）的<br />4、双电流的滤波电容接地更地一点接地，因为整流滤波是低阻脉动干扰源，脉动电流往往是安倍级，1毫欧的线路都能产生毫伏以上的脉动信号，百倍放大后应该都能听得到声音的了。</p><p>大面积要的是等电位面的概念，用于高频，小信号等小电流敏感区。等电位面严格说也应一点接地。一点接地要的是断掉地环流。</p><blockquote><p>地线环路干扰现象</p><ul><li>在PCB设计中，高频信号和低频信号的回流通路确实有所不同。</li><li>对于<em>低频信号</em>，其回流路径通常选择<strong>阻抗最低</strong>的路径。这是因为低频信号的频率相对较低，其对应的波长较长，因此信号的反射较小，主要考虑的是路径的电阻最小，以保证最小的能量损失。</li><li>而对于<em>高频信号</em>，其回流路径通常选择<strong>感抗最低</strong>的路径。随着信号频率的提高，信号的反射效应变得更加显著，此时需要考虑的是路径的电感和电容效应，使得信号能够在路径上顺利传输，因此高频信号的回流路径更倾向于选择感抗最低的路径。</li></ul></blockquote>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="HiFi" scheme="https://blog.findingx.cc/tags/HiFi/"/>
    
  </entry>
  
  <entry>
    <title>雷池防火墙安装</title>
    <link href="https://blog.findingx.cc/2024/02/29/161936/"/>
    <id>https://blog.findingx.cc/2024/02/29/161936/</id>
    <published>2024-02-29T08:19:36.000Z</published>
    <updated>2025-07-11T01:38:06.154Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="在线安装推荐"><a class="markdownIt-Anchor" href="#在线安装推荐"></a> 在线安装（推荐）</h2><p>如果服务器可以访问互联网环境，推荐使用该方式</p><p>复制以下命令执行，即可完成安装</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">bash -c &quot;$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)&quot;</span><br></pre></td></tr></table></figure><p>如果需要使用华为云加速，可使用</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">CDN=1 bash -c &quot;$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)&quot;</span><br></pre></td></tr></table></figure><p>如果需要安装最新版本流式检测模式，可使用</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">STREAM=1 bash -c &quot;$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)&quot;</span><br></pre></td></tr></table></figure><h2 id="登录"><a class="markdownIt-Anchor" href="#登录"></a> 登录</h2><p>浏览器打开后台管理页面 <code>https://&lt;waf-ip&gt;:9443</code>。</p><p>根据界面提示，使用 支持 TOTP 的认证软件或者小程序 扫描二维码，然后输入动态口令登录：</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="服务器" scheme="https://blog.findingx.cc/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    <category term="防火墙" scheme="https://blog.findingx.cc/tags/%E9%98%B2%E7%81%AB%E5%A2%99/"/>
    
  </entry>
  
  <entry>
    <title>关于博客分类与标签</title>
    <link href="https://blog.findingx.cc/2024/02/28/173516/"/>
    <id>https://blog.findingx.cc/2024/02/28/173516/</id>
    <published>2024-02-28T09:35:16.000Z</published>
    <updated>2025-07-11T01:38:06.146Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="寻找分类的方案"><a class="markdownIt-Anchor" href="#寻找分类的方案"></a> 寻找分类的方案</h1><p><a target="_blank" rel="noopener" href="https://www.cnblogs.com/holbrook/archive/2012/11/04/2753533.html">《IT人员如何管理知识》</a>这篇文章中把知识分为：</p><p>业务领域（决策层、管理层、执行层）<br />行业（IT、金融、媒体、支付、制造、零售）<br />技术细分（理论、方法论、解决方案、应用技术、工具）<br />有的人涉及领域很广，所以直接搬图书馆的分类，参考<a target="_blank" rel="noopener" href="https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E5%9B%BE%E4%B9%A6%E9%A6%86%E5%88%86%E7%B1%BB%E6%B3%95">《中国图书馆分类法》</a>：</p><p>A 马克思列宁主义、毛泽东思想、邓小平理论<br />B 哲学、宗教<br />C 社会科学总论<br />…<br />T 工业技术<br />U 交通运输<br />V 航空、航天<br />X 环境科学、安全科学<br /><a target="_blank" rel="noopener" href="https://www.cnblogs.com/holbrook/archive/2012/11/05/2755268.html">《如何规划blog的标签（tag）和分类》</a>中为博客分类，作者自己的评价是“这样粗线条的划分的好处是分类会比较稳定，毕竟更新分类比起添加tag要麻烦很多”：</p><p>1.域.业务领域<br />2.术.解决方案<br />3.技.技术研究<br />4.阵.技术应用<br />5.法.手段方法<br />6.理.理论学习<br />7.器.工具使用<br />A.杂.杂七杂八</p><h2 id="我的"><a class="markdownIt-Anchor" href="#我的"></a> 我的</h2><blockquote><p><a target="_blank" rel="noopener" href="https://noodlefighter.com/posts/2836/">🔗参考链接</a></p></blockquote><h3 id="category"><a class="markdownIt-Anchor" href="#category"></a> Category：</h3><p>理论：理论知识技能，技术<br />应用：应用笔记，实操<br />折腾：折腾折腾折腾折腾！(其实属于应用，但就是玩！)<br />方法：方法论（经验谈），如工程方法<br />工具：针对具体工具的介绍、使用方法、分析适用场景等；使用工具如何如何解决具体问题，应该放在「应用」里<br />作品：自己的作品（成品）、个人项目日志等<br />杂谈：生活碎碎念<br />自然科学：物理，化学，数学<br />其他：没法分类的东西</p><h3 id="tags"><a class="markdownIt-Anchor" href="#tags"></a> Tags</h3><blockquote><p>根据需要灵活添加，但应避免添加太细的tag以避免膨胀，例如：</p></blockquote><p>细分领域：机器之脉络(硬件),机器之魂魄(嵌入式软件,机器学习，算法等),机器之骨骼(结构),<br />形式：日志<br />具体内容：个人作品、方法论、随笔<br />语言：python C C# Java Html micropython 微信小程序<br />IDE：Arduino CUBEIDE Vscode<br />自然科学：代数 几何 概率 黑洞 白矮星 四维空间…<br />IC OR IDE : STM32 ESP32 ESP8266 C51 树莓派 RK3399 野火开发版 MIQI<br />模组：ws2812b<br />系统：Linux Windows macOS openwrt Docker   termux<br />游戏：MC<br />博客：hexo 主题 魔改<br />折腾系类：黑苹果，整服务器，termux</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="方法" scheme="https://blog.findingx.cc/categories/%E6%96%B9%E6%B3%95/"/>
    
    
    <category term="方法论" scheme="https://blog.findingx.cc/tags/%E6%96%B9%E6%B3%95%E8%AE%BA/"/>
    
  </entry>
  
  <entry>
    <title>运算放大器</title>
    <link href="https://blog.findingx.cc/2024/02/27/144003/"/>
    <id>https://blog.findingx.cc/2024/02/27/144003/</id>
    <published>2024-02-27T06:40:03.000Z</published>
    <updated>2025-07-11T01:38:06.154Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="运算放大器op-amp"><a class="markdownIt-Anchor" href="#运算放大器op-amp"></a> 运算放大器(OP AMP)</h1><h2 id="比例放大电路"><a class="markdownIt-Anchor" href="#比例放大电路"></a> 比例放大电路</h2><p>两大重要原则贯穿始终，<code>“虚短”</code>与<code>“虚断”</code>。<code>“虚短”</code>的意思是正端和负端接近短路，即<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>V</mi><mo>+</mo><mo>=</mo><mi>V</mi><mo>−</mo></mrow><annotation encoding="application/x-tex">V+=V-</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="mord">+</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="mord">−</span></span></span></span>,看起来像<code>“短路”</code>;<code>“虚断”</code>的意思是流入正端及负端的电流接近于零，即<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>I</mi><mo>+</mo><mo>=</mo><mi>I</mi><mo>−</mo><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">I+=I-=0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord">+</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="mord mathdefault" style="margin-right:0.07847em;">I</span><span class="mord">−</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span>,看起来像<code>断路</code>（因为输入阻抗无穷大）。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/3.png" alt="3.png" /></p><p>有公式：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>=</mo><mo>−</mo><mfrac><msub><mi>R</mi><mn>2</mn></msub><msub><mi>R</mi><mn>1</mn></msub></mfrac><mo>×</mo><msub><mi>V</mi><mrow><mi>i</mi><mi>n</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{out} = - \frac{R_2}{R_1} \times V_{in}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.2805559999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">o</span><span class="mord mathdefault mtight">u</span><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.19633em;vertical-align:-0.8360000000000001em;"></span><span class="mord">−</span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.36033em;"><span style="top:-2.3139999999999996em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.8360000000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31166399999999994em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">i</span><span class="mord mathdefault mtight">n</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span></p><blockquote><p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>−</mo></mrow><annotation encoding="application/x-tex">-</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.66666em;vertical-align:-0.08333em;"></span><span class="mord">−</span></span></span></span>代表输出和输入相位相差180°。</p></blockquote><p>因为Vout与Vin成线性的比例关系，因此这个典型放大电路被称为<strong>比例放大电路</strong>。</p><blockquote><p>关于<code>R1</code>,<code>R2</code>及<code>R3</code>的选值：</p><ul><li><code>R1</code>,<code>R2</code>及<code>R3</code>应该在K级，不宜达到M级；</li><li><code>R3</code>应该等于或近似于<code>R1</code>与<code>R2</code>的并联，以消除偏置电流的影响。</li></ul></blockquote><h2 id="差分放大电路"><a class="markdownIt-Anchor" href="#差分放大电路"></a> 差分放大电路</h2><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/4.png" alt="4.png" /></p><p>有公式：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>=</mo><mfrac><msub><mi>R</mi><mn>2</mn></msub><msub><mi>R</mi><mn>1</mn></msub></mfrac><mo>×</mo><mo stretchy="false">(</mo><msub><mi>V</mi><mn>2</mn></msub><mo>−</mo><msub><mi>V</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">V_{out} = \frac{R_2}{R_1} \times (V_{2}-V_1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.2805559999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">o</span><span class="mord mathdefault mtight">u</span><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:2.19633em;vertical-align:-0.8360000000000001em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.36033em;"><span style="top:-2.3139999999999996em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.8360000000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span></span></p><h2 id="同相放大电路"><a class="markdownIt-Anchor" href="#同相放大电路"></a> 同相放大电路</h2><p>输出和输入保持相同的相位。理想的运放具有输入阻抗无穷大，输出阻抗无穷小的特点，同相放大电路保持了运放的这种特性。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/5.png" alt="5.png" /></p><p>有公式：</p><p class='katex-block'><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>=</mo><mo stretchy="false">(</mo><mn>1</mn><mo>+</mo><mfrac><msub><mi>R</mi><mn>2</mn></msub><msub><mi>R</mi><mn>1</mn></msub></mfrac><mo stretchy="false">)</mo><mo>×</mo><msub><mi>V</mi><mrow><mi>i</mi><mi>n</mi></mrow></msub></mrow><annotation encoding="application/x-tex">V_{out} = (1+\frac{R_2}{R_1}) \times V_{in}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.2805559999999999em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">o</span><span class="mord mathdefault mtight">u</span><span class="mord mathdefault mtight">t</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:2.19633em;vertical-align:-0.8360000000000001em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.36033em;"><span style="top:-2.3139999999999996em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord"><span class="mord mathdefault" style="margin-right:0.00773em;">R</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:-0.00773em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.8360000000000001em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.31166399999999994em;"><span style="top:-2.5500000000000003em;margin-left:-0.22222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">i</span><span class="mord mathdefault mtight">n</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span></p><h2 id="运算放大器内部电路"><a class="markdownIt-Anchor" href="#运算放大器内部电路"></a> 运算放大器内部电路</h2><p>运算放大器是一种高电压增益、高输入电阻和低输出电阻的多级直接耦合放大电路。它的内部构造通常包括输入级、中间级和输出级。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/1.jpg" alt="1.jpg" /></p><h3 id="输入级"><a class="markdownIt-Anchor" href="#输入级"></a> 输入级</h3><p>输入级的主要功能是接收并放大输入信号。对于常见的运算放大器，例如741运放，输入级通常包括差动放大器和达林顿放大器。</p><h3 id="中间级"><a class="markdownIt-Anchor" href="#中间级"></a> 中间级</h3><p>中间级的主要作用是将信号从微弱的电平放大到足够大的电平时，再经过输出级的负载电阻，将放大的信号传递给负载，以供使用。</p><h3 id="输出级"><a class="markdownIt-Anchor" href="#输出级"></a> 输出级</h3><p>输出级的主要功能是将放大后的信号传递给负载。为了防止因受输出引脚上连接的电阻等的负载的影响使运算放大器的特性发生变化，通常会作为缓冲器连接输出段。</p><h2 id="运算放大器工作原理"><a class="markdownIt-Anchor" href="#运算放大器工作原理"></a> 运算放大器工作原理</h2><p>运算放大器的工作原理主要是通过放大输入信号的微小差异来实现。具体来说，当输入端之一接受到更高电压时，运算放大器会增大，随后产生相应的输出转变。</p><p>例如，对于741运放，当输入端的电位发生改变时，由于电源电压的变化，使得输入端的电位发生改变。当电源电压为0V或5v时，输入端的电位为-2.5V，此时如果采用分压方式，那么，通过中间的反馈电阻R，使R上的电流变化，从而引起反馈网络的通断，进而影响整个放大器的频率响应。</p><h2 id="运算放大器的性能指标"><a class="markdownIt-Anchor" href="#运算放大器的性能指标"></a> 运算放大器的性能指标</h2><p>运算放大器的性能指标主要包括以下几个方面：</p><ol><li><strong>静态工作点</strong>：指无外界干扰，且温度恒定的情况下，放大器稳定工作的工作点。</li><li><strong>增益</strong>：是指单位增益下，对被处理信号的线性度。</li><li><strong>失调</strong>：是指在某一频率范围内，某上所加激励与该频率下的被处理量之比的值。</li><li><strong>频响</strong>：是指放大器在给定激励条件下，对指定波形进行不失真重放的频带宽度。</li></ol><h2 id="运算放大器的分类"><a class="markdownIt-Anchor" href="#运算放大器的分类"></a> 运算放大器的分类</h2><p>按照结构形式，运算放大器可以分为单片式、双极型及多极型。其中，单片式具有体积小、重量轻，价格低的特点；双极型利用双极性的互补作用来改善共模抑制比，提高抗干扰能力，同时还可以减小自身噪声；多芯片集成设计可以有效地降低系统的成本，而且，多芯片集成的设计，可以使系统更加紧凑，有利于散热。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="元器件之旅" scheme="https://blog.findingx.cc/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/"/>
    
    <category term="运算放大器" scheme="https://blog.findingx.cc/tags/%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>肖特基二极管</title>
    <link href="https://blog.findingx.cc/2024/02/20/000329/"/>
    <id>https://blog.findingx.cc/2024/02/20/000329/</id>
    <published>2024-02-19T16:03:29.000Z</published>
    <updated>2025-07-11T01:38:06.152Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="肖特基二极管技术详解"><a class="markdownIt-Anchor" href="#肖特基二极管技术详解"></a> 肖特基二极管技术详解</h1><h2 id="什么是肖特基二极管"><a class="markdownIt-Anchor" href="#什么是肖特基二极管"></a> 什么是肖特基二极管？</h2><p>肖特基二极管是一种利用金属-半导体（M-S）接触原理制成的半导体器件。它与传统的PN结二极管不同，具有较低的正向导通压降和快速的切换速度，因此在许多高频、高效率的应用中表现出色。</p><h2 id="肖特基二极管的定义和内部结构"><a class="markdownIt-Anchor" href="#肖特基二极管的定义和内部结构"></a> 肖特基二极管的定义和内部结构</h2><h3 id="定义"><a class="markdownIt-Anchor" href="#定义"></a> 定义</h3><p>肖特基二极管是一种基于金属-半导体接触的半导体器件，具有优异的开关性能和高频特性。</p><h3 id="内部结构"><a class="markdownIt-Anchor" href="#内部结构"></a> 内部结构</h3><p>肖特基二管的内部结构主要包括一个N型半导体和一个金属层。N型半导体提供大量的电子，而金属层则吸引这些电子，形成一个内建电场。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%82%96%E7%89%B9%E5%9F%BA%E4%BA%8C%E6%9E%81%E7%AE%A1/1.png" alt="肖特基二极管示意图" /></p><h2 id="肖特基二极管的等效电路和工作原理"><a class="markdownIt-Anchor" href="#肖特基二极管的等效电路和工作原理"></a> 肖特基二极管的等效电路和工作原理</h2><h3 id="等效电路"><a class="markdownIt-Anchor" href="#等效电路"></a> 等效电路</h3><p>在电路中，肖特基二极管通常被表示为一个具有恒定电压降（Vf）的开关元件。这个电压降远低于传统PN结二极管的0.7V，使得肖特基二极管在高频整流中具有更高的效率。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%82%96%E7%89%B9%E5%9F%BA%E4%BA%8C%E6%9E%81%E7%AE%A1/2.png" alt="肖特基二极管示意图" /></p><h3 id="工作原理"><a class="markdownIt-Anchor" href="#工作原理"></a> 工作原理</h3><h4 id="无偏置状态"><a class="markdownIt-Anchor" href="#无偏置状态"></a> 无偏置状态</h4><p>在没有外加电压的情况下，N型半导体和金属层之间存在一个内建电场，阻止电流的流动。</p><h4 id="正向偏置"><a class="markdownIt-Anchor" href="#正向偏置"></a> 正向偏置</h4><p>当在肖特基二极管两端施加正向电压时，内建电场减弱，电子获得能量并跨越势垒，导致电流的流动。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%82%96%E7%89%B9%E5%9F%BA%E4%BA%8C%E6%9E%81%E7%AE%A1/3.png" alt="肖特基二极管示意图" /></p><h4 id="反向偏置"><a class="markdownIt-Anchor" href="#反向偏置"></a> 反向偏置</h4><p>在反向偏置条件下，内建电场增强，势垒高度增加，从而阻止电流的流动。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%82%96%E7%89%B9%E5%9F%BA%E4%BA%8C%E6%9E%81%E7%AE%A1/4.png" alt="肖特基二极管示意图" /></p><h2 id="肖特基二极管的vi特性和优缺点"><a class="markdownIt-Anchor" href="#肖特基二极管的vi特性和优缺点"></a> 肖特基二极管的VI特性和优缺点</h2><h3 id="vi特性"><a class="markdownIt-Anchor" href="#vi特性"></a> VI特性</h3><p>肖特基二极管的VI特性由其内部的肖特基势垒决定。当外加电压小于阈值电压（Vf）时，二极管处于截止状态，电流很小。当电压大于Vf时，二极管开始导电，电流随电压线性增加。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E8%82%96%E7%89%B9%E5%9F%BA%E4%BA%8C%E6%9E%81%E7%AE%A1/5.jpg" alt="肖特基二极管示意图" /></p><h3 id="优点"><a class="markdownIt-Anchor" href="#优点"></a> 优点</h3><ol><li><strong>低正向导通压降</strong>：肖特基二极管的Vf较低，有利于提高电路的整体效率。</li><li><strong>快速恢复时间</strong>：肖特基二极管具有快速的切换速度，适合于高频应用。</li><li><strong>低结电容</strong>：较小的结电容有助于减少噪声和干扰。</li><li><strong>高电流密度</strong>：肖特基二极管能够承受较高的电流密度，适用于功率密集型的应用。</li><li><strong>噪音更小</strong>：由于其特殊的结构和工作原理，肖特基二极管的噪音水平相对较低。</li><li><strong>性能更好</strong>：综合以上优点，肖特基二极管在许多应用中表现出优异的性能。</li></ol><h3 id="缺点"><a class="markdownIt-Anchor" href="#缺点"></a> 缺点</h3><ol><li><strong>较高反向电流</strong>：在高温或高反向电压下，肖特基二极管可能产生较高的反向漏电流。</li><li><strong>较低最大反向电压</strong>：相比于传统PN结二极管，肖特基二极管的最大反向击穿电压较低。</li></ol><h2 id="肖特基二极管的特别之处及应用领域"><a class="markdownIt-Anchor" href="#肖特基二极管的特别之处及应用领域"></a> 肖特基二极管的特别之处及应用领域</h2><p>肖特基二极管的特别之处在于其优异的开关性能和高频特性。这使得它在射频混频器、检波二极管、功率整流器、电源或电路电压钳位/削波电路、反向电流和放电保护、采样保持电路以及太阳能电池等领域有着广泛的应用。</p><h3 id="特别之处"><a class="markdownIt-Anchor" href="#特别之处"></a> 特别之处</h3><ol><li><strong>高效率</strong>：由于低正向导通压降，肖特基二极管在高频整流中具有更高的效率。</li><li><strong>快速响应</strong>：快速的切换速度使得肖特基二极管能够应对高速变化的信号。</li></ol><h3 id="应用领域"><a class="markdownIt-Anchor" href="#应用领域"></a> 应用领域</h3><ol><li><strong>射频混频器和检波二极管</strong>：在射频通信中，肖特基二极管用于实现信号的混频和检波功能。</li><li><strong>功率整流器</strong>：由于其高电流承受能力，肖特基二极管常用于功率整流器中，将交流电转换为直流电。</li><li><strong>电源或电路电压钳位/削波电路</strong>：肖特基二极管用于限制电路中的电压峰值，保护敏感元件免受损伤。</li><li><strong>反向电流和放电保护</strong>：在电池等储能设备中，肖特基二极管用于防止反向电流造成的损坏。</li><li><strong>采样保持电路</strong>：在模拟-数字转换器中，肖特基二极管用于维持输入信号的稳定状态。</li><li><strong>太阳能电池</strong>：肖特基二极管用于太阳能电池的旁路电路，提高电池的输出性能。</li></ol>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title>初识k8s</title>
    <link href="https://blog.findingx.cc/2024/02/19/171428/"/>
    <id>https://blog.findingx.cc/2024/02/19/171428/</id>
    <published>2024-02-19T09:14:28.000Z</published>
    <updated>2025-07-11T01:38:06.146Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="kubernetes能做什么"><a class="markdownIt-Anchor" href="#kubernetes能做什么"></a> Kubernetes能做什么</h1><p>Kubernetes（简称K8S）是一款开源的容器编排平台，主要用于自动化部署、管理和扩展容器化应用。以下是Kubernetes的主要功能和用途：</p><ol><li><p><strong>自动化部署</strong>：Kubernetes可以自动化部署容器化应用，包括应用的创建、启动、停止和重启等操作。</p></li><li><p><strong>负载均衡</strong>：Kubernetes可以为容器提供负载均衡服务，使得不同容器之间的请求能够均匀分配，提高应用的整体性能。</p></li><li><p><strong>扩展和缩减</strong>：Kubernetes可以根据应用的需求自动扩展或缩减容器的数量，以满足应用的不同负载需求。</p></li><li><p><strong>故障恢复</strong>：当某个容器出现故障时，Kubernetes可以自动替换这个容器，保证应用的高可用性。</p></li><li><p><strong>服务发现</strong>：Kubernetes可以为每个容器提供唯一的网络标识，使得其他容器可以通过这个标识找到并访问该容器。</p></li><li><p><strong>存储管理</strong>：Kubernetes支持多种类型的存储系统，可以为容器提供持久化的存储服务。</p></li><li><p><strong>安全保障</strong>：Kubernetes提供了丰富的安全策略和工具，可以帮助开发者更好地保护他们的应用。</p></li><li><p><strong>批处理</strong>：除了服务外，Kubernetes还可以管理批处理和CI（持续集成）工作负载，如有需要，可以替换失败的容器。</p></li><li><p><strong>水平扩缩</strong>：使用简单的命令、用户界面或根据CPU使用率自动对你的应用进行扩缩。</p></li><li><p><strong>IPv4/IPv6双栈</strong>：为Pod（容器组）和Service（服务）分配IPv4和IPv6地址。</p></li><li><p><strong>为可扩展性设计</strong>：在不改变上游源代码的情况下为你的Kubernetes集群添加功能。</p></li></ol><p>总的来说，Kubernetes提供了一种高效、灵活的方式来管理容器化应用，使得开发者可以更加专注于应用本身，而不需要关心基础设施的问题。</p><h1 id="他是如何实现多个硬件共同运行一个程序的"><a class="markdownIt-Anchor" href="#他是如何实现多个硬件共同运行一个程序的"></a> 他是如何实现多个硬件共同运行一个程序的</h1><p>Kubernetes通过以下方式实现多个硬件共同运行一个程序：</p><ol><li><p><strong>Pods</strong>：在Kubernetes中，最小的工作单位是Pod，一个Pod可以包含一个或多个容器，这些容器共享存储、网络和其他资源。这意味着，在一个硬件设备（Node）上可以运行多个Pod，每个Pod都可以是一个独立的应用程序或服务。</p></li><li><p><strong>ReplicaSets</strong>：为了确保高可用性，Kubernetes可以使用ReplicaSet来复制Pod的实例，并在多个硬件设备（Node）上运行这些实例。这样即使某个硬件设备发生故障，也不会影响到整个应用的运行。</p></li><li><p><strong>Services</strong>：Kubernetes中的Service是一种抽象，它可以暴露一组Pod的接口，并将请求路由到这些Pod。这意味着，无论Pod在哪个硬件设备上运行，只要它们属于同一个Service，外部就可以通过这个Service来访问它们。</p></li><li><p><strong>Storage Management</strong>：Kubernetes还提供了存储管理功能，可以将数据持久化存储在云存储或其他存储系统中，这样即使硬件设备发生故障，数据也不会丢失。</p></li><li><p><strong>Load Balancing</strong>：Kubernetes还内置了负载均衡功能，可以将请求分发给多个Pod，从而充分利用硬件资源，提高应用性能。</p></li></ol><p>以上就是Kubernetes如何实现多个硬件共同运行一个程序的基本原理。具体实现过程可能会因具体的应用场景和需求有所不同。</p><h1 id="kubernetes-架构"><a class="markdownIt-Anchor" href="#kubernetes-架构"></a> Kubernetes 架构</h1><p>Kubernetes 最初源于谷歌内部的 Borg，提供了面向应用的容器集群部署和管理系统。Kubernetes 的目标旨在消除编排物理 / 虚拟计算，网络和存储基础设施的负担，并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础（平台），用于构建定制化的 workflows 和更高级的自动化任务。 Kubernetes 具备完善的集群管理能力，包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。Kubernetes 还提供完善的管理工具，涵盖开发、部署测试、运维监控等各个环节。</p><p>Kubernetes 借鉴了 Borg 的设计理念，比如 Pod、Service、Label 和单 Pod 单 IP 等。Kubernetes 的整体架构跟 Borg 非常像。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%9D%E8%AF%86k8s/1.jpg" alt="架构" /></p><h2 id="分层架构"><a class="markdownIt-Anchor" href="#分层架构"></a> 分层架构</h2><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%88%9D%E8%AF%86k8s/2.png" alt="架构" /></p><ul><li>核心层：Kubernetes 最核心的功能，对外提供 API 构建高层的应用，对内提供插件式应用执行环境</li><li>应用层：部署（无状态应用、有状态应用、批处理任务、集群应用等）和路由（服务发现、DNS 解析等）、Service Mesh（部分位于应用层）</li><li>管理层：系统度量（如基础设施、容器和网络的度量），自动化（如自动扩展、动态 Provision 等）以及策略管理（RBAC、Quota、PSP、NetworkPolicy 等）、Service Mesh（部分位于管理层）</li><li>接口层：kubectl 命令行工具、客户端 SDK 以及集群联邦</li><li>生态系统：在接口层之上的庞大容器集群管理调度的生态系统，可以划分为两个范畴</li><li>Kubernetes 外部：日志、监控、配置管理、CI/CD、Workflow、FaaS、OTS 应用、ChatOps、GitOps、SecOps 等</li><li>Kubernetes 内部：CRI、CNI、CSI、镜像仓库、Cloud Provider、集群自身的配置和管理等</li></ul><h1 id="参考链接"><a class="markdownIt-Anchor" href="#参考链接"></a> 参考链接</h1><p><a target="_blank" rel="noopener" href="https://jimmysong.io/kubernetes-handbook/concepts/">架构</a><br /><a target="_blank" rel="noopener" href="https://jimmysong.io/kubernetes-handbook/practice/install-kubernetes-on-centos.html">部署</a></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="k8s" scheme="https://blog.findingx.cc/tags/k8s/"/>
    
    <category term="服务器" scheme="https://blog.findingx.cc/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>ESP8266 arduino http OTA</title>
    <link href="https://blog.findingx.cc/2024/01/15/191024/"/>
    <id>https://blog.findingx.cc/2024/01/15/191024/</id>
    <published>2024-01-15T11:10:24.000Z</published>
    <updated>2025-07-11T01:38:06.138Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>ESP8266不仅可以通过IDE进行OTA，也可以通过具体网址进行OTA</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ESP8266httpUpdate.h&gt;</span></span></span><br><span class="line"><span class="comment">// ESP8266HTTPUpdateServer httpUpdater;</span></span><br><span class="line">WiFiClient UpdateClient;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 功能：联网下载固件文件OTA</span></span><br><span class="line"><span class="comment"> * @param NONE</span></span><br><span class="line"><span class="comment"> * @return NONE</span></span><br><span class="line"><span class="comment"> * @example https_OTA();</span></span><br><span class="line"><span class="comment"> * @note NONE</span></span><br><span class="line"><span class="comment"> * @link https://zhuanlan.zhihu.com/p/435855807</span></span><br><span class="line"><span class="comment"> * @history</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-05 初始版本，未能实现功能</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-08 更新变量 UpdateClient，成功升级</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">https_OTA</span><span class="params">()</span> </span>&#123;</span><br><span class="line">  <span class="keyword">while</span> (<span class="number">1</span>) &#123;</span><br><span class="line">    <span class="comment">// 设置回调函数以获取下载进度</span></span><br><span class="line">    ESPhttpUpdate.<span class="built_in">onProgress</span>([](<span class="type">int</span> progress, <span class="type">int</span> total) &#123;</span><br><span class="line">      Serial.<span class="built_in">printf</span>(<span class="string">&quot;Progress: %d%%\n&quot;</span>, (progress * <span class="number">100</span>) / total);</span><br><span class="line">      strip.<span class="built_in">setPixelColor</span>(((progress / (total / <span class="number">100</span>))) - <span class="number">1</span>, (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span> * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>);</span><br><span class="line">      strip.<span class="built_in">show</span>();</span><br><span class="line">    &#125;);</span><br><span class="line"></span><br><span class="line">    t_httpUpdate_return ret = ESPhttpUpdate.<span class="built_in">update</span>(UpdateClient, <span class="string">&quot;http://xxxxxxxx/beta_0_0_1.bin&quot;</span>);</span><br><span class="line">    <span class="comment">// t_httpUpdate_return ESP8266HTTPUpdate::handleUpdate(&quot;http://hp-l.gitee.io/electronic_calendar_main/IoT/electronic.bin&quot;);</span></span><br><span class="line">    <span class="keyword">switch</span> (ret) &#123;</span><br><span class="line">      <span class="keyword">case</span> HTTP_UPDATE_OK:</span><br><span class="line">        Serial.<span class="built_in">println</span>(<span class="string">&quot;Firmware updated successfully&quot;</span>);</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">      <span class="keyword">case</span> HTTP_UPDATE_FAILED:</span><br><span class="line">        Serial.<span class="built_in">println</span>(<span class="string">&quot;Firmware update failed&quot;</span>);</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">      <span class="keyword">case</span> HTTP_UPDATE_NO_UPDATES:</span><br><span class="line">        Serial.<span class="built_in">println</span>(<span class="string">&quot;No firmware updates available&quot;</span>);</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">      <span class="keyword">default</span>:</span><br><span class="line">        Serial.<span class="built_in">printf</span>(<span class="string">&quot;Firmware update error %d\n&quot;</span>, ret);</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP8266" scheme="https://blog.findingx.cc/tags/ESP8266/"/>
    
    <category term="arduino" scheme="https://blog.findingx.cc/tags/arduino/"/>
    
    <category term="OTA" scheme="https://blog.findingx.cc/tags/OTA/"/>
    
  </entry>
  
  <entry>
    <title>ESP8266 arduino OTA</title>
    <link href="https://blog.findingx.cc/2024/01/15/190246/"/>
    <id>https://blog.findingx.cc/2024/01/15/190246/</id>
    <published>2024-01-15T11:02:46.000Z</published>
    <updated>2025-07-11T01:38:06.138Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>联网成功后可以通过IDE进行OTA升级，代码如下</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ArduinoOTA.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 功能：OTA初始化</span></span><br><span class="line"><span class="comment"> * @param NONE</span></span><br><span class="line"><span class="comment"> * @return NONE</span></span><br><span class="line"><span class="comment"> * @example arduino_8266_OTA();</span></span><br><span class="line"><span class="comment"> * @note NONE</span></span><br><span class="line"><span class="comment"> * @history</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-05 初始版本</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">arduino_8266_OTA</span><span class="params">()</span> </span>&#123;</span><br><span class="line">  <span class="comment">// OTA设置并启动</span></span><br><span class="line">  <span class="comment">// ArduinoOTA.setHostname(&quot;ESP8266&quot;);</span></span><br><span class="line">  <span class="comment">// ArduinoOTA.setPassword(&quot;12345678&quot;);</span></span><br><span class="line">  ArduinoOTA.<span class="built_in">begin</span>();</span><br><span class="line">  Serial.<span class="built_in">println</span>(<span class="string">&quot;OTA ready&quot;</span>);</span><br><span class="line">  ArduinoOTA.<span class="built_in">onStart</span>([]() &#123;</span><br><span class="line">    String type;</span><br><span class="line">    <span class="keyword">if</span> (ArduinoOTA.<span class="built_in">getCommand</span>() == U_FLASH) &#123;</span><br><span class="line">      type = <span class="string">&quot;sketch&quot;</span>;</span><br><span class="line">    &#125; <span class="keyword">else</span> &#123;  <span class="comment">// U_FS</span></span><br><span class="line">      type = <span class="string">&quot;filesystem&quot;</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    Serial.<span class="built_in">println</span>(<span class="string">&quot;Start updating &quot;</span> + type);</span><br><span class="line">  &#125;);</span><br><span class="line">  ArduinoOTA.<span class="built_in">onProgress</span>([](<span class="type">unsigned</span> <span class="type">int</span> progress, <span class="type">unsigned</span> <span class="type">int</span> total) &#123;</span><br><span class="line">    Serial.<span class="built_in">printf</span>(<span class="string">&quot;Progress: %u%%\r&quot;</span>, (progress / (total / <span class="number">100</span>)));</span><br><span class="line"></span><br><span class="line">    <span class="comment">// strip.setPixelColor((progress / (total / 100)) - 1, 1, 0, 1);</span></span><br><span class="line">    strip.<span class="built_in">setPixelColor</span>(((progress / (total / <span class="number">100</span>))) - <span class="number">1</span>, (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span> * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>, (<span class="number">255</span> - (progress / (total / <span class="number">100</span>)) / <span class="number">100</span> * <span class="number">255</span>) * brightness / <span class="number">100</span>);</span><br><span class="line">    strip.<span class="built_in">show</span>();</span><br><span class="line">  &#125;);</span><br><span class="line">  ArduinoOTA.<span class="built_in">onError</span>([](<span class="type">ota_error_t</span> error) &#123;</span><br><span class="line">    Serial.<span class="built_in">printf</span>(<span class="string">&quot;OTA更新发生错误[%u]: &quot;</span>, error);</span><br><span class="line">    <span class="keyword">if</span> (error == OTA_AUTH_ERROR) &#123;</span><br><span class="line">      Serial.<span class="built_in">println</span>(<span class="string">&quot;认证失败&quot;</span>);</span><br><span class="line">    &#125; <span class="keyword">else</span> <span class="keyword">if</span> (error == OTA_BEGIN_ERROR) &#123;</span><br><span class="line">      Serial.<span class="built_in">println</span>(<span class="string">&quot;开始失败&quot;</span>);</span><br><span class="line">    &#125; <span class="keyword">else</span> <span class="keyword">if</span> (error == OTA_CONNECT_ERROR) &#123;</span><br><span class="line">      Serial.<span class="built_in">println</span>(<span class="string">&quot;连接失败&quot;</span>);</span><br><span class="line">    &#125; <span class="keyword">else</span> <span class="keyword">if</span> (error == OTA_RECEIVE_ERROR) &#123;</span><br><span class="line">      Serial.<span class="built_in">println</span>(<span class="string">&quot;接收失败&quot;</span>);</span><br><span class="line">    &#125; <span class="keyword">else</span> <span class="keyword">if</span> (error == OTA_END_ERROR) &#123;</span><br><span class="line">      Serial.<span class="built_in">println</span>(<span class="string">&quot;结束失败&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">// 复位设备</span></span><br><span class="line">    ESP.<span class="built_in">restart</span>();</span><br><span class="line">  &#125;);</span><br><span class="line">  ArduinoOTA.<span class="built_in">onEnd</span>([]() &#123;</span><br><span class="line">    Serial.<span class="built_in">println</span>(<span class="string">&quot;OTA更新结束&quot;</span>);</span><br><span class="line">    strip.<span class="built_in">clear</span>();  <span class="comment">// 关闭所有灯</span></span><br><span class="line">  &#125;);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>以上代码中<code>brightness</code>是led的亮度，范围是<code>1</code>~<code>100</code>，setPixelColor可以参考点亮ws2812的文章</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP8266" scheme="https://blog.findingx.cc/tags/ESP8266/"/>
    
    <category term="arduino" scheme="https://blog.findingx.cc/tags/arduino/"/>
    
    <category term="OTA" scheme="https://blog.findingx.cc/tags/OTA/"/>
    
  </entry>
  
  <entry>
    <title>ESP8266 arduino 无线联网</title>
    <link href="https://blog.findingx.cc/2024/01/15/184136/"/>
    <id>https://blog.findingx.cc/2024/01/15/184136/</id>
    <published>2024-01-15T10:41:36.000Z</published>
    <updated>2025-07-11T01:38:06.139Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="esp8266-wifi-联网函数"><a class="markdownIt-Anchor" href="#esp8266-wifi-联网函数"></a> ESP8266 WiFi 联网函数</h1><h2 id="wifi部分联网"><a class="markdownIt-Anchor" href="#wifi部分联网"></a> WiFi部分联网</h2><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ESP8266WiFi.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;ESP8266mDNS.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">const</span> <span class="type">char</span> *ssid = <span class="string">&quot;wifi_ssid&quot;</span>;</span><br><span class="line"><span class="type">const</span> <span class="type">char</span> *password = <span class="string">&quot;wifi_password&quot;</span>;</span><br><span class="line"></span><br><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 功能：Wifi连接</span></span><br><span class="line"><span class="comment"> * @param NONE</span></span><br><span class="line"><span class="comment"> * @return NONE</span></span><br><span class="line"><span class="comment"> * @example connectWifi();</span></span><br><span class="line"><span class="comment"> * @note NONE</span></span><br><span class="line"><span class="comment"> * @history</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-05 初始版本</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">connectWifi</span><span class="params">()</span> </span>&#123;</span><br><span class="line">  <span class="comment">// 开始连接wifi</span></span><br><span class="line">  WiFi.<span class="built_in">begin</span>(ssid, password);</span><br><span class="line">  <span class="type">int</span> num = <span class="number">0</span>;</span><br><span class="line">  <span class="comment">// 等待WiFi连接,连接成功打印IP</span></span><br><span class="line">  <span class="keyword">while</span> (WiFi.<span class="built_in">status</span>() != WL_CONNECTED) &#123;</span><br><span class="line">    Serial.<span class="built_in">print</span>(<span class="string">&quot;.&quot;</span>);</span><br><span class="line">    <span class="built_in">delay</span>(<span class="number">500</span>);</span><br><span class="line">    num = num + <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">if</span> (num &gt; <span class="number">9</span>) &#123;</span><br><span class="line">      <span class="keyword">break</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    strip.<span class="built_in">clear</span>();  <span class="comment">// 关闭所有灯</span></span><br><span class="line">  &#125;</span><br><span class="line">  Serial.<span class="built_in">println</span>(<span class="string">&quot;&quot;</span>);</span><br><span class="line">  Serial.<span class="built_in">println</span>(<span class="string">&quot;WiFi Connected!&quot;</span>);</span><br><span class="line">  Serial.<span class="built_in">print</span>(<span class="string">&quot;IP address:\t&quot;</span>);</span><br><span class="line">  Serial.<span class="built_in">println</span>(WiFi.<span class="built_in">localIP</span>());</span><br><span class="line">  <span class="keyword">if</span> (WiFi.<span class="built_in">status</span>() != WL_CONNECTED) &#123;</span><br><span class="line">    <span class="built_in">connectsoftAP</span>();  <span class="comment">// 无法连接 WiFi 打开 AP 模式</span></span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="ap-部分"><a class="markdownIt-Anchor" href="#ap-部分"></a> AP 部分</h2><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/**</span></span><br><span class="line"><span class="comment"> * 功能：AP连接</span></span><br><span class="line"><span class="comment"> * @param NONE</span></span><br><span class="line"><span class="comment"> * @return NONE</span></span><br><span class="line"><span class="comment"> * @example connectsoftAP();</span></span><br><span class="line"><span class="comment"> * @note NONE</span></span><br><span class="line"><span class="comment"> * @history</span></span><br><span class="line"><span class="comment"> * V0.0.1 2024-01-05 初始版本</span></span><br><span class="line"><span class="comment"> * */</span></span><br><span class="line"><span class="function"><span class="type">void</span> <span class="title">connectsoftAP</span><span class="params">()</span> </span>&#123;</span><br><span class="line">  <span class="comment">// 设置内网</span></span><br><span class="line">  <span class="function">IPAddress <span class="title">softLocal</span><span class="params">(<span class="number">192</span>, <span class="number">168</span>, <span class="number">128</span>, <span class="number">1</span>)</span></span>;  <span class="comment">// 1 设置内网WIFI IP地址</span></span><br><span class="line">  <span class="function">IPAddress <span class="title">softGateway</span><span class="params">(<span class="number">192</span>, <span class="number">168</span>, <span class="number">128</span>, <span class="number">1</span>)</span></span>;</span><br><span class="line">  <span class="function">IPAddress <span class="title">softSubnet</span><span class="params">(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0</span>)</span></span>;</span><br><span class="line">  WiFi.<span class="built_in">softAPConfig</span>(softLocal, softGateway, softSubnet);</span><br><span class="line">  String apName = (<span class="string">&quot;ESP8266_&quot;</span> + (String)ESP.<span class="built_in">getChipId</span>());  <span class="comment">// 2 设置WIFI名称</span></span><br><span class="line">  <span class="type">const</span> <span class="type">char</span>* softAPName = apName.<span class="built_in">c_str</span>();</span><br><span class="line">  WiFi.<span class="built_in">softAP</span>(softAPName, <span class="string">&quot;adminadmin&quot;</span>);  <span class="comment">// 3创建wifi  名称 +密码 adminadmin  IPAddress myIP = WiFi.softAPIP();  // 4输出创建的WIFI IP地址</span></span><br><span class="line">  Serial.<span class="built_in">print</span>(<span class="string">&quot;AP IP address: &quot;</span>);</span><br><span class="line">  Serial.<span class="built_in">println</span>(WiFi.<span class="built_in">localIP</span>());</span><br><span class="line">  <span class="comment">// ESP_IP = WiFi.localIP().toString();</span></span><br><span class="line">  Serial.<span class="built_in">print</span>(<span class="string">&quot;softAPName: &quot;</span>);  <span class="comment">// 5输出WIFI 名称</span></span><br><span class="line">  Serial.<span class="built_in">println</span>(apName);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP8266" scheme="https://blog.findingx.cc/tags/ESP8266/"/>
    
    <category term="arduino" scheme="https://blog.findingx.cc/tags/arduino/"/>
    
    <category term="C++" scheme="https://blog.findingx.cc/tags/C/"/>
    
  </entry>
  
  <entry>
    <title>arduino ESP8266点亮ws2812b</title>
    <link href="https://blog.findingx.cc/2023/12/28/155718/"/>
    <id>https://blog.findingx.cc/2023/12/28/155718/</id>
    <published>2023-12-28T07:57:18.000Z</published>
    <updated>2025-07-11T01:38:06.141Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="软件环境配置"><a class="markdownIt-Anchor" href="#软件环境配置"></a> 软件环境配置</h1><p>在如图位置输入开发版管理地址<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/arduino-esp8266%E7%82%B9%E4%BA%AEws2812b/1.png" alt="1.png" /></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https<span class="punctuation">:</span><span class="comment">//arduino.esp8266.com/stable/package_esp8266com_index.json</span></span><br></pre></td></tr></table></figure><h1 id="硬件连接"><a class="markdownIt-Anchor" href="#硬件连接"></a> 硬件连接</h1><p>DIN 接 Nodemcu PIN D7</p><h1 id="代码"><a class="markdownIt-Anchor" href="#代码"></a> 代码</h1><h2 id="彩虹灯"><a class="markdownIt-Anchor" href="#彩虹灯"></a> 彩虹灯</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;Adafruit_NeoPixel.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> PIN D7  <span class="comment">// pin on which the NeoPixels are connected</span></span></span><br><span class="line"> </span><br><span class="line"><span class="comment">// How many NeoPixels are attached to the Arduino?</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> NUMPIXELS 8 <span class="comment">//流水灯数量</span></span></span><br><span class="line"> </span><br><span class="line"><span class="comment">// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.</span></span><br><span class="line">Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);</span><br><span class="line"> </span><br><span class="line"><span class="comment">// This is the &#x27;setup&#x27; function. It runs once, when the Arduino is powered on or reset.</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">setup</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">  pixels.begin(); <span class="comment">// This initializes the NeoPixel library.</span></span><br><span class="line">&#125;</span><br><span class="line"> </span><br><span class="line"><span class="comment">// This is the &#x27;loop&#x27; function. It runs over and over again, as long as the Arduino has power</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">loop</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">  </span><br><span class="line">  rainbow(<span class="number">10</span>);             <span class="comment">// 彩虹灯</span></span><br><span class="line"></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">rainbow</span><span class="params">(<span class="type">int</span> wait)</span> &#123;</span><br><span class="line">  <span class="comment">// Hue of first pixel runs 5 complete loops through the color wheel.</span></span><br><span class="line">  <span class="comment">// Color wheel has a range of 65536 but it&#x27;s OK if we roll over, so</span></span><br><span class="line">  <span class="comment">// just count from 0 to 5*65536. Adding 256 to firstPixelHue each time</span></span><br><span class="line">  <span class="comment">// means we&#x27;ll make 5*65536/256 = 1280 passes through this loop:</span></span><br><span class="line">  <span class="keyword">for</span>(<span class="type">long</span> firstPixelHue = <span class="number">0</span>; firstPixelHue &lt; <span class="number">5</span>*<span class="number">65536</span>; firstPixelHue += <span class="number">256</span>) &#123;</span><br><span class="line">    <span class="comment">// strip.rainbow() can take a single argument (first pixel hue) or</span></span><br><span class="line">    <span class="comment">// optionally a few extras: number of rainbow repetitions (default 1),</span></span><br><span class="line">    <span class="comment">// saturation and value (brightness) (both 0-255, similar to the</span></span><br><span class="line">    <span class="comment">// ColorHSV() function, default 255), and a true/false flag for whether</span></span><br><span class="line">    <span class="comment">// to apply gamma correction to provide &#x27;truer&#x27; colors (default true).</span></span><br><span class="line">    pixels.rainbow(firstPixelHue);</span><br><span class="line">    <span class="comment">// Above line is equivalent to:</span></span><br><span class="line">    <span class="comment">// strip.rainbow(firstPixelHue, 1, 255, 255, true);</span></span><br><span class="line">    pixels.show(); <span class="comment">// Update strip with new contents</span></span><br><span class="line">    delay(wait);  <span class="comment">// Pause for a moment</span></span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="参考链接"><a class="markdownIt-Anchor" href="#参考链接"></a> 参考链接</h2><p><a target="_blank" rel="noopener" href="https://www.sohu.com/a/153985016_796852">https://www.sohu.com/a/153985016_796852</a></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="机器之魂魄" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E9%AD%82%E9%AD%84/"/>
    
    <category term="ESP8266" scheme="https://blog.findingx.cc/tags/ESP8266/"/>
    
    <category term="arduino" scheme="https://blog.findingx.cc/tags/arduino/"/>
    
    <category term="ws2812b" scheme="https://blog.findingx.cc/tags/ws2812b/"/>
    
  </entry>
  
  <entry>
    <title>记录一次MIQI RK3288 board折腾</title>
    <link href="https://blog.findingx.cc/2023/12/19/124059/"/>
    <id>https://blog.findingx.cc/2023/12/19/124059/</id>
    <published>2023-12-19T04:40:59.000Z</published>
    <updated>2025-07-11T01:38:06.154Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="相关资料"><a class="markdownIt-Anchor" href="#相关资料"></a> 相关资料</h1><p>链接</p><h1 id="下载镜像"><a class="markdownIt-Anchor" href="#下载镜像"></a> 下载镜像</h1><p>链接</p><h1 id="烧录"><a class="markdownIt-Anchor" href="#烧录"></a> 烧录</h1><p>步骤123</p><h1 id="解决问题"><a class="markdownIt-Anchor" href="#解决问题"></a> 解决问题</h1><h2 id="无法更新"><a class="markdownIt-Anchor" href="#无法更新"></a> 无法更新</h2><p>解决16.04无法升级软件问题，清空 <code>/etc/apt/apt.conf</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">echo &gt; /etc/apt/apt.conf</span><br></pre></td></tr></table></figure><p>清空后成功升级，可是换源后又出现无法升级的问题</p><p>上网查询相关信息说需要安装<code>apt-transport-https</code>，但是我这里提示找不到相关包，<br />然后执行命令:</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd /usr/lib/apt/methods</span><br><span class="line">ln -s http https</span><br></pre></td></tr></table></figure><p>来骗一下apt，让它把http当成https。。。</p><p>成功update</p><h2 id="hdmi无法启动桌面"><a class="markdownIt-Anchor" href="#hdmi无法启动桌面"></a> HDMI无法启动桌面</h2><p>漫长更新后reboot，结果桌面无法启动。。。</p><p>再次上网求助，尝试过查找HDMI设备，等办法无用，最后想干脆远程桌面于是安装了x11vnc，reboot后HDMI奇迹般能使用了</p><p>编辑文件<code>/etc/X11/xorg.conf</code></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">Section &quot;Monitor&quot;</span><br><span class="line">        Identifier   &quot;Monitor0&quot;</span><br><span class="line">        VendorName   &quot;Monitor Vendor&quot;</span><br><span class="line">        ModelName    &quot;Monitor Model&quot;</span><br><span class="line">        Modeline &quot;1280x1024_60.00&quot;  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync</span><br><span class="line">EndSection</span><br></pre></td></tr></table></figure><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install x11vnc</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="linux" scheme="https://blog.findingx.cc/tags/linux/"/>
    
    <category term="MIQI" scheme="https://blog.findingx.cc/tags/MIQI/"/>
    
    <category term="KR3288" scheme="https://blog.findingx.cc/tags/KR3288/"/>
    
  </entry>
  
  <entry>
    <title>平衡三进制</title>
    <link href="https://blog.findingx.cc/2023/12/12/141228/"/>
    <id>https://blog.findingx.cc/2023/12/12/141228/</id>
    <published>2023-12-12T06:12:28.000Z</published>
    <updated>2025-07-11T01:38:06.148Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="范例"><a class="markdownIt-Anchor" href="#范例"></a> 范例</h1><p>这是一个不太标准的计数体系。</p><p>我们使用<code>Z</code>表示<code>-1</code>，使用<code>1</code>、<code>0</code>、<code>Z</code>表示三进制</p><p>举个例子：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">0    0</span><br><span class="line">1    1</span><br><span class="line">2    1Z</span><br><span class="line">3    10</span><br><span class="line">4    11</span><br><span class="line">5    1ZZ</span><br><span class="line">6    1Z0</span><br><span class="line">7    1Z1</span><br><span class="line">8    10Z</span><br><span class="line">9    100</span><br></pre></td></tr></table></figure><p>负数如下，只需倒过来即可</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">-1   Z</span><br><span class="line">-2   Z1</span><br><span class="line">-3   Z0</span><br><span class="line">-4   ZZ</span><br><span class="line">-5   Z11</span><br></pre></td></tr></table></figure><h1 id="过程"><a class="markdownIt-Anchor" href="#过程"></a> 过程</h1><p>平衡三进制转换法：给定数x =&gt; 标准三进制 =&gt; 如遇到2转为Z，同时下一位加上1，遇到3换为0，下一位加上1（如遇2=&gt;Z、3=&gt;0，左边一位+1）</p><h2 id="一个例子"><a class="markdownIt-Anchor" href="#一个例子"></a> 一个例子</h2><p>851 转换为 平衡三进制</p><p>$ 851_{(10)} = 1011112_{(3)} $</p><p><code>2 =&gt; Z + 1</code></p><p><code>11ZZZZZ</code></p><h2 id="测试代码"><a class="markdownIt-Anchor" href="#测试代码"></a> 测试代码</h2><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">decimal_to_balanced_ternary</span>(<span class="params">decimal_num</span>):</span><br><span class="line">    <span class="string">&quot;&quot;&quot;</span></span><br><span class="line"><span class="string">    将10进制数转换为平衡三进制数</span></span><br><span class="line"><span class="string">    &quot;&quot;&quot;</span></span><br><span class="line">    <span class="keyword">if</span> decimal_num == <span class="number">0</span>:</span><br><span class="line">        <span class="keyword">return</span> <span class="string">&#x27;0&#x27;</span></span><br><span class="line"></span><br><span class="line">    <span class="comment"># 定义三进制数字符号</span></span><br><span class="line">    digits = [<span class="string">&#x27;0&#x27;</span>, <span class="string">&#x27;1&#x27;</span>, <span class="string">&#x27;Z&#x27;</span>]</span><br><span class="line">    balanced_ternary_num = <span class="string">&#x27;&#x27;</span></span><br><span class="line">    <span class="keyword">while</span> decimal_num != <span class="number">0</span>:</span><br><span class="line">        remainder = decimal_num % <span class="number">3</span></span><br><span class="line">        decimal_num //= <span class="number">3</span></span><br><span class="line">        <span class="keyword">if</span> remainder == <span class="number">2</span>:</span><br><span class="line">            decimal_num += <span class="number">1</span></span><br><span class="line">        balanced_ternary_num = digits[remainder] + balanced_ternary_num</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> balanced_ternary_num</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># 测试代码</span></span><br><span class="line"><span class="built_in">print</span>(decimal_to_balanced_ternary(<span class="number">10</span>))   <span class="comment"># 输出：&#x27;101&#x27;</span></span><br><span class="line"><span class="built_in">print</span>(decimal_to_balanced_ternary(<span class="number">65</span>))   <span class="comment"># 输出：&#x27;1Z11Z&#x27;</span></span><br><span class="line"><span class="built_in">print</span>(decimal_to_balanced_ternary(<span class="number">0</span>))    <span class="comment"># 输出：&#x27;0&#x27;</span></span><br><span class="line"><span class="built_in">print</span>(decimal_to_balanced_ternary(<span class="number">851</span>))    <span class="comment"># 输出：&#x27;11ZZZZZ&#x27;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="进制" scheme="https://blog.findingx.cc/tags/%E8%BF%9B%E5%88%B6/"/>
    
  </entry>
  
  <entry>
    <title>M710Q解锁高级选项</title>
    <link href="https://blog.findingx.cc/2023/11/22/011625/"/>
    <id>https://blog.findingx.cc/2023/11/22/011625/</id>
    <published>2023-11-21T17:16:25.000Z</published>
    <updated>2025-07-11T01:38:06.139Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="参考链接"><a class="markdownIt-Anchor" href="#参考链接"></a> 参考链接</h2><p><a target="_blank" rel="noopener" href="https://www.bilibili.com/read/cv26220325/">联想M710Q解锁高级选项</a></p><p><a target="_blank" rel="noopener" href="https://www.bilibili.com/video/BV1jv4y1F7zM/">M710Q 别再用电阻给风扇降速了 教你用bios给风扇调速 解锁高级菜单 降压超频</a></p><h2 id="实施步骤"><a class="markdownIt-Anchor" href="#实施步骤"></a> 实施步骤</h2><ol><li><p>先从官网下载 BIOS</p><p><a target="_blank" rel="noopener" href="http://www.smxdiy.com/thread-1299-1-1.html">http://www.smxdiy.com/thread-1299-1-1.html</a></p><blockquote><p>安装时可以选择解压到本地</p></blockquote></li><li><p>解压到本地后找到 ROM 文件，使用UEFI Tool，查找<code>Hide CRB Items</code></p><p><a target="_blank" rel="noopener" href="https://github.com/LongSoft/UEFITool">GitHub - LongSoft/UEFITool: UEFI firmware image viewer and editor</a></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/M710Q%E8%A7%A3%E9%94%81%E9%AB%98%E7%BA%A7%E9%80%89%E9%A1%B9/image-20231122005754-hjqqmzm.png" alt="image" /></p><p>双击下方的Message定位到包含块，右键Extract body导出文件 txt。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/M710Q%E8%A7%A3%E9%94%81%E9%AB%98%E7%BA%A7%E9%80%89%E9%A1%B9/image-20231122005857-n9rdggf.png" alt="image" /></p><p>打开文件搜索<code>Hide CRB Items</code>，我的是<code>0xFE3</code></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/M710Q%E8%A7%A3%E9%94%81%E9%AB%98%E7%BA%A7%E9%80%89%E9%A1%B9/image-20231122010007-ppedykk.png" alt="image" /></p><blockquote><p>每台机可能有所不同</p></blockquote></li><li><p>下载efi 文件，修改文件名为<code>Bootx64.efi</code>文件放到 fat32 格式的 U 盘下，路径为<code>/EFI/boot/Bootx64.efi</code>，重启计算机进入引导程序，输入以下命令</p><blockquote><p>文件可以从视频博主的 QQ 群下载，一可以在本站下载</p><p><a href="setup_var.efi">setup_var.efi</a></p><p>命令说明：<code>setup_var 地址 值</code></p></blockquote> <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">setup_var 0xFE3 0</span><br><span class="line">reboot</span><br></pre></td></tr></table></figure><p>重启会发现有一些变化</p></li></ol>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="黑苹果" scheme="https://blog.findingx.cc/tags/%E9%BB%91%E8%8B%B9%E6%9E%9C/"/>
    
    <category term="macOS" scheme="https://blog.findingx.cc/tags/macOS/"/>
    
  </entry>
  
  <entry>
    <title>DNS | github访问不了解决方法</title>
    <link href="https://blog.findingx.cc/2023/11/17/034404/"/>
    <id>https://blog.findingx.cc/2023/11/17/034404/</id>
    <published>2023-11-16T19:44:04.000Z</published>
    <updated>2025-07-11T01:38:06.137Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="dns-github访问不了解决方法"><a class="markdownIt-Anchor" href="#dns-github访问不了解决方法"></a> DNS | github访问不了解决方法</h1><p>常见速度慢的原因有以下几种可能：</p><ul><li>网络本来速度慢(不太可能)</li><li>DNS解析配置导致</li><li>hosts域名ip解析配置导致</li><li>网络带宽过大(不常见)</li></ul><p>将一下代码追加到host文件中</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><span class="line"># github start</span><br><span class="line"># Github Hosts</span><br><span class="line"># Update 20210312</span><br><span class="line">140.82.112.3 github.com</span><br><span class="line">140.82.112.10 nodeload.github.com</span><br><span class="line">140.82.114.6 api.github.com</span><br><span class="line">13.229.189.0 codeload.github.com</span><br><span class="line">185.199.110.133 raw.github.com</span><br><span class="line">185.199.110.153 training.github.com</span><br><span class="line">185.199.110.153 assets-cdn.github.com</span><br><span class="line">185.199.110.153 documentcloud.github.com</span><br><span class="line">185.199.110.154 help.github.com</span><br><span class="line">185.199.110.153 githubstatus.com</span><br><span class="line">199.232.69.194 github.global.ssl.fastly.net</span><br><span class="line">185.199.110.133 raw.githubusercontent.com</span><br><span class="line">185.199.110.133 cloud.githubusercontent.com</span><br><span class="line">185.199.110.133 gist.githubusercontent.com</span><br><span class="line">185.199.110.133 marketplace-screenshots.githubusercontent.com</span><br><span class="line">185.199.110.133 repository-images.githubusercontent.com</span><br><span class="line">185.199.110.133 user-images.githubusercontent.com</span><br><span class="line">185.199.110.133 desktop.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars0.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars1.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars2.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars3.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars4.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars5.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars6.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars7.githubusercontent.com</span><br><span class="line">185.199.110.133 avatars8.githubusercontent.com</span><br><span class="line"># End of the section</span><br><span class="line">#192.30.255.112  github.com git </span><br><span class="line">#185.31.16.184 github.global.ssl.fastly.net</span><br><span class="line">#140.82.114.4 github.com</span><br><span class="line">#140.82.114.4 gist.github.com</span><br><span class="line">#185.199.108.153 assets-cdn.github.com</span><br><span class="line">#151.101.64.133 raw.githubusercontent.com</span><br><span class="line">#151.101.108.133 gist.githubusercontent.com</span><br><span class="line">#151.101.108.133 cloud.githubusercontent.com</span><br><span class="line">#151.101.108.133 camo.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars0.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars1.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars2.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars3.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars4.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars5.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars6.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars7.githubusercontent.com</span><br><span class="line">#151.101.108.133 avatars8.githubusercontent.com </span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="方法论" scheme="https://blog.findingx.cc/tags/%E6%96%B9%E6%B3%95%E8%AE%BA/"/>
    
  </entry>
  
  <entry>
    <title>M710Q黑苹果折腾记录</title>
    <link href="https://blog.findingx.cc/2023/11/14/153249/"/>
    <id>https://blog.findingx.cc/2023/11/14/153249/</id>
    <published>2023-11-14T07:32:49.000Z</published>
    <updated>2025-07-11T01:38:06.139Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="m710q黑苹果折腾记录"><a class="markdownIt-Anchor" href="#m710q黑苹果折腾记录"></a> M710Q黑苹果折腾记录</h1><p>本人小白，23 年 9 月才有了第一台黑苹果，纯属折腾玩，想稳定以及更深入了解与制作黑苹果 EFI 可以参考黑果小兵、国光黑苹果教程，参考有链接。</p><p>上图</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/M710Q%E9%BB%91%E8%8B%B9%E6%9E%9C%E6%8A%98%E8%85%BE%E8%AE%B0%E5%BD%95/1.jpg" alt="1.jpg" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/M710Q%E9%BB%91%E8%8B%B9%E6%9E%9C%E6%8A%98%E8%85%BE%E8%AE%B0%E5%BD%95/2.png" alt="2.png" /></p><h2 id="黑苹果型号"><a class="markdownIt-Anchor" href="#黑苹果型号"></a> 黑苹果型号</h2><p>主板 ：联想 M710Q</p><p>CPU ： i3-7100t</p><p>显卡 ： Intel HD Graphics 630</p><p>无线网卡 ： AX210（无法实现隔空投送）</p><p>声卡 ： ALC294（layout-id 21）</p><p>以太网 ：免驱</p><h1 id="参考"><a class="markdownIt-Anchor" href="#参考"></a> 参考</h1><p>关于资源搜索参考黑果小兵的一段话</p><blockquote><p>建议大家使用<a target="_blank" rel="noopener" href="https://yandex.ru/">yandex搜索引擎</a>、<a target="_blank" rel="noopener" href="https://github.com/">github</a>先搜索下有没有自己的机型，型号一样，机型配置有差异可以忽略，使用你的机器型号+clover、型号+EFI、型号+mac、型号+Hackintosh等进行搜索。例如我最近更新了 elitebook840g3、840g4等几个机型的 EFI，就可以使用840g3+clover 840g3+EFI 等关键词进行搜索。</p></blockquote><p>在github能搜索出较多同一平台单配置和自己需求不太一样的资源，理论上一部分是能够开机的，可以后期在维护相关的驱动。</p><p>另外下面两个大佬链接值得一看</p><p>黑果配置</p><p><a target="_blank" rel="noopener" href="https://blog.daliansky.net/">黑果小兵的部落阁</a></p><p>驱动制作</p><p><a target="_blank" rel="noopener" href="https://apple.sqlsec.com/">主页 - 国光的黑苹果安装教程：手把手教你配置 OpenCore (sqlsec.com)</a></p><h2 id="折腾过程"><a class="markdownIt-Anchor" href="#折腾过程"></a> 折腾过程</h2><h3 id="bios-设置"><a class="markdownIt-Anchor" href="#bios-设置"></a> BIOS 设置</h3><p>可以参考国光黑苹果教程完成</p><p><a target="_blank" rel="noopener" href="https://apple.sqlsec.com/3-%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C/3-1/">BIOS设置 - 国光的黑苹果安装教程：手把手教你配置 OpenCore (sqlsec.com)</a></p><p>制作启动盘</p><p>工具：<a target="_blank" rel="noopener" href="https://www.balena.io/etcher">balenaEthcher</a></p><h3 id="获取镜像"><a class="markdownIt-Anchor" href="#获取镜像"></a> 获取镜像</h3><p>本镜像取自于远景这个 <a target="_blank" rel="noopener" href="https://i.pcbeta.com/space-uid-3870827.html">349336500</a> 老哥的帖子：<a target="_blank" rel="noopener" href="https://bbs.pcbeta.com/viewthread-1948333-1-1.html">https://bbs.pcbeta.com/viewthread-1948333-1-1.html</a></p><p>以下链接参考自国光的博客</p><figure class="highlight txt"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"># 天翼云：</span><br><span class="line">macOS Ventura 13.1 (22C65)：https://cloud.189.cn/t/YZFzeqU3mmie (访问码:vhy3)</span><br><span class="line">macOS Ventura 13 (22A380)：https://cloud.189.cn/t/ZzQraemMz2Av (访问码:1xur)</span><br><span class="line"></span><br><span class="line"># 阿里云盘：</span><br><span class="line">macOS Ventura 13.4.1 (22F82)：https://www.aliyundrive.com/s/gDSytaiiVfa</span><br><span class="line">macOS Ventura 13.4 (22F66)：https://www.aliyundrive.com/s/LEvFAArLZ5Z</span><br><span class="line">macOS Ventura 13.3 (22E252)：https://www.aliyundrive.com/s/atvncNVMJNc</span><br><span class="line">macOS Ventura 13.2 (22D49)：https://www.aliyundrive.com/s/LL6inEwVUdM</span><br><span class="line">macOS Ventura 13.1 (22C65)：https://www.aliyundrive.com/s/kydfwX7Y1oQ</span><br><span class="line">macOS Ventura 13 (22A380)：https://www.aliyundrive.com/s/BXoD7NgkMBz</span><br><span class="line"></span><br><span class="line"># 本站直连：</span><br><span class="line">https://pan.mediy.cn/%F0%9F%93%81Files/macOS/macOS%20Ventura%2013.4.1%20(22F82)（密码：mediy)</span><br></pre></td></tr></table></figure><h3 id="获取-efi"><a class="markdownIt-Anchor" href="#获取-efi"></a> 获取 EFI</h3><p>方式 1：网上有较多博主分享的 EFI 文件，可以下载试一下能否顺利进入恢复界面</p><p>方式 2：一键生成 EFI 的 APP ： OC_Gen.app</p><p>我使用的是 OC_Gen-X工具，工具使用十分简单。</p><p>如果顺利进入恢复界面就可以安装 macOS 了（我的无线网卡和蓝牙驱动以及定制 USB 驱动都是在系统装好后添加进去的）</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/M710Q%E9%BB%91%E8%8B%B9%E6%9E%9C%E6%8A%98%E8%85%BE%E8%AE%B0%E5%BD%95/image-20231114151922-63arzqw.png" alt="image" /></p><p>将这个原本EFI删除，替换制作好的EFI文件，开机进入启动盘选择Macos install ，剩下的步骤就是正常装机了。</p><p>我使用的EFI文件可以使用邮箱私信我，通过邮件分享（邮箱地址在本站关于页面最下面）。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="黑苹果" scheme="https://blog.findingx.cc/tags/%E9%BB%91%E8%8B%B9%E6%9E%9C/"/>
    
    <category term="macOS" scheme="https://blog.findingx.cc/tags/macOS/"/>
    
  </entry>
  
  <entry>
    <title>SiYuan在docker中自动同步</title>
    <link href="https://blog.findingx.cc/2022/09/09/053446/"/>
    <id>https://blog.findingx.cc/2022/09/09/053446/</id>
    <published>2022-09-08T21:34:46.000Z</published>
    <updated>2025-07-11T01:38:06.141Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="20220909-fri"><a class="markdownIt-Anchor" href="#20220909-fri"></a> 2022.09.09 Fri</h1><h1 id="如何同步思源笔记"><a class="markdownIt-Anchor" href="#如何同步思源笔记"></a> 如何同步思源笔记</h1><h2 id="工具"><a class="markdownIt-Anchor" href="#工具"></a> 工具</h2><ol><li>SiYuan Note</li><li>Docker</li><li>syncthing</li></ol><h2 id="如何解决"><a class="markdownIt-Anchor" href="#如何解决"></a> 如何解决</h2><p>思源笔记软件本体不能同步，网上有一些教程是通过Onedrive同步的，但是需要账号，使用云端资源，于是便想到可以在本地搭建文件同步的服务用于解决笔记同步问题。</p><p>于是我上网寻找，最后找到了syncting</p><h2 id="开始搭建"><a class="markdownIt-Anchor" href="#开始搭建"></a> 开始搭建</h2><h3 id="思源笔记"><a class="markdownIt-Anchor" href="#思源笔记"></a> 思源笔记</h3><p>提示：您可以更改“/your/workspace/part”。 思源的数据存储在“/your/workspace/part”中。 我们稍后会使用它。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo docker run -v /your/workspace/part:/siyuan/workspace -p 6806:6806 -u 1000:1000 --restart=always b3log/siyuan --workspace=/siyuan/workspace/</span><br></pre></td></tr></table></figure><h3 id="搭建-syncthing"><a class="markdownIt-Anchor" href="#搭建-syncthing"></a> 搭建 syncthing</h3><p>你可以根据你的情况改变 “~/docker_softsoftware_date/st-sync” 的内容</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo docker run -d -p 8384:8384 -p 22000:22000 -v ~/docker_softsoftware_date/st-sync:/var/syncthing --restart=always syncthing/syncthing:latest</span><br></pre></td></tr></table></figure><h3 id="syncthing-设置"><a class="markdownIt-Anchor" href="#syncthing-设置"></a> Syncthing 设置.</h3><h4 id="windows-or-linux"><a class="markdownIt-Anchor" href="#windows-or-linux"></a> Windows or Linux</h4><h5 id="添加远程设备"><a class="markdownIt-Anchor" href="#添加远程设备"></a> 添加远程设备</h5><p>复制设备 ID</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SiYuan%E5%9C%A8docker%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%90%8C%E6%AD%A5/image-20220909173428-2pb8iw2.png" alt="image" />​</p><p>将设备 ID 粘贴到局域网上的其他设备中。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SiYuan%E5%9C%A8docker%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%90%8C%E6%AD%A5/image-20220909173836-jdgjywa.png" alt="image" />​</p><h5 id="add-folder"><a class="markdownIt-Anchor" href="#add-folder"></a> Add folder</h5><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/SiYuan%E5%9C%A8docker%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%90%8C%E6%AD%A5/image-20220909174240-m8epauq.png" alt="image" />​</p><p>在不同的终端设备添加共享文件夹</p><p>添加思源数据文件&quot;/your/workspace/part&quot;</p><p>另一台设备添加路径，就像这样： “E:\usr\siyuan\Siyun”</p><h4 id="android"><a class="markdownIt-Anchor" href="#android"></a> Android</h4><h5 id="操作很简单基本和上面一样-下面是应用的截图"><a class="markdownIt-Anchor" href="#操作很简单基本和上面一样-下面是应用的截图"></a> 操作很简单，基本和上面一样。下面是应用的截图。</h5><p><img src="/article/previous/SiYuan%E5%9C%A8docker%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%90%8C%E6%AD%A5/a8db527d00df11a1ce3d44f8ee0eee1-20220909194939-55qhm16.jpg" alt="a8db527d00df11a1ce3d44f8ee0eee1" />​</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="siyuan" scheme="https://blog.findingx.cc/tags/siyuan/"/>
    
  </entry>
  
  <entry>
    <title>树莓派4B搭建java MC服务器</title>
    <link href="https://blog.findingx.cc/2022/06/08/120705/"/>
    <id>https://blog.findingx.cc/2022/06/08/120705/</id>
    <published>2022-06-08T04:07:05.000Z</published>
    <updated>2025-07-11T01:38:06.150Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="java-安装"><a class="markdownIt-Anchor" href="#java-安装"></a> Java 安装</h2><p>安装java17，三个版本可以同时安装</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">sudo apt update</span><br><span class="line">sudo apt install default-jdk</span><br><span class="line">sudo apt install openjdk-8-jdk</span><br><span class="line">sudo apt install openjdk-11-jdk</span><br><span class="line">sudo apt install openjdk-17-jdk</span><br></pre></td></tr></table></figure><p>选择默认java版本，跟换成17</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo update-alternatives --config java</span><br></pre></td></tr></table></figure><h2 id="服务器构建器下载及其安装"><a class="markdownIt-Anchor" href="#服务器构建器下载及其安装"></a> 服务器构建器下载及其安装</h2><p><a target="_blank" rel="noopener" href="https://files.minecraftforge.net/net/minecraftforge/forge/index_1.18.2.html">下载链接</a></p><p><a target="_blank" rel="noopener" href="https://files.minecraftforge.net/net/minecraftforge/forge/">所有版本</a></p><p>点击下载</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE4B%E6%90%AD%E5%BB%BAjava-MC%E6%9C%8D%E5%8A%A1%E5%99%A8/1.png" alt="1.png" /></p><p>或者：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.1.48/forge-1.18.2-40.1.48-installer.jar</span><br></pre></td></tr></table></figure><p>安装</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">java -jar forge-1.18.2-40.1.48-installer.jar -install</span><br></pre></td></tr></table></figure><p>会弹出图形界面，记住安装目录，选择服务器，安装完成。</p><h2 id="运行服务器"><a class="markdownIt-Anchor" href="#运行服务器"></a> 运行服务器</h2><p>cd 到forge安装目录，linux运行</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./run.sh</span><br></pre></td></tr></table></figure><p>没有 eula=true 会报错，新建或者直接编辑eula即可。</p><p>配置eula.txt，没有文件可以直接新建一个，在forge的安装目录的根目录直接写入即可。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">eula=true</span><br></pre></td></tr></table></figure><h2 id="客户端使用"><a class="markdownIt-Anchor" href="#客户端使用"></a> 客户端使用</h2><p>如果是PCL2启动器需要先安装 forge mod，pcl2 进入 mod 查找点开下载文件，手动双击jar安装，这里选择客户端，安装完成后 PCL2 启动 forge 即可，启动后输入IP+端口号码，默认端口25565。</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="树莓派" scheme="https://blog.findingx.cc/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/"/>
    
    <category term="MC" scheme="https://blog.findingx.cc/tags/MC/"/>
    
  </entry>
  
  <entry>
    <title>MOS管与三极管</title>
    <link href="https://blog.findingx.cc/2022/06/01/132405/"/>
    <id>https://blog.findingx.cc/2022/06/01/132405/</id>
    <published>2022-06-01T05:24:05.000Z</published>
    <updated>2025-07-11T01:38:06.140Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="三极管和-mosfet-对比"><a class="markdownIt-Anchor" href="#三极管和-mosfet-对比"></a> 三极管和 MOSFET 对比</h2><h3 id="三极管"><a class="markdownIt-Anchor" href="#三极管"></a> 三极管</h3><p>三极管简称晶体管，分为 NPN 型和 PNP 型两种，是最重要的一种半导体器件。它用于放大作用和开关作用。</p><h3 id="mosfet"><a class="markdownIt-Anchor" href="#mosfet"></a> Mosfet</h3><p>就是场效应管，是一种较新型的半导体器件。外形与普通晶体管相似，但两者的控制特性却截然不同。</p><h3 id="mos-相对三极管的优势"><a class="markdownIt-Anchor" href="#mos-相对三极管的优势"></a> Mos 相对三极管的优势</h3><table><thead><tr><th style="text-align:center"></th><th style="text-align:center">MOSFET</th><th style="text-align:center">二极管</th><th style="text-align:center">结论</th></tr></thead><tbody><tr><td style="text-align:center">驱动方式</td><td style="text-align:center">电压驱动</td><td style="text-align:center">电流驱动</td><td style="text-align:center">MOSFET 更节能</td></tr><tr><td style="text-align:center">热稳定性</td><td style="text-align:center">多子参与导电</td><td style="text-align:center">多子、少子参与导电</td><td style="text-align:center">MOSFET 更稳定</td></tr><tr><td style="text-align:center">压降</td><td style="text-align:center">0V 无压降</td><td style="text-align:center">0.3V</td><td style="text-align:center">MOSFET 更合适集成</td></tr></tbody></table><h2 id="原理对比"><a class="markdownIt-Anchor" href="#原理对比"></a> 原理对比</h2><table><thead><tr><th style="text-align:center">MOSFET</th><th style="text-align:center">二极管</th></tr></thead><tbody><tr><td style="text-align:center">通过控制基极电流才能达到控制集电极电流或发射极电流的目</td><td style="text-align:center">它的输出电流决定于输入端电压的大小，基本上不需要信号源提供电流。</td></tr></tbody></table><h2 id="mosfet-2"><a class="markdownIt-Anchor" href="#mosfet-2"></a> MOSFET</h2><h3 id="概述"><a class="markdownIt-Anchor" href="#概述"></a> 概述</h3><p>分类 --&gt; 原理（N 沟道增强型） --&gt; 电气特性</p><h3 id="分类"><a class="markdownIt-Anchor" href="#分类"></a> 分类</h3><p>按沟道：</p><ul><li>N 沟道</li><li>P 沟道</li></ul><p>按栅极电压：</p><ul><li>耗尽型：当栅极电压为零时漏源极之间就存在导电沟道。</li><li>增强型：有电压才导通<ul><li>对于<code>N</code>沟道器件，栅极电压<code>大于</code>零(<code>&lt;0</code>)时才存在导电沟道。</li><li>对于<code>P</code>沟道器件，栅极电压<code>小于</code>零(<code>&gt;0</code>)时才存在导电沟道。</li></ul></li></ul><p>功率 MOSFET 主要是：N 沟道增强型。</p><h3 id="几种分类及其图标"><a class="markdownIt-Anchor" href="#几种分类及其图标"></a> 几种分类及其图标</h3><h3 id="工作原理"><a class="markdownIt-Anchor" href="#工作原理"></a> 工作原理</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOS%E7%AE%A1-Mosfet/1.jpg" alt="1.jpg" /><br />图中各部分从上往下依次是：</p><ul><li>栅极(Gate)</li><li>漏极(Drain)</li><li>源极(Source)</li><li>橘黄色：金属</li><li>黄色：氧化物</li><li>浅红色：P 掺杂</li><li>深红色：耗尽区(depletion region)</li></ul><p>一下过程模拟<code>栅极(Gate)</code>加压</p><ol><li>当<code>栅极(Gate)</code>未施加电压时(=0)，<code>漏极(Drain)</code>和<code>源极(Source)</code>是断开的，如1.jpg。</li><li>当<code>栅极(Gate)</code>施加电压且<code>大于0</code>(<code>&gt;0</code>)时，<code>漏极(Drain)</code>和<code>源极(Source)</code>是断开的，但是栅极金属层将聚集正电荷，如2.jpg。</li><li>当<code>栅极(Gate)</code>施加电压且<code>大于V_TH</code>(<code>&gt;V_TH</code>)时，<code>漏极(Drain)</code>和<code>源极(Source)</code>之间形成反型层(inversion layer)，反型层相当于N掺杂的半导体，因此<code>漏极(Drain)</code>和<code>源极(Source)</code>直接连通，因此MOSFET导电沟道形成，进入<code>导通</code>状态。如3.jpg。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOS%E7%AE%A1-Mosfet/2.jpg" alt="2.jpg" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOS%E7%AE%A1-Mosfet/3.jpg" alt="3.jpg" /></li></ol><h3 id="输出特性"><a class="markdownIt-Anchor" href="#输出特性"></a> 输出特性</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOS%E7%AE%A1-Mosfet/4.jpg" alt="4.jpg" /></p><ol><li>夹断区(cutoff mode)</li><li>线性区(linear mode)</li><li>饱和区(saturation mode)</li></ol><p>具体情况如下<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/MOS%E7%AE%A1-Mosfet/5.PNG" alt="5.PNG" /></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="元器件之旅" scheme="https://blog.findingx.cc/tags/%E5%85%83%E5%99%A8%E4%BB%B6%E4%B9%8B%E6%97%85/"/>
    
    <category term="mosfet" scheme="https://blog.findingx.cc/tags/mosfet/"/>
    
  </entry>
  
  <entry>
    <title>Hello World</title>
    <link href="https://blog.findingx.cc/2022/05/04/152534/"/>
    <id>https://blog.findingx.cc/2022/05/04/152534/</id>
    <published>2022-05-04T07:25:34.000Z</published>
    <updated>2025-07-11T01:38:06.142Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>Welcome to my Blog!</p><h2 id="git"><a class="markdownIt-Anchor" href="#git"></a> Git</h2><h3 id="git-config命令预先配置好相关的用户信息"><a class="markdownIt-Anchor" href="#git-config命令预先配置好相关的用户信息"></a> git config命令预先配置好相关的用户信息</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git config --global user.name &quot;你的名字或昵称&quot;</span><br><span class="line">git config --global user.email &quot;你的邮箱&quot;</span><br></pre></td></tr></table></figure><h3 id="常用的命令"><a class="markdownIt-Anchor" href="#常用的命令"></a> 常用的命令</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">git branch -a #查看当前分支</span><br><span class="line">git checkout master #切换到想要操作的分支master</span><br><span class="line">git add . #将当前目录所有文件添加到git暂存区</span><br><span class="line">git commit -m $(date +%Y-%m-%d-%H:%M:%S) #提交并备注提交信息</span><br><span class="line">git push origin master #将本地提交推送到远程仓库想要的分支master</span><br></pre></td></tr></table></figure><h2 id="quick-start"><a class="markdownIt-Anchor" href="#quick-start"></a> Quick Start</h2><h3 id="安装的插件"><a class="markdownIt-Anchor" href="#安装的插件"></a> 安装的插件</h3><h4 id="网址转拼音插件"><a class="markdownIt-Anchor" href="#网址转拼音插件"></a> 网址转拼音插件</h4><h5 id="安装"><a class="markdownIt-Anchor" href="#安装"></a> 安装</h5><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm i hexo-permalink-pinyin --save</span><br></pre></td></tr></table></figure><h5 id="配置及使用"><a class="markdownIt-Anchor" href="#配置及使用"></a> 配置及使用</h5><p>在根目录中的_config.yml中国添加</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 网站 文字转拼音</span></span><br><span class="line"><span class="attr">permalink_pinyin:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">separator:</span> <span class="string">&quot;_&quot;</span> <span class="comment"># default: &#x27;-&#x27;</span></span><br></pre></td></tr></table></figure><h4 id="hexo-electric-clock-电子时钟插件"><a class="markdownIt-Anchor" href="#hexo-electric-clock-电子时钟插件"></a> hexo-electric-clock 电子时钟插件</h4><h5 id="安装-2"><a class="markdownIt-Anchor" href="#安装-2"></a> 安装</h5><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm i hexo-electric-clock --save</span><br></pre></td></tr></table></figure><h5 id="配置及使用-2"><a class="markdownIt-Anchor" href="#配置及使用-2"></a> 配置及使用</h5><p>不是主题的yml文件</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">electric_clock:</span></span><br><span class="line">  <span class="attr">priority:</span> <span class="number">5</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">enable_page:</span> <span class="string">all</span></span><br><span class="line">  <span class="attr">layout:</span></span><br><span class="line">    <span class="attr">type:</span> <span class="string">class</span></span><br><span class="line">    <span class="attr">name:</span> <span class="string">sticky_layout</span></span><br><span class="line">    <span class="attr">index:</span> <span class="number">0</span></span><br><span class="line">  <span class="attr">temple_html:</span> <span class="string">&#x27;</span></span><br><span class="line"><span class="string">  &lt;div class=&quot;card-widget card-clock&quot;&gt;</span></span><br><span class="line"><span class="string">    &lt;!-- 挂载容器 --&gt;</span></span><br><span class="line"><span class="string">    &lt;div class=&quot;card-glass&quot;&gt;</span></span><br><span class="line"><span class="string">      &lt;div class=&quot;card-background&quot;&gt;</span></span><br><span class="line"><span class="string">        &lt;div class=&quot;card-content&quot;&gt;</span></span><br><span class="line"><span class="string">          &lt;div id=&quot;hexo_electric_clock&quot;&gt;</span></span><br><span class="line"><span class="string">            &lt;img</span></span><br><span class="line"><span class="string">              id=&quot;card-clock-loading&quot;</span></span><br><span class="line"><span class="string">              src=&quot;https://cdn.jsdelivr.net/gh/Zfour/Butterfly-clock/clock/images/weather/loading.gif&quot;</span></span><br><span class="line"><span class="string">              style=&quot;height: 120px; width: 100%;&quot;</span></span><br><span class="line"><span class="string">              data-ll-status=&quot;loading&quot;</span></span><br><span class="line"><span class="string">              class=&quot;entered loading&quot;</span></span><br><span class="line"><span class="string">            /&gt;</span></span><br><span class="line"><span class="string">          &lt;/div&gt;</span></span><br><span class="line"><span class="string">        &lt;/div&gt;</span></span><br><span class="line"><span class="string">      &lt;/div&gt;</span></span><br><span class="line"><span class="string">    &lt;/div&gt;</span></span><br><span class="line"><span class="string">  &lt;/div&gt;&#x27;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><h4 id="chart动态图标插件"><a class="markdownIt-Anchor" href="#chart动态图标插件"></a> Chart动态图标插件</h4><h5 id="安装-3"><a class="markdownIt-Anchor" href="#安装-3"></a> 安装</h5><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-tag-chart --save</span><br></pre></td></tr></table></figure><h5 id="配置及使用-3"><a class="markdownIt-Anchor" href="#配置及使用-3"></a> 配置及使用</h5><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br></pre></td><td class="code"><pre><span class="line">&lt;!--fontColor:数据颜色--&gt;</span><br><span class="line">&lt;!--padding:上下左右填充--&gt;</span><br><span class="line">&lt;!--suggestedMin:最小值--&gt;</span><br><span class="line">&#123;% p center logo large, Hello😜 %&#125;</span><br><span class="line"></span><br><span class="line"><span class="strong">***</span></span><br><span class="line"><span class="strong"></span></span><br><span class="line"><span class="strong">&#123;% p center h1, 一个用JS开发的硬件工程师 😋 %&#125;</span></span><br><span class="line"><span class="strong"></span></span><br><span class="line"><span class="strong">&#123;% p center small, 雷达图看不到刷新刷新就好啦 %&#125;</span></span><br><span class="line"><span class="strong"></span></span><br><span class="line"><span class="strong">&#123;% chart 100% 300 %&#125;</span></span><br><span class="line"><span class="strong">&#123;</span></span><br><span class="line"><span class="strong">  type: &#x27;radar&#x27;,</span></span><br><span class="line"><span class="strong">  data: &#123;</span></span><br><span class="line"><span class="strong">    labels: [&#x27;C&#x27;, &#x27;Python&#x27;, &#x27;HTML&#x27;, &#x27;micropython&#x27;, &#x27;ESP8266&#x27;, &#x27;ESP32&#x27;, &#x27;STM32&#x27;, &#x27;SCT15&#x27;, &#x27;微信小程序&#x27;],</span></span><br><span class="line"><span class="strong">    datasets: [&#123;</span></span><br><span class="line"><span class="strong">    label: &#x27;值&#x27;,</span></span><br><span class="line"><span class="strong">    backgroundColor: &#x27;#9400D377&#x27;,</span></span><br><span class="line"><span class="strong">    borderColor: &#x27;#9400D3&#x27;,</span></span><br><span class="line"><span class="strong">    data: [20, 50, 40, 80, 40, 80, 55, 55, 10],</span></span><br><span class="line"><span class="strong">    lineTension: 0.2,</span></span><br><span class="line"><span class="strong">    pointStyle: &#x27;rectRounded&#x27;,</span></span><br><span class="line"><span class="strong">    pointHoverBackgroundColor: &#x27;#FFFFFF&#x27;</span></span><br><span class="line"><span class="strong">    &#125;]</span></span><br><span class="line"><span class="strong">  &#125;,</span></span><br><span class="line"><span class="strong">  options: &#123;</span></span><br><span class="line"><span class="strong">    legend: &#123;</span></span><br><span class="line"><span class="strong">        labels: &#123;</span></span><br><span class="line"><span class="strong">            fontColor: &#x27;#9400D3&#x27;, &lt;!--数据颜色--&gt;</span></span><br><span class="line"><span class="strong">            fontSize: 12,</span></span><br><span class="line"><span class="strong">            FontFamily: &#x27;&#x27;</span></span><br><span class="line"><span class="strong">        &#125;</span></span><br><span class="line"><span class="strong">    &#125;,</span></span><br><span class="line"><span class="strong">    layout: &#123;</span></span><br><span class="line"><span class="strong">      padding: &#123; &lt;!--上下左右填充--&gt;</span></span><br><span class="line"><span class="strong">        left: 0,</span></span><br><span class="line"><span class="strong">        right: 0,</span></span><br><span class="line"><span class="strong">        top: 0,</span></span><br><span class="line"><span class="strong">        bottom: 0</span></span><br><span class="line"><span class="strong">      &#125;</span></span><br><span class="line"><span class="strong">    &#125;,</span></span><br><span class="line"><span class="strong">    responsive: true,</span></span><br><span class="line"><span class="strong">    title: &#123;</span></span><br><span class="line"><span class="strong">      display: true,</span></span><br><span class="line"><span class="strong">      text: &#x27;My dataset&#x27;</span></span><br><span class="line"><span class="strong">    &#125;,</span></span><br><span class="line"><span class="strong">    scale: &#123;</span></span><br><span class="line"><span class="strong">        angleLines: &#123;</span></span><br><span class="line"><span class="strong">            display: true</span></span><br><span class="line"><span class="strong">        &#125;,</span></span><br><span class="line"><span class="strong">        ticks: &#123;</span></span><br><span class="line"><span class="strong">            suggestedMin: 0,    &lt;!--最小值--&gt;</span></span><br><span class="line"><span class="strong">            suggestedMax: 80  &lt;!--最大值--&gt;</span></span><br><span class="line"><span class="strong">        &#125;</span></span><br><span class="line"><span class="strong">    &#125;</span></span><br><span class="line"><span class="strong">  &#125;</span></span><br><span class="line"><span class="strong">&#125;</span></span><br><span class="line"><span class="strong">&#123;% endchart %&#125;</span></span><br><span class="line"><span class="strong"></span></span><br><span class="line"><span class="strong"></span></span><br></pre></td></tr></table></figure><h4 id="hexo-neat插件优化提升访问效率"><a class="markdownIt-Anchor" href="#hexo-neat插件优化提升访问效率"></a> Hexo-neat插件优化提升访问效率</h4><h5 id="安装-4"><a class="markdownIt-Anchor" href="#安装-4"></a> 安装</h5><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-neat --save</span><br></pre></td></tr></table></figure><p>博客根目录文件<code>_config.yml</code>文末添加如下</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># hexo-neat</span></span><br><span class="line"><span class="comment"># md博文压缩</span></span><br><span class="line"><span class="attr">neat_enable:</span> <span class="literal">true</span></span><br><span class="line"><span class="comment"># 压缩html（ejs，swig等也属于html格式片段）</span></span><br><span class="line"><span class="attr">neat_html:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">exclude:</span></span><br><span class="line"><span class="comment"># 压缩css  </span></span><br><span class="line"><span class="attr">neat_css:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">exclude:</span></span><br><span class="line"><span class="comment"># 压缩js</span></span><br><span class="line"><span class="attr">neat_js:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="attr">mangle:</span> <span class="literal">true</span> <span class="comment">#打印日志</span></span><br><span class="line">  <span class="attr">output:</span></span><br><span class="line">  <span class="attr">compress:</span></span><br><span class="line">  <span class="attr">exclude:</span> <span class="comment">#排除文件</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    
  </entry>
  
  <entry>
    <title>基于树莓派4B的Openwrt系统Docker中安装Wordpress</title>
    <link href="https://blog.findingx.cc/2022/03/25/142619/"/>
    <id>https://blog.findingx.cc/2022/03/25/142619/</id>
    <published>2022-03-25T06:26:19.000Z</published>
    <updated>2025-07-11T01:38:06.148Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="确保openwrt安装了docker"><a class="markdownIt-Anchor" href="#确保openwrt安装了docker"></a> 确保OpenWrt安装了Docker</h1><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84Openwrt%E7%B3%BB%E7%BB%9FDocker%E4%B8%AD%E5%AE%89%E8%A3%85Wordpress/1.png" alt="1.png" /></p><h1 id="在命令行键入以下命令以完成安装"><a class="markdownIt-Anchor" href="#在命令行键入以下命令以完成安装"></a> 在命令行键入以下命令以完成安装</h1><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">docker run -d --name mariadb -p 3306:3306 -e MARIADB_ROOT_PASSWORD=meimima \</span><br><span class="line">-e MARIADB_DATABASE=wordpress \</span><br><span class="line">--restart=always \</span><br><span class="line">mariadb:latest</span><br></pre></td></tr></table></figure><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">docker run -d --name wordpress -p 8083:80 -e WORDPRESS_DB_PASSWORD=meimima \</span><br><span class="line">-e WORDPRESS_DB_HOST=你的IP:3306 \</span><br><span class="line">-e WORDPRESS_DB_USER=root \</span><br><span class="line">-e WORDPRESS_DB_NAME=wordpress \</span><br><span class="line">-e WORDPRESS_TABLE_PREFIX=wp_ \</span><br><span class="line">--restart=always \</span><br><span class="line">wordpress</span><br></pre></td></tr></table></figure><p>安装完成后会有以下提示</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84Openwrt%E7%B3%BB%E7%BB%9FDocker%E4%B8%AD%E5%AE%89%E8%A3%85Wordpress/2.png" alt="2.png" /></p><p>根据提示完成用户名密码录入</p><h1 id="修改上传文件限制"><a class="markdownIt-Anchor" href="#修改上传文件限制"></a> 修改上传文件限制</h1><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker <span class="built_in">exec</span> -it wordpress /bin/bash</span><br></pre></td></tr></table></figure><h2 id="进入容器后"><a class="markdownIt-Anchor" href="#进入容器后"></a> 进入容器后</h2><p>安装vim</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mv</span> /etc/apt/sources.list /etc/apt/sources.list.bak</span><br><span class="line"></span><br><span class="line"><span class="built_in">cat</span> &lt;&lt;<span class="string">EOF &gt;/etc/apt/sources.list</span></span><br><span class="line"><span class="string">deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free</span></span><br><span class="line"><span class="string">deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free</span></span><br><span class="line"><span class="string">EOF</span></span><br><span class="line">apt update</span><br><span class="line">apt install vim</span><br></pre></td></tr></table></figure><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cp</span> /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini</span><br><span class="line">vim /usr/local/etc/php/php.ini</span><br></pre></td></tr></table></figure><p>搜索以下关键字</p><figure class="highlight vim"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">upload_max_filesize = <span class="number">200</span>M    #文件大小限制</span><br><span class="line">post_max_size = <span class="number">250</span>M    #post大小限制</span><br><span class="line">memory_limit = <span class="number">500</span>M        #内存占用限制</span><br></pre></td></tr></table></figure><h2 id="重启docker"><a class="markdownIt-Anchor" href="#重启docker"></a> 重启docker</h2><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker restart wordpress</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="openwrt" scheme="https://blog.findingx.cc/tags/openwrt/"/>
    
    <category term="Docker" scheme="https://blog.findingx.cc/tags/Docker/"/>
    
  </entry>
  
  <entry>
    <title>smb文件共享设置</title>
    <link href="https://blog.findingx.cc/2022/03/23/223128/"/>
    <id>https://blog.findingx.cc/2022/03/23/223128/</id>
    <published>2022-03-23T14:31:28.000Z</published>
    <updated>2025-07-11T01:38:06.145Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h1 id="linux服务器设置文件夹共享"><a class="markdownIt-Anchor" href="#linux服务器设置文件夹共享"></a> linux服务器设置文件夹共享</h1><p>vim /etc/samba/smb.conf</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">[Quark-Doc]</span><br><span class="line">    path=/home/pi/Documents/Quark-Doc</span><br><span class="line">    # 注意：path的值为你要共享的文件夹名称，此处我选择了根目录</span><br><span class="line">    # 说明信息</span><br><span class="line">    comment = NAS Storage</span><br><span class="line">    # 可以访问的用户</span><br><span class="line">   #  valid users = pi,root</span><br><span class="line">    # 可被其他人看到资源名称（非内容）</span><br><span class="line">    browseable = yes</span><br><span class="line">    # 可写</span><br><span class="line">    writable = yes</span><br><span class="line">    public = yes</span><br><span class="line">    # 新建文件的权限为 664</span><br><span class="line">    create mask = 0664</span><br><span class="line">    # 新建目录的权限为 775</span><br><span class="line">    directory mask = 0775</span><br></pre></td></tr></table></figure><p>保存后重启服务</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo service smbd restart</span><br></pre></td></tr></table></figure><h1 id="window设置映射网络驱动器"><a class="markdownIt-Anchor" href="#window设置映射网络驱动器"></a> Window设置映射网络驱动器</h1><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/smb%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB%E8%AE%BE%E7%BD%AE/1.png" alt="1.png" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/smb%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB%E8%AE%BE%E7%BD%AE/2.png" alt="2.png" /></p><p>输入服务器上的密码即可，我设置的是服务器root账户密码</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="linux" scheme="https://blog.findingx.cc/tags/linux/"/>
    
    <category term="smb" scheme="https://blog.findingx.cc/tags/smb/"/>
    
  </entry>
  
  <entry>
    <title>基于树莓派4B的OpenWrt配置</title>
    <link href="https://blog.findingx.cc/2021/11/20/210049/"/>
    <id>https://blog.findingx.cc/2021/11/20/210049/</id>
    <published>2021-11-20T13:00:49.000Z</published>
    <updated>2025-07-11T01:38:06.148Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h3 id="基于树莓派-4b-的-openwrt-配置"><a class="markdownIt-Anchor" href="#基于树莓派-4b-的-openwrt-配置"></a> 基于树莓派 4B 的 OpenWrt 配置</h3><h4 id="制作这个-openwrt-的原因"><a class="markdownIt-Anchor" href="#制作这个-openwrt-的原因"></a> 制作这个 OpenWrt 的原因</h4><p>想拥有一个高度自定义的路由器，于是网上一搜，大部分都是用 OpenWrt 做的，虽然费尽周折（官方烧进去后不知道怎么连通过 ssh 访问），最终找到一个非常不错的镜像文件，就是这个链接<a target="_blank" rel="noopener" href="https://github.com/SuLingGG/OpenWrt-Rpi">Link</a>。可以到 Releases 里面去找相应的固件下载。</p><h4 id="烧录镜像"><a class="markdownIt-Anchor" href="#烧录镜像"></a> 烧录镜像</h4><p>烧录过程如下图</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/1.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/2.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/3.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/4.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/5.png" alt="图" /></p><p>完成后将卡插入 tf 卡槽，启动树莓派</p><h3 id="调试过程"><a class="markdownIt-Anchor" href="#调试过程"></a> 调试过程</h3><h4 id="无线部分"><a class="markdownIt-Anchor" href="#无线部分"></a> 无线部分</h4><p>注意：</p><ol><li>初次启动树莓派，频宽为 5GHz,一些年纪较大的电脑可能识别不了，要把频宽换成 2.4GHz。</li><li>启动前向不用插入网线！！！</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/6.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/7.png" alt="图" /></p><h4 id="接口设置"><a class="markdownIt-Anchor" href="#接口设置"></a> 接口设置</h4><p>最初有三个接口(因为我的修改过，所以 Lan 口会有些不一样)</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/8.png" alt="图" /></p><p>点解 Lan 口右侧的<code>修改</code>，选择<code>物理设置</code>，去除<code>eth0</code>的勾，点击<code>保存并应用</code>。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/9.png" alt="图" /></p><p>点击<code>返回至概况</code>，点击<code>添加新接口</code>， 名称随便写，做个标记而已，协议选择<code>DHCP客户端</code>，勾选<code>eth0</code>，点击<code>保存并应用</code>。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/10.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/11.png" alt="图" /></p><h4 id="防火墙设置"><a class="markdownIt-Anchor" href="#防火墙设置"></a> 防火墙设置</h4><p>点击防火墙设置，改变以下选择项，框内全部选择接受！！！点击<code>保存并应用</code>。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/12.png" alt="图" /></p><p>进入 Wan 口防火墙，修改以下值，退出时点击<code>保存并应用</code>。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/13.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/14.png" alt="图" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/15.png" alt="图" /></p><p>切换到转发端口页面，有如下几个接口，我们需要添加两条规则</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/16.png" alt="图" /></p><ol><li>ip 上级路由器分配给树莓派的 ip 地址，点击最右侧的<code>添加</code>，再点击<code>保存并应用</code>。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/17.png" alt="规则一" /></li><li>第二条规则先输入和第一条规则一样，点击最右侧的<code>添加</code>，点击<code>保存并应用</code>，再点击<code>修改</code>。</li></ol><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/18.png" alt="规则二" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/19.png" alt="规则二" /></p><p>退出时点击<code>保存并应用</code>。</p><h4 id="完成"><a class="markdownIt-Anchor" href="#完成"></a> 完成！</h4><p>可以导出配置，以免下次折腾的时候需要重新配置！<br />后续会写如何配置其他部分。</p><p>我们可以使用 ttyd 访问终端</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9F%BA%E4%BA%8E%E6%A0%91%E8%8E%93%E6%B4%BE4B%E7%9A%84OpenWrt%E9%85%8D%E7%BD%AE/20.png" alt="图" /></p><p>可以通过<code>opkg</code>命令安装软件，就像 Ubuntu 的<code>apt</code>，不过这里不需要加<code>sudo</code>。<br />之前尝试安装<code>nmap</code>，但是会报错，这里给出一个解决办法</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/openclash/config/config.yaml</span><br></pre></td></tr></table></figure><p>输入以下命令，<code>:wq</code>保存退出。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">src/gz openwrt_nmap https://repo.turris.cz/omnia/packages/packages</span><br></pre></td></tr></table></figure><p>更新一下。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">opkg update</span><br></pre></td></tr></table></figure><p>验证一下，输入<code>nmap -V</code></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta prompt_"># </span><span class="language-bash">root @ OpenWrt <span class="keyword">in</span> ~ [22:21:02] C:255</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">nmap -V</span></span><br><span class="line">Nmap version 7.91 ( https://nmap.org )</span><br><span class="line">Platform: aarch64-openwrt-linux-gnu</span><br><span class="line">Compiled with: libz-1.2.11 libpcre-8.44 libpcap-1.10.1 nmap-libdnet-1.12 ipv6</span><br><span class="line">Compiled without: liblua openssl libssh2</span><br><span class="line">Available nsock engines: epoll poll select</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="树莓派" scheme="https://blog.findingx.cc/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/"/>
    
    <category term="OpenWrt" scheme="https://blog.findingx.cc/tags/OpenWrt/"/>
    
  </entry>
  
  <entry>
    <title>树莓派安装Ubuntu21.10</title>
    <link href="https://blog.findingx.cc/2021/11/06/015924/"/>
    <id>https://blog.findingx.cc/2021/11/06/015924/</id>
    <published>2021-11-05T17:59:24.000Z</published>
    <updated>2025-07-11T01:38:06.150Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="树莓派安装-ubuntu2110"><a class="markdownIt-Anchor" href="#树莓派安装-ubuntu2110"></a> 树莓派安装 Ubuntu21.10</h2><h3 id="下载-安装烧录工具"><a class="markdownIt-Anchor" href="#下载-安装烧录工具"></a> 下载、安装烧录工具</h3><p>Raspberry Pi Imager：<a target="_blank" rel="noopener" href="https://www.raspberrypi.com/software/">link</a></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/1.png" alt="1.png" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/2.png" alt="1.png" /></p><h3 id="烧录过程"><a class="markdownIt-Anchor" href="#烧录过程"></a> 烧录过程</h3><h4 id="选择镜像"><a class="markdownIt-Anchor" href="#选择镜像"></a> 选择镜像</h4><p>点击<code>CHOOSE OS</code>，选择<code>Other general purpose OS</code> ，再选择 Ubuntu</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/3.png" alt="1.png" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/4.png" alt="1.png" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/5.png" alt="1.png" /></p><p>找到与自己树莓派相应的版本，我的是 Raspberry 4，因此选择第一个</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/6.png" alt="1.png" /></p><h4 id="选择-sd-卡设备"><a class="markdownIt-Anchor" href="#选择-sd-卡设备"></a> 选择 SD 卡设备</h4><p>点击<code>CHOOSE STORAGE</code> ，选择自己的 SD 卡设备</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/7.png" alt="1.png" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/8.png" alt="1.png" /></p><p>点击<code>WRITE</code></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/9.png" alt="1.png" /></p><p>等待烧录完成，拔出 SD 卡，插入树莓派卡槽，插电源开机。至此为树莓派安装 Ubuntu 流程结束，插上显示器后效果如下</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%A0%91%E8%8E%93%E6%B4%BE%E5%AE%89%E8%A3%85Ubuntu21-10/10.png" alt="1.png" /></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="树莓派" scheme="https://blog.findingx.cc/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/"/>
    
    <category term="Linux" scheme="https://blog.findingx.cc/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>SPI通讯协议</title>
    <link href="https://blog.findingx.cc/2021/10/09/073657/"/>
    <id>https://blog.findingx.cc/2021/10/09/073657/</id>
    <published>2021-10-08T23:36:57.000Z</published>
    <updated>2025-07-11T01:38:06.141Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>显示屏 TFT-LCD 信号接口有 SPI、MCU、RGB、LVDS、MIPI、eDP、HDMI 等等多种类型。其中就包括 SPI 协议，SPI 协议还有其他用途，<strong>FLASHRAM</strong>、<strong>网络控制器</strong>、<strong>LCD 显示驱动器</strong>、<strong>A/D 转换器</strong>和<strong>MCU</strong>等。</p><h2 id="spi-协议"><a class="markdownIt-Anchor" href="#spi-协议"></a> SPI 协议</h2><h3 id="通信原理"><a class="markdownIt-Anchor" href="#通信原理"></a> 通信原理</h3><p>需要至少 3 根线，分别是 SDI（数据输入）、SDO（数据输出）、SCLK（时钟）、CS（片选）</p><ol><li>SDI – SerialData In,串行数据输入</li><li>SDO – SerialDataOut,串行数据输出</li><li>SCLK – Serial Clock,时钟信号，由主设备产生</li><li>CS – Chip Select,从设备使能信号，由主设备控制</li></ol><p><strong>CS</strong>是<strong>从芯片</strong>是否被<strong>主芯片</strong>选中的控制信号，也就是说只有<strong>片选信号</strong>为预先规定的<strong>使能信号</strong>时（高电位或低电位），主芯片对此从芯片的操作<strong>才有效</strong>。这就使在同一条总线上<strong>连接多个 SPI 设备</strong>成为可能。</p><h3 id="spi-接口"><a class="markdownIt-Anchor" href="#spi-接口"></a> SPI 接口</h3><p>SPI 接口是在 CPU 和外围低速器件之间进行<strong>同步串行</strong>数据传输，在<strong>主器件</strong>的移位脉冲下，数据按位传输，<strong>高</strong>位在<strong>前</strong>，<strong>低</strong>位在<strong>后</strong>，为全双工通信，数据传输速度总体来说比<strong>I2C</strong>总线要<strong>快</strong>，速度可达到几 Mbps。</p><p>特点：信号线少，协议简单，相对数据速率高。</p><ol><li><p>MOSI – 主器件数据输出，从器件数据输入</p></li><li><p>MISO – 主器件数据输入，从器件数据输出</p></li><li><p>SCLK –时钟信号，由主器件产生,最大为 fPCLK/2，从模式频率最大为 fCPU/2</p></li><li><p>NSS – 从器件使能信号，由主器件控制,有的 IC 会标注为 CS(Chip select)</p></li></ol><p><strong>#未完待续#</strong></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="机器之脉络" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E8%84%89%E7%BB%9C/"/>
    
    <category term="SPI" scheme="https://blog.findingx.cc/tags/SPI/"/>
    
  </entry>
  
  <entry>
    <title>为VScode添加背景</title>
    <link href="https://blog.findingx.cc/2021/06/27/205243/"/>
    <id>https://blog.findingx.cc/2021/06/27/205243/</id>
    <published>2021-06-27T12:52:43.000Z</published>
    <updated>2025-07-11T01:38:06.146Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>原生的vscode无背景，没有理想的好看</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAVScode%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF/vscode1.png" alt="vscode1.png" /></p><p>那如何为VScode添加自己喜欢的壁纸呢？</p><p>打开VScode文件所在位置，我的安装路径是<code>C:\Users\用户名\AppData\Local\Programs\Microsoft VS Code\</code><br />再依次打开目录<code>\resources\app\out\vs\workbench</code><br />完整路径是: <code>C:\Users\用户名\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench</code><br />打开文件<code>workbench.desktop.main.css</code></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAVScode%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF/vscode2.png" alt="vscode2.png" /></p><p>添加如下代码</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-tag">body</span> &#123;</span><br><span class="line">    <span class="comment">/*背景图片的路径*/</span></span><br><span class="line">    <span class="attribute">background-image</span>: <span class="built_in">url</span>(<span class="string">C:/Users/用户名/123.jpg</span>);</span><br><span class="line">    <span class="comment">/* 图片不重复 */</span></span><br><span class="line">    <span class="attribute">background-repeat</span>: no-repeat;</span><br><span class="line">    <span class="comment">/* 图片位置 */</span></span><br><span class="line">    <span class="attribute">background-position</span>: center;</span><br><span class="line">    <span class="comment">/* 图片大小 */</span></span><br><span class="line">    <span class="attribute">background-size</span>: cover;</span><br><span class="line">    <span class="comment">/* 透明度 */</span></span><br><span class="line">    <span class="attribute">opacity</span>: <span class="number">0.7</span>;</span><br><span class="line">    <span class="comment">/* opacity: 0.75; */</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAVScode%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF/vscode3.png" alt="vscode3.png" /></p><p><code>Ctrl + S</code>保存，重启VScode即可，效果如下。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAVScode%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF/vscode4.png" alt="vscode4.png" /></p><p>可能会提示Code可能损坏，这个可以忽略，选择不再提示就可以了。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAVScode%E6%B7%BB%E5%8A%A0%E8%83%8C%E6%99%AF/vscode5.png" alt="vscode5.png" /></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="Vscode" scheme="https://blog.findingx.cc/tags/Vscode/"/>
    
  </entry>
  
  <entry>
    <title>DS18B20测温芯片驱动代码</title>
    <link href="https://blog.findingx.cc/2021/06/02/092302/"/>
    <id>https://blog.findingx.cc/2021/06/02/092302/</id>
    <published>2021-06-02T01:23:02.000Z</published>
    <updated>2025-07-11T01:38:06.138Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>以下代码在STC15W408AS单片机进行测试，后面还有自制的PCB的原理图和layout设计（因某些原因需要制作这样一块显示温度的小项目，又想节约成本，于是画的十分简陋…）</p><h2 id="ds18b20驱动代码"><a class="markdownIt-Anchor" href="#ds18b20驱动代码"></a> DS18B20驱动代码</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;stc15.h&quot;</span> <span class="comment">//此处应修改为相应的单片机库</span></span></span><br><span class="line"></span><br><span class="line">sbit DQ = P1^<span class="number">1</span>;  <span class="comment">//此处为连接DS18B20的引脚号</span></span><br><span class="line"></span><br><span class="line"><span class="comment">//单总线延时函数</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">Delay_OneWire</span><span class="params">(<span class="type">unsigned</span> <span class="type">int</span> t)</span>  <span class="comment">//STC89C52RC</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">unsigned</span> <span class="type">char</span> i;</span><br><span class="line"><span class="keyword">while</span>(t--)</span><br><span class="line">&#123;</span><br><span class="line"><span class="keyword">for</span>(i=<span class="number">0</span>;i&lt;<span class="number">12</span>;i++);</span><br><span class="line">&#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//通过单总线向DS18B20写一个字节</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">Write_DS18B20</span><span class="params">(<span class="type">unsigned</span> <span class="type">char</span> dat)</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">unsigned</span> <span class="type">char</span> i;</span><br><span class="line"><span class="keyword">for</span>(i=<span class="number">0</span>;i&lt;<span class="number">8</span>;i++)</span><br><span class="line">&#123;</span><br><span class="line">DQ = <span class="number">0</span>;</span><br><span class="line">DQ = dat&amp;<span class="number">0x01</span>;</span><br><span class="line">Delay_OneWire(<span class="number">5</span>);</span><br><span class="line">DQ = <span class="number">1</span>;</span><br><span class="line">dat &gt;&gt;= <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line">Delay_OneWire(<span class="number">5</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//从DS18B20读取一个字节</span></span><br><span class="line"><span class="type">unsigned</span> <span class="type">char</span> <span class="title function_">Read_DS18B20</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">unsigned</span> <span class="type">char</span> i;</span><br><span class="line"><span class="type">unsigned</span> <span class="type">char</span> dat;</span><br><span class="line">  </span><br><span class="line"><span class="keyword">for</span>(i=<span class="number">0</span>;i&lt;<span class="number">8</span>;i++)</span><br><span class="line">&#123;</span><br><span class="line">DQ = <span class="number">0</span>;</span><br><span class="line">dat &gt;&gt;= <span class="number">1</span>;</span><br><span class="line">DQ = <span class="number">1</span>;</span><br><span class="line"><span class="keyword">if</span>(DQ)</span><br><span class="line">&#123;</span><br><span class="line">dat |= <span class="number">0x80</span>;</span><br><span class="line">&#125;    </span><br><span class="line">Delay_OneWire(<span class="number">5</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">return</span> dat;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">//DS18B20设备初始化</span></span><br><span class="line">bit <span class="title function_">init_ds18b20</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">  bit initflag = <span class="number">0</span>;</span><br><span class="line">  </span><br><span class="line">  DQ = <span class="number">1</span>;</span><br><span class="line">  Delay_OneWire(<span class="number">12</span>);</span><br><span class="line">  DQ = <span class="number">0</span>;</span><br><span class="line">  Delay_OneWire(<span class="number">80</span>);</span><br><span class="line">  DQ = <span class="number">1</span>;</span><br><span class="line">  Delay_OneWire(<span class="number">10</span>); </span><br><span class="line">    initflag = DQ;     </span><br><span class="line">  Delay_OneWire(<span class="number">5</span>);</span><br><span class="line">  </span><br><span class="line">  <span class="keyword">return</span> initflag;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"> <span class="type">unsigned</span> <span class="type">char</span> <span class="title function_">rd_temperature</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">unsigned</span> <span class="type">char</span> low,high;</span><br><span class="line">  <span class="type">char</span> temp;</span><br><span class="line">  </span><br><span class="line">  init_ds18b20();</span><br><span class="line">  Write_DS18B20(<span class="number">0xCC</span>);</span><br><span class="line">  Write_DS18B20(<span class="number">0x44</span>); <span class="comment">//启动温度转换</span></span><br><span class="line">  Delay_OneWire(<span class="number">200</span>);</span><br><span class="line"></span><br><span class="line">  init_ds18b20();</span><br><span class="line">  Write_DS18B20(<span class="number">0xCC</span>);</span><br><span class="line">  Write_DS18B20(<span class="number">0xBE</span>); <span class="comment">//读取寄存器</span></span><br><span class="line"></span><br><span class="line">  low = Read_DS18B20(); <span class="comment">//低字节</span></span><br><span class="line">  high = Read_DS18B20(); <span class="comment">//高字节</span></span><br><span class="line">  </span><br><span class="line">  temp = high&lt;&lt;<span class="number">4</span>;</span><br><span class="line">  temp |= (low&gt;&gt;<span class="number">4</span>);</span><br><span class="line">  </span><br><span class="line">  <span class="keyword">return</span> temp;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="pcb文件及其示意图"><a class="markdownIt-Anchor" href="#pcb文件及其示意图"></a> PCB文件及其示意图</h2><p>PCB文件以压缩包形式打包。<a href="%E6%B8%A9%E6%8E%A7.rar">戳我下载</a><br />注：我画的是拼板，右侧的那块可能地线没有接到一起。</p><h3 id="pcb原件布局"><a class="markdownIt-Anchor" href="#pcb原件布局"></a> PCB原件布局</h3><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/DS18B20%E6%B5%8B%E6%B8%A9%E8%8A%AF%E7%89%87/pcb.jpg" alt="pcb.jpg" /></p><h3 id="bom表"><a class="markdownIt-Anchor" href="#bom表"></a> BOM表</h3><table><thead><tr><th style="text-align:center">Comment</th><th style="text-align:center">Description</th><th style="text-align:center">Footprint</th><th style="text-align:center">Quantity</th></tr></thead><tbody><tr><td style="text-align:center">5261AS</td><td style="text-align:center">二位共阴数码管</td><td style="text-align:center">5261AS</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">LED</td><td style="text-align:center">发光二极管</td><td style="text-align:center">0603</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">Header 4</td><td style="text-align:center">Header, 4-Pin</td><td style="text-align:center">HDR1X4</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">Res</td><td style="text-align:center">10K</td><td style="text-align:center">0603</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">Res</td><td style="text-align:center">5.1R</td><td style="text-align:center">0603</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">STC15W408AS</td><td style="text-align:center">C51单片机</td><td style="text-align:center">SOP-16</td><td style="text-align:center">1</td></tr><tr><td style="text-align:center">DS18B20模组</td><td style="text-align:center">DS18B20模组</td><td style="text-align:center">DS18B20模组</td><td style="text-align:center">1</td></tr></tbody></table><p>DS18B20模组相关文件由淘宝商家提供，以下是淘宝商家公开的百度网盘连接。<br /><a target="_blank" rel="noopener" href="https://pan.baidu.com/s/19CwH6CAaWgVBMKmCA28ygQ">https://pan.baidu.com/s/19CwH6CAaWgVBMKmCA28ygQ</a> 提取码：lggj</p><h2 id="单片机代码"><a class="markdownIt-Anchor" href="#单片机代码"></a> 单片机代码</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;stc15.h&quot;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;intrins.h&quot;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;onewire.h&quot;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;absacc.h&quot;</span></span></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> uchar unsigned char</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> uint unsigned int</span></span><br><span class="line"></span><br><span class="line">sbit LED = P3 ^ <span class="number">2</span>; <span class="comment">//H有效</span></span><br><span class="line">sbit DIGITAL_a = P1 ^ <span class="number">2</span>;</span><br><span class="line">sbit DIGITAL_b = P1 ^ <span class="number">3</span>;</span><br><span class="line">sbit DIGITAL_c = P1 ^ <span class="number">4</span>;</span><br><span class="line">sbit DIGITAL_d = P1 ^ <span class="number">5</span>;</span><br><span class="line">sbit DIGITAL_e = P5 ^ <span class="number">4</span>;  <span class="comment">//sbit DIGITAL_e = P2 ^ 4;</span></span><br><span class="line">sbit DIGITAL_f = P5 ^ <span class="number">5</span>;  <span class="comment">//sbit DIGITAL_e = P2 ^ 5;</span></span><br><span class="line">sbit DIGITAL_g = P1 ^ <span class="number">0</span>;</span><br><span class="line">sbit DIGITAL_dp = P3 ^ <span class="number">7</span>;</span><br><span class="line">sbit DIGITAL_H = P3 ^ <span class="number">6</span>;</span><br><span class="line">sbit DIGITAL_L = P3 ^ <span class="number">3</span>;</span><br><span class="line"><span class="comment">//sbit DQ = P1 ^ 1;</span></span><br><span class="line"></span><br><span class="line">bit temper_flag = <span class="number">0</span>; <span class="comment">//温度读取标志</span></span><br><span class="line"><span class="type">int</span> temp = <span class="number">0</span>;</span><br><span class="line"><span class="type">int</span> intr = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line"><span class="comment">/*数码管显示数字*/</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">printf_num</span><span class="params">(num)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">0</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示1*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示2*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">2</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示3*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">3</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示4*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">4</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示0*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">5</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示6*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">6</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示7*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">7</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示8*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">8</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">/*显示9*/</span></span><br><span class="line">    <span class="keyword">if</span> (num == <span class="number">9</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        DIGITAL_a = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_b = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_c = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_d = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">        DIGITAL_f = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_g = <span class="number">1</span>;</span><br><span class="line">        DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/*数码管显示温度*/</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">printf_wendu</span><span class="params">(num)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="comment">//printf_num(num/10);</span></span><br><span class="line">    DIGITAL_H = <span class="number">0</span>;</span><br><span class="line">    printf_num(num / <span class="number">10</span>);</span><br><span class="line">    <span class="comment">//    DIGITAL_H = 0;</span></span><br><span class="line">    DIGITAL_H = <span class="number">1</span>;</span><br><span class="line"></span><br><span class="line">    DIGITAL_a = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_b = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_c = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_d = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_f = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_g = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="comment">//Delay_printf_wendu();</span></span><br><span class="line">    <span class="comment">//printf_num(num%10);</span></span><br><span class="line">    DIGITAL_L = <span class="number">0</span>;</span><br><span class="line">    printf_num(num % <span class="number">10</span>);</span><br><span class="line">    <span class="comment">//    DIGITAL_L = 0;</span></span><br><span class="line">    DIGITAL_L = <span class="number">1</span>;</span><br><span class="line"></span><br><span class="line">    DIGITAL_a = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_b = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_c = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_d = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_e = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_f = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_g = <span class="number">0</span>;</span><br><span class="line">    DIGITAL_dp = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="comment">//Delay_printf_wendu();</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">main</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">float</span> temperature;</span><br><span class="line">    <span class="keyword">while</span> (<span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (temper_flag)</span><br><span class="line">        &#123;</span><br><span class="line">            temper_flag = <span class="number">0</span>;</span><br><span class="line">            temperature = rd_temperature(); <span class="comment">//读温度</span></span><br><span class="line">temp = temperature;</span><br><span class="line">        &#125;</span><br><span class="line">        </span><br><span class="line">printf_wendu(temp);</span><br><span class="line">intr++;</span><br><span class="line">    <span class="keyword">if</span> (intr == <span class="number">100</span>) <span class="comment">//1ms执行一次</span></span><br><span class="line">    &#123;</span><br><span class="line">        intr = <span class="number">0</span>;</span><br><span class="line">        temper_flag = <span class="number">1</span>; <span class="comment">//100ms温度读取标志位置1</span></span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="作品" scheme="https://blog.findingx.cc/categories/%E4%BD%9C%E5%93%81/"/>
    
    
    <category term="DS18B20" scheme="https://blog.findingx.cc/tags/DS18B20/"/>
    
    <category term="C51" scheme="https://blog.findingx.cc/tags/C51/"/>
    
  </entry>
  
  <entry>
    <title>为Valine评论添加QQ头像识别</title>
    <link href="https://blog.findingx.cc/2021/04/26/140628/"/>
    <id>https://blog.findingx.cc/2021/04/26/140628/</id>
    <published>2021-04-26T06:06:28.000Z</published>
    <updated>2025-07-11T01:38:06.146Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="valine"><a class="markdownIt-Anchor" href="#valine"></a> Valine</h2><p>F12 查看源码</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAValine%E8%AF%84%E8%AE%BA%E6%B7%BB%E5%8A%A0QQ%E5%A4%B4%E5%83%8F%E8%AF%86%E5%88%AB/bug_1.png" alt="bug_1.png" /></p><p>在主题文件夹查询 Valine.js 文件，如果没有 Valine 可以去这里复制下载<a target="_blank" rel="noopener" href="https://unpkg.com/valine@1.4.14/dist/Valine.min.js">link</a></p><p>打开文件 Valine.js，<code>Ctrl + F</code>查询<code>img class=&quot;vimg&quot;</code>，注意绿色框的代码，等下要修改的部分。</p><p>查到后修改</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">&#x27;&lt;img class=&quot;vimg&quot; src=&quot;&#x27;</span> +</span><br><span class="line">  (T.<span class="property">cdn</span> + (<span class="number">0</span>, s.<span class="property">default</span>)(t.<span class="title function_">get</span>(<span class="string">&quot;mail&quot;</span>)) + T.<span class="property">params</span>) +</span><br><span class="line">  <span class="string">&#x27;&quot;&gt;&#x27;</span>;</span><br></pre></td></tr></table></figure><p>修改为</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">&#x27;&lt;img class=&quot;vimg&quot; src=&quot;&#x27;</span> + qq_img + <span class="string">&#x27;&quot;&gt;&#x27;</span>;</span><br></pre></td></tr></table></figure><p>要添加的代码</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//var qq_img = m.cdn + a(e.get(&quot;mail&quot;)) + m.params;</span></span><br><span class="line"><span class="keyword">var</span> qq_img = T.<span class="property">cdn</span> + (<span class="number">0</span>, s.<span class="property">default</span>)(t.<span class="title function_">get</span>(<span class="string">&quot;mail&quot;</span>)) + T.<span class="property">params</span>;</span><br><span class="line"><span class="keyword">if</span> (t.<span class="title function_">get</span>(<span class="string">&quot;mail&quot;</span>).<span class="title function_">indexOf</span>(<span class="string">&quot;@qq.com&quot;</span>) &gt;= <span class="number">0</span>) &#123;</span><br><span class="line">  <span class="keyword">var</span> prefix = t.<span class="title function_">get</span>(<span class="string">&quot;mail&quot;</span>).<span class="title function_">replace</span>(<span class="regexp">/@.*/</span>, <span class="string">&quot;&quot;</span>);<span class="comment">//前缀</span></span><br><span class="line">  <span class="keyword">var</span> pattern = <span class="regexp">/^\d+$/g</span>;  <span class="comment">//正则表达式</span></span><br><span class="line">  <span class="keyword">var</span> result = prefix.<span class="title function_">match</span>(pattern);<span class="comment">//match 是匹配的意思</span></span><br><span class="line">  <span class="keyword">if</span> (result !== <span class="literal">null</span>) &#123;</span><br><span class="line">    qq_img = <span class="string">&quot;//q1.qlogo.cn/g?b=qq&amp;nk=&quot;</span> + prefix + <span class="string">&quot;&amp;s=100&quot;</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E4%B8%BAValine%E8%AF%84%E8%AE%BA%E6%B7%BB%E5%8A%A0QQ%E5%A4%B4%E5%83%8F%E8%AF%86%E5%88%AB/code_1.png" alt="code_1.png" /></p><h2 id="修改流程"><a class="markdownIt-Anchor" href="#修改流程"></a> 修改流程</h2><p>流程：</p><ol><li>默认还是gravator头像接口</li><li>判断是否是qq邮箱，提取前缀prefix</li><li>qq头像接口是qq号，如正则筛选剔除–重命名了带英文的qq邮箱</li><li>拼接头像地址</li><li>加入src显示！</li></ol><p>参考博客链接：<a href="">https://blog.csdn.net/cungudafa/article/details/104638730</a></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="hexo" scheme="https://blog.findingx.cc/tags/hexo/"/>
    
  </entry>
  
  <entry>
    <title>在material主题使用BBtalk</title>
    <link href="https://blog.findingx.cc/2021/04/25/021309/"/>
    <id>https://blog.findingx.cc/2021/04/25/021309/</id>
    <published>2021-04-24T18:13:09.000Z</published>
    <updated>2025-07-11T01:38:06.147Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="新建bbtalk页面"><a class="markdownIt-Anchor" href="#新建bbtalk页面"></a> 新建BBtalk页面</h2><p>终端输入<code>hexo new page bb</code></p><p>打开<a target="_blank" rel="noopener" href="https://bb.js.org/quick-start.html#cdn%E5%BC%95%E7%94%A8">BBtalk</a>文档</p><p>复制<code>CDN引用</code>下方的代码</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- 存放哔哔的容器 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;bbtalk&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"><span class="comment">&lt;!-- 引用 bbtalk --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://cdn.jsdelivr.net/npm/bbtalk@0.1.5/dist/bbtalk.min.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">bbtalk.<span class="title function_">init</span>(&#123;</span></span><br><span class="line"><span class="language-javascript">  <span class="attr">appId</span>: <span class="string">&quot;Y5IDwC47czJFXXXXXXSlU44Y-MdYXbMMI&quot;</span>,</span></span><br><span class="line"><span class="language-javascript">  <span class="attr">appKey</span>: <span class="string">&quot;qgrJ3nRwXXXXXXwwnVfj0uaQ&quot;</span>,</span></span><br><span class="line"><span class="language-javascript">  <span class="attr">serverURLs</span>: <span class="string">&#x27;https://AppID前八位.api.lncldglobal.com&#x27;</span></span></span><br><span class="line"><span class="language-javascript">&#125;)</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9C%A8material%E4%B8%BB%E9%A2%98%E4%BD%BF%E7%94%A8BBtalk/Code_1.png" alt="Code_1" /></p><p>终端输入<code>hexo s</code>效果如下,圆点位置会有偏差：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9C%A8material%E4%B8%BB%E9%A2%98%E4%BD%BF%E7%94%A8BBtalk/test_1.png" alt="test_1" /></p><p>打开下方链接，复制js内容，在本地新建一个<code>bbtalk.min.js</code>。</p><p><a target="_blank" rel="noopener" href="https://hp-l.gitee.io/phone/bb/bbtalk.min.js">https://hp-l.gitee.io/phone/bb/bbtalk.min.js</a></p><p>再将上文中的复制的<code>CDN引用</code>下方的代码 <code>https://cdn.jsdelivr.net/npm/bbtalk@0.1.5/dist/bbtalk.min.js</code> 改成 <code>./bbtalk.min.js</code></p><p>即</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">&lt;!-- 存放哔哔的容器 --&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">&quot;bbtalk&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"><span class="comment">&lt;!-- 引用 bbtalk --&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;./bbtalk.min.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="language-javascript"></span></span><br><span class="line"><span class="language-javascript">bbtalk.<span class="title function_">init</span>(&#123;</span></span><br><span class="line"><span class="language-javascript">  <span class="attr">appId</span>: <span class="string">&quot;Y5IDwC47czJFXXXXXXSlU44Y-MdYXbMMI&quot;</span>,</span></span><br><span class="line"><span class="language-javascript">  <span class="attr">appKey</span>: <span class="string">&quot;qgrJ3nRwXXXXXXwwnVfj0uaQ&quot;</span>,</span></span><br><span class="line"><span class="language-javascript">  <span class="attr">serverURLs</span>: <span class="string">&#x27;https://AppID前八位.api.lncldglobal.com&#x27;</span></span></span><br><span class="line"><span class="language-javascript">&#125;)</span></span><br><span class="line"><span class="language-javascript"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><p>效果如下，还需进一步调整。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9C%A8material%E4%B8%BB%E9%A2%98%E4%BD%BF%E7%94%A8BBtalk/test_2.png" alt="test_2.png" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%9C%A8material%E4%B8%BB%E9%A2%98%E4%BD%BF%E7%94%A8BBtalk/test_3.jpg" alt="test_3" /></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="hexo" scheme="https://blog.findingx.cc/tags/hexo/"/>
    
    <category term="material" scheme="https://blog.findingx.cc/tags/material/"/>
    
  </entry>
  
  <entry>
    <title>STM32点亮LED</title>
    <link href="https://blog.findingx.cc/2021/01/31/204609/"/>
    <id>https://blog.findingx.cc/2021/01/31/204609/</id>
    <published>2021-01-31T12:46:09.000Z</published>
    <updated>2025-07-11T01:38:06.141Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>点灯就相当于 python 的<code>print(&quot;hello world&quot;)</code></p><h2 id="定义引脚"><a class="markdownIt-Anchor" href="#定义引脚"></a> 定义引脚</h2><p>打开工程文件后，找到相应的引脚，单击选择<code>GPIO_Output</code>，再右键选择 Enter User Label，输入定义的名称。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E7%82%B9%E4%BA%AELED/LED_1.png" alt="工程" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E7%82%B9%E4%BA%AELED/LED_2.png" alt="LED_2" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E7%82%B9%E4%BA%AELED/LED_3.png" alt="LED_3" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E7%82%B9%E4%BA%AELED/LED_4.png" alt="LED_4" /></p><p>点击生成代码</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E7%82%B9%E4%BA%AELED/CODE_1.png" alt="点击生成代码" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E7%82%B9%E4%BA%AELED/CODE_2.png" alt="等待生成代码" /></p><p>点灯代码如下</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//点灯代码    LED1闪烁</span></span><br><span class="line"> HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);</span><br><span class="line"> HAL_Delay(<span class="number">300</span>);</span><br></pre></td></tr></table></figure><p>自动生成代码如下</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">(<span class="type">void</span>)</span></span><br><span class="line">&#123;</span><br><span class="line">  <span class="comment">/* USER CODE BEGIN 1 */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* USER CODE END 1 */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* MCU Configuration----------------------------------*/</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Reset of all peripherals, Initializes the Flash interface and the Systick. */</span></span><br><span class="line">  HAL_Init();</span><br><span class="line"></span><br><span class="line">  <span class="comment">/* USER CODE BEGIN Init */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* USER CODE END Init */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Configure the system clock */</span></span><br><span class="line">  SystemClock_Config();</span><br><span class="line"></span><br><span class="line">  <span class="comment">/* USER CODE BEGIN SysInit */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* USER CODE END SysInit */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Initialize all configured peripherals */</span></span><br><span class="line">  MX_GPIO_Init();</span><br><span class="line">  <span class="comment">/* USER CODE BEGIN 2 */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* USER CODE END 2 */</span></span><br><span class="line"></span><br><span class="line">  <span class="comment">/* Infinite loop */</span></span><br><span class="line">  <span class="comment">/* USER CODE BEGIN WHILE */</span></span><br><span class="line">  <span class="keyword">while</span> (<span class="number">1</span>)</span><br><span class="line">  &#123;</span><br><span class="line">    <span class="comment">/* USER CODE END WHILE */</span></span><br><span class="line"></span><br><span class="line">    <span class="comment">/* USER CODE BEGIN 3 */</span></span><br><span class="line">    <span class="comment">//点灯代码    LED1闪烁</span></span><br><span class="line">    HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);</span><br><span class="line">    HAL_Delay(<span class="number">300</span>);</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="comment">/* USER CODE END 3 */</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>连接开发板后点击RUN图标</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32点亮LED/RUN.png," alt="alt=RUN" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">alt=RUN</span></div></div><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32点亮LED/successfully.png," alt="alt=successfully" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">alt=successfully</span></div></div>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="STM32" scheme="https://blog.findingx.cc/tags/STM32/"/>
    
    <category term="C" scheme="https://blog.findingx.cc/tags/C/"/>
    
    <category term="CUBEIDE" scheme="https://blog.findingx.cc/tags/CUBEIDE/"/>
    
  </entry>
  
  <entry>
    <title>小程序局域网控制ESP32（物联网芯片）</title>
    <link href="https://blog.findingx.cc/2020/12/16/225710/"/>
    <id>https://blog.findingx.cc/2020/12/16/225710/</id>
    <published>2020-12-16T14:57:10.000Z</published>
    <updated>2025-07-11T01:38:06.148Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="微信小程序"><a class="markdownIt-Anchor" href="#微信小程序"></a> 微信小程序</h2><!-- 代码Gitee仓库 --><p>体验版二维码。<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%B0%8F%E7%A8%8B%E5%BA%8F%E6%8E%A7%E5%88%B6ESP32/https://7.dusays.com/2020/12/16/46f7f2a73970e.jpg" alt="体验版二维码" /><br />线上版二维码。</p><div class="tag-plugin image"><div class="image-bg"><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/小程序控制ESP32/wechar.jpg," alt="width=200px, bg=#f4f4f4, alt=线上版二维码" data-fancybox="true"/></div><div class="image-meta"><span class="image-caption center">width=200px, bg=#f4f4f4, alt=线上版二维码</span></div></div><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%B0%8F%E7%A8%8B%E5%BA%8F%E6%8E%A7%E5%88%B6ESP32/wechar.jpg" alt="jpg" /></p><p><a target="_blank" rel="noopener" href="https://gitee.com/HP-L/esp32_-we-char_-connect">https://gitee.com/HP-L/esp32_-we-char_-connect</a></p><h2 id="esp32-代码"><a class="markdownIt-Anchor" href="#esp32-代码"></a> ESP32 代码</h2><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> machine <span class="keyword">import</span> Timer,Pin,RTC <span class="comment">#调用GPIO口调用定时器库</span></span><br><span class="line"><span class="keyword">import</span> socket</span><br><span class="line"><span class="keyword">from</span> emp_wifi <span class="keyword">import</span> Wifi</span><br><span class="line"><span class="keyword">import</span> time</span><br><span class="line"><span class="keyword">import</span> esp32</span><br><span class="line"><span class="keyword">import</span> usocket</span><br><span class="line"><span class="comment"># from machine import Pin, SPI, UART,I2C</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 爬虫使用库</span></span><br><span class="line"><span class="keyword">import</span> socket,re,sys,os</span><br><span class="line"><span class="keyword">import</span> urequests <span class="keyword">as</span> request</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">hea = &#123;<span class="string">&#x27;User-Agent&#x27;</span>:<span class="string">&#x27;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36&#x27;</span>&#125;</span><br><span class="line">rtc = RTC()</span><br><span class="line"></span><br><span class="line">port = <span class="number">10000</span>  <span class="comment">#端口号</span></span><br><span class="line">listenSocket = <span class="literal">None</span>  <span class="comment">#套接字</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">import</span> network</span><br><span class="line">wifi = network.WLAN(network.STA_IF)</span><br><span class="line">wifi.active(<span class="literal">True</span>)</span><br><span class="line"></span><br><span class="line">A = Pin(<span class="number">17</span>, Pin.OUT, value=<span class="number">0</span>)</span><br><span class="line">B = Pin(<span class="number">12</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">C = Pin(<span class="number">14</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">D = Pin(<span class="number">27</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">E = Pin(<span class="number">26</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">F = Pin(<span class="number">25</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">G = Pin(<span class="number">33</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 爬时间</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">get_time_pa</span>():</span><br><span class="line">    time_api_url = <span class="string">&quot;&quot;&quot;http://quan.suning.com/getSysTime.do&quot;&quot;&quot;</span></span><br><span class="line">    r = request.get(time_api_url, headers = hea)</span><br><span class="line">    content = r.text</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&#x27;爬取时间...&#x27;</span>)</span><br><span class="line">    time = re.search(</span><br><span class="line">        <span class="string">r&#x27;&#123;&quot;sysTime2&quot;:&quot;(.*?)-(.*?)-(.*?) (.*?):(.*?):(.*?)&quot;,&quot;sysTime1&quot;:&quot;&#x27;</span>, content</span><br><span class="line">        )</span><br><span class="line">    <span class="built_in">print</span>(r.text[<span class="number">13</span>:<span class="number">29</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="built_in">int</span>(r.text[<span class="number">27</span>:<span class="number">29</span>]))</span><br><span class="line">    <span class="built_in">print</span>(<span class="built_in">int</span>(r.text[<span class="number">23</span>:<span class="number">26</span>]))</span><br><span class="line">    mm = <span class="built_in">int</span>(r.text[<span class="number">27</span>:<span class="number">29</span>])<span class="comment"># 分钟</span></span><br><span class="line">    hh = <span class="built_in">int</span>(r.text[<span class="number">23</span>:<span class="number">26</span>])<span class="comment"># 小时</span></span><br><span class="line">    rtc = RTC()</span><br><span class="line">    time_date = rtc.datetime()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&#x27;重置时间！&#x27;</span>)</span><br><span class="line">    rtc.datetime((time_date[<span class="number">0</span>], time_date[<span class="number">1</span>], time_date[<span class="number">2</span>], time_date[<span class="number">3</span>], hh, mm, time_date[<span class="number">6</span>], time_date[<span class="number">7</span>]))</span><br><span class="line">    rtc.datetime()</span><br><span class="line"></span><br><span class="line"><span class="comment">#自动联网</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">wifi_connect</span>():</span><br><span class="line">  wifi_led=Pin(<span class="number">12</span>,Pin.OUT)             <span class="comment"># 板载指示灯初始化    MODE1左边</span></span><br><span class="line">  wlan = network.WLAN(network.STA_IF)  <span class="comment"># 以工作站 (wlan) 模式运行，需要创建一个工作站Wi-Fi接口的实例</span></span><br><span class="line">  wlan.active(<span class="literal">True</span>)                    <span class="comment"># 在工作站对象上调用激活方法并以True作为输入值传递来激活网络接口</span></span><br><span class="line">  start_time=time.time()               <span class="comment"># 记录开始时间</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> <span class="keyword">not</span> wlan.isconnected():              <span class="comment"># 如果尚未联网成功</span></span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;当前无线未联网，正在连接中....&quot;</span>)</span><br><span class="line"><span class="comment">#     wlan.connect(&quot;WiFi名称&quot;, &quot;密码&quot;)   # 无线网SSID、密码，开始联网</span></span><br><span class="line">    wlan.connect(<span class="string">&#x27;&#x27;</span>,<span class="string">&#x27;&#x27;</span>)   <span class="comment"># 无线网SSID、密码，开始联网</span></span><br><span class="line">    <span class="keyword">while</span> <span class="keyword">not</span> wlan.isconnected():         <span class="comment"># 如果还未连接成功，则LED灯闪烁提示</span></span><br><span class="line">      wifi_led.value(<span class="number">1</span>)</span><br><span class="line">      time.sleep_ms(<span class="number">1000</span>)</span><br><span class="line">      wifi_led.value(<span class="number">1</span>)</span><br><span class="line">      time.sleep_ms(<span class="number">1000</span>)</span><br><span class="line">      <span class="built_in">print</span>(<span class="string">&quot;正在尝试连接到wifi....&quot;</span>)</span><br><span class="line">      <span class="built_in">print</span>(time.time())</span><br><span class="line">      <span class="keyword">if</span> time.time()-start_time&gt;<span class="number">15</span>:       <span class="comment"># 如果超过15秒还不行，就退出</span></span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;连接失败!!!无线网连接超过15秒，请检查无线网名称和密码是否正确..&quot;</span>)</span><br><span class="line">        <span class="keyword">break</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> wlan.isconnected():                  <span class="comment"># 如果联接成功</span></span><br><span class="line">    wifi_led.value(<span class="number">1</span>)                     <span class="comment"># LED灯常亮</span></span><br><span class="line">    IP_info=wlan.ifconfig()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;无线网已经连接，信息如下：&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;IP地址：&quot;</span>+IP_info[<span class="number">0</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;子网掩码：&quot;</span>+IP_info[<span class="number">1</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;网关：&quot;</span>+IP_info[<span class="number">2</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;DNS：&quot;</span>+IP_info[<span class="number">3</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line">    get_time_pa()</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># 获取芯片温度</span></span><br><span class="line"><span class="comment"># def wendu():</span></span><br><span class="line"><span class="comment">#     f = esp32.raw_temperature()</span></span><br><span class="line"><span class="comment">#     c = (f-32)/1.8</span></span><br><span class="line"><span class="comment">#     print(c)</span></span><br><span class="line"><span class="comment">#     oled.text(&quot;IC:&quot; + str(int(c)),20,0)</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 远程连接传输命令函数</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">connect_to_phone</span>():</span><br><span class="line">    <span class="keyword">try</span>:</span><br><span class="line">        ip = Wifi.ifconfig()[<span class="number">0</span>][<span class="number">0</span>]   <span class="comment">#获取IP地址</span></span><br><span class="line">        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)   <span class="comment">#设置套接字</span></span><br><span class="line">        sockaddr = socket.getaddrinfo(ip, port)</span><br><span class="line">        <span class="built_in">print</span>(sockaddr[<span class="number">0</span>][<span class="number">4</span>])</span><br><span class="line">        s.bind(sockaddr[<span class="number">0</span>][<span class="number">4</span>])</span><br><span class="line">        <span class="built_in">print</span> (<span class="string">&#x27;tcp waiting...&#x27;</span>)</span><br><span class="line">        <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">            data, addr = s.recvfrom(<span class="number">1024</span>)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&#x27;From %s %s&#x27;</span> % addr)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&#x27;data is %s&#x27;</span> % data)</span><br><span class="line">            data_utf8 = <span class="built_in">bytes</span>.decode(data)</span><br><span class="line">            <span class="built_in">print</span>(data_utf8)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_1_on&quot;</span>:</span><br><span class="line">                B.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_2_on&quot;</span>:</span><br><span class="line">                C.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_1_off&quot;</span>:</span><br><span class="line">                B.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_2_off&quot;</span>:</span><br><span class="line">                C.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_3_on&quot;</span>:</span><br><span class="line">                D.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_4_on&quot;</span>:</span><br><span class="line">                E.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_3_off&quot;</span>:</span><br><span class="line">                D.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_4_off&quot;</span>:</span><br><span class="line">                E.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_5_on&quot;</span>:</span><br><span class="line">                F.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_6_on&quot;</span>:</span><br><span class="line">                G.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_5_off&quot;</span>:</span><br><span class="line">                F.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_6_off&quot;</span>:</span><br><span class="line">                G.value(<span class="number">1</span>)</span><br><span class="line">    <span class="keyword">except</span>:</span><br><span class="line">        <span class="keyword">if</span>(listenSocket):   <span class="comment">#判断套接字是否为空</span></span><br><span class="line">            listenSocket.close()   <span class="comment">#关闭套接字</span></span><br><span class="line"></span><br><span class="line">wifi_connect()</span><br><span class="line">connect_to_phone()</span><br></pre></td></tr></table></figure><p>本程序可连接 OLED1306 也可不连接 OLED1306，不会因为未连接显示屏报错。<br />可直接将 OLED1306 与 ESP32 连接，若不显示，原因可能是接线不稳，接触不良。<br />注意：本程序使用的时 I2C 通讯！！！硬件连接时，I2C必须接上高电平，下面程序是方便面包板使用者使用的程序。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> machine <span class="keyword">import</span> Timer,Pin,RTC <span class="comment">#调用GPIO口调用定时器库</span></span><br><span class="line"><span class="keyword">import</span> socket</span><br><span class="line"><span class="keyword">from</span> emp_wifi <span class="keyword">import</span> Wifi</span><br><span class="line"><span class="keyword">import</span> time</span><br><span class="line"><span class="keyword">import</span> esp32</span><br><span class="line"><span class="keyword">import</span> usocket</span><br><span class="line"></span><br><span class="line"><span class="comment"># 爬虫使用库</span></span><br><span class="line"><span class="keyword">import</span> socket,re,sys,os</span><br><span class="line"><span class="keyword">import</span> urequests <span class="keyword">as</span> request</span><br><span class="line"></span><br><span class="line"><span class="comment"># 显示屏使用库</span></span><br><span class="line"><span class="keyword">import</span> machine, ssd1306, gfx</span><br><span class="line"></span><br><span class="line">hea = &#123;<span class="string">&#x27;User-Agent&#x27;</span>:<span class="string">&#x27;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36&#x27;</span>&#125;</span><br><span class="line">rtc = RTC()</span><br><span class="line"></span><br><span class="line">port = <span class="number">10000</span>  <span class="comment">#端口号</span></span><br><span class="line">listenSocket = <span class="literal">None</span>  <span class="comment">#套接字</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">import</span> network</span><br><span class="line"></span><br><span class="line">WIFI = Pin(<span class="number">17</span>, Pin.OUT, value=<span class="number">0</span>)</span><br><span class="line">LED_1 = Pin(<span class="number">12</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">LED_2 = Pin(<span class="number">14</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">LED_3 = Pin(<span class="number">27</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">LED_4 = Pin(<span class="number">26</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">LED_5 = Pin(<span class="number">25</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">LED_6 = Pin(<span class="number">33</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">LED_7 = Pin(<span class="number">32</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line">L3 = Pin(<span class="number">13</span>, Pin.OUT, value=<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># 爬时间</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">get_time_pa</span>():</span><br><span class="line">    time_api_url = <span class="string">&quot;&quot;&quot;http://quan.suning.com/getSysTime.do&quot;&quot;&quot;</span></span><br><span class="line">    r = request.get(time_api_url, headers = hea)</span><br><span class="line">    content = r.text</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&#x27;爬取时间...&#x27;</span>)</span><br><span class="line">    time = re.search(</span><br><span class="line">        <span class="string">r&#x27;&#123;&quot;sysTime2&quot;:&quot;(.*?)-(.*?)-(.*?) (.*?):(.*?):(.*?)&quot;,&quot;sysTime1&quot;:&quot;&#x27;</span>, content</span><br><span class="line">        )</span><br><span class="line">    <span class="built_in">print</span>(r.text[<span class="number">13</span>:<span class="number">29</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="built_in">int</span>(r.text[<span class="number">27</span>:<span class="number">29</span>]))</span><br><span class="line">    <span class="built_in">print</span>(<span class="built_in">int</span>(r.text[<span class="number">23</span>:<span class="number">26</span>]))</span><br><span class="line">    mm = <span class="built_in">int</span>(r.text[<span class="number">27</span>:<span class="number">29</span>])<span class="comment"># 分钟</span></span><br><span class="line">    hh = <span class="built_in">int</span>(r.text[<span class="number">23</span>:<span class="number">26</span>])<span class="comment"># 小时</span></span><br><span class="line">    rtc = RTC()</span><br><span class="line">    time_date = rtc.datetime()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&#x27;重置时间！&#x27;</span>)</span><br><span class="line">    rtc.datetime((time_date[<span class="number">0</span>], time_date[<span class="number">1</span>], time_date[<span class="number">2</span>], time_date[<span class="number">3</span>], hh, mm, time_date[<span class="number">6</span>], time_date[<span class="number">7</span>]))</span><br><span class="line">    rtc.datetime()</span><br><span class="line"></span><br><span class="line"><span class="comment">#自动联网</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">wifi_connect</span>():</span><br><span class="line">  wifi_led=Pin(<span class="number">23</span>,Pin.OUT)             <span class="comment"># 板载指示灯初始化    MODE1左边</span></span><br><span class="line">  wlan = network.WLAN(network.STA_IF)  <span class="comment"># 以工作站 (wlan) 模式运行，需要创建一个工作站Wi-Fi接口的实例</span></span><br><span class="line">  wlan.active(<span class="literal">True</span>)                    <span class="comment"># 在工作站对象上调用激活方法并以True作为输入值传递来激活网络接口</span></span><br><span class="line">  start_time=time.time()               <span class="comment"># 记录开始时间</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> <span class="keyword">not</span> wlan.isconnected():              <span class="comment"># 如果尚未联网成功</span></span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;当前无线未联网，正在连接中....&quot;</span>)</span><br><span class="line">    wlan.connect(<span class="string">&#x27;***&#x27;</span>,<span class="string">&#x27;***&#x27;</span>)   <span class="comment"># 无线网SSID、密码，开始联网</span></span><br><span class="line">    <span class="keyword">while</span> <span class="keyword">not</span> wlan.isconnected():         <span class="comment"># 如果还未连接成功，则LED灯闪烁提示</span></span><br><span class="line">      wifi_led.value(<span class="number">0</span>)</span><br><span class="line">      time.sleep_ms(<span class="number">1000</span>)</span><br><span class="line">      wifi_led.value(<span class="number">0</span>)</span><br><span class="line">      time.sleep_ms(<span class="number">1000</span>)</span><br><span class="line">      <span class="built_in">print</span>(<span class="string">&quot;正在尝试连接到wifi....&quot;</span>)</span><br><span class="line">      <span class="built_in">print</span>(time.time())</span><br><span class="line">      <span class="keyword">if</span> time.time()-start_time&gt;<span class="number">15</span>:       <span class="comment"># 如果超过15秒还不行，就退出</span></span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;连接失败!!!无线网连接超过15秒，请检查无线网名称和密码是否正确..&quot;</span>)</span><br><span class="line">        <span class="keyword">break</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> wlan.isconnected():                  <span class="comment"># 如果联接成功</span></span><br><span class="line">    wifi_led.value(<span class="number">0</span>)                     <span class="comment"># LED灯常亮</span></span><br><span class="line">    IP_info=wlan.ifconfig()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;无线网已经连接，信息如下：&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;IP地址：&quot;</span>+IP_info[<span class="number">0</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;子网掩码：&quot;</span>+IP_info[<span class="number">1</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;网关：&quot;</span>+IP_info[<span class="number">2</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;DNS：&quot;</span>+IP_info[<span class="number">3</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line"><span class="comment">#     get_time_pa()</span></span><br><span class="line"></span><br><span class="line">oled_str1=<span class="string">&#x27;&#x27;</span></span><br><span class="line">oled_str2=<span class="string">&#x27;&#x27;</span></span><br><span class="line">oled_str3=<span class="string">&#x27;&#x27;</span></span><br><span class="line">oled_str4=<span class="string">&#x27;&#x27;</span></span><br><span class="line">oled_str5=<span class="string">&#x27;&#x27;</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">oled_process</span>(<span class="params">str1,ip,oled,graphics</span>):</span><br><span class="line"><span class="comment">#     i2c = machine.I2C(scl=machine.Pin(18), sda=machine.Pin(19))</span></span><br><span class="line"><span class="comment">#     oled = ssd1306.SSD1306_I2C(128 ,64 ,i2c)</span></span><br><span class="line"><span class="comment">#     graphics = gfx.GFX(128, 64, oled.pixel)</span></span><br><span class="line">    <span class="keyword">global</span> oled_str1</span><br><span class="line">    <span class="keyword">global</span> oled_str2</span><br><span class="line">    <span class="keyword">global</span> oled_str3</span><br><span class="line">    <span class="keyword">global</span> oled_str4</span><br><span class="line">    <span class="keyword">global</span> oled_str5</span><br><span class="line">    oled_str1=oled_str2</span><br><span class="line">    oled_str2=oled_str3</span><br><span class="line">    oled_str3=oled_str4</span><br><span class="line">    oled_str4=oled_str5</span><br><span class="line">    oled_str5=str1</span><br><span class="line">    oled.fill(<span class="number">0</span>)</span><br><span class="line">    graphics._slow_vline(<span class="number">0</span>, <span class="number">0</span>, <span class="number">64</span>, <span class="number">1</span>)</span><br><span class="line">    graphics._slow_vline(<span class="number">127</span>, <span class="number">0</span>, <span class="number">128</span>, <span class="number">1</span>)</span><br><span class="line">    graphics._slow_hline(<span class="number">0</span>, <span class="number">15</span>, <span class="number">128</span>, <span class="number">1</span>)</span><br><span class="line">    graphics._slow_hline(<span class="number">0</span>, <span class="number">16</span>, <span class="number">128</span>, <span class="number">1</span>)</span><br><span class="line">    graphics._slow_hline(<span class="number">0</span>, <span class="number">0</span>, <span class="number">128</span>, <span class="number">1</span>)</span><br><span class="line">    graphics._slow_hline(<span class="number">0</span>, <span class="number">63</span>, <span class="number">128</span>, <span class="number">1</span>)</span><br><span class="line">    oled.text(<span class="string">&quot;port:10000 &amp; ip&quot;</span>,<span class="number">0</span>+<span class="number">2</span>,<span class="number">0</span>)</span><br><span class="line">    oled.text(ip,<span class="number">0</span>+<span class="number">2</span>,<span class="number">8</span>)</span><br><span class="line">    oled.text(oled_str5,<span class="number">0</span>+<span class="number">2</span>,<span class="number">16</span>+<span class="number">2</span>)</span><br><span class="line">    oled.text(oled_str4,<span class="number">0</span>+<span class="number">2</span>,<span class="number">24</span>+<span class="number">2</span>)</span><br><span class="line">    oled.text(oled_str3,<span class="number">0</span>+<span class="number">2</span>,<span class="number">32</span>+<span class="number">2</span>)</span><br><span class="line">    oled.text(oled_str2,<span class="number">0</span>+<span class="number">2</span>,<span class="number">40</span>+<span class="number">2</span>)</span><br><span class="line">    oled.text(oled_str1,<span class="number">0</span>+<span class="number">2</span>,<span class="number">48</span>+<span class="number">2</span>)</span><br><span class="line">    oled.show()</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># 显示屏代码</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">oled_try</span>():</span><br><span class="line">    <span class="keyword">try</span>:</span><br><span class="line">        i2c = machine.I2C(scl=machine.Pin(<span class="number">18</span>), sda=machine.Pin(<span class="number">19</span>))</span><br><span class="line">        oled = ssd1306.SSD1306_I2C(<span class="number">128</span> ,<span class="number">64</span> ,i2c)</span><br><span class="line">        graphics = gfx.GFX(<span class="number">128</span>, <span class="number">64</span>, oled.pixel)</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;get&quot;</span>)</span><br><span class="line">        connect_to_phone_oled(oled,graphics)</span><br><span class="line">    <span class="keyword">except</span>:</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;false&quot;</span>)</span><br><span class="line">        connect_to_phone()</span><br><span class="line"></span><br><span class="line"><span class="comment"># 获取芯片温度</span></span><br><span class="line"><span class="comment"># def wendu():</span></span><br><span class="line"><span class="comment">#     f = esp32.raw_temperature()</span></span><br><span class="line"><span class="comment">#     c = (f-32)/1.8</span></span><br><span class="line"><span class="comment">#     print(c)</span></span><br><span class="line"><span class="comment">#     oled.text(&quot;IC:&quot; + str(int(c)),20,0)</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">connect_to_phone_oled</span>(<span class="params">oled,graphics</span>):</span><br><span class="line">    <span class="keyword">try</span>:</span><br><span class="line">        ip = Wifi.ifconfig()[<span class="number">0</span>][<span class="number">0</span>]   <span class="comment">#获取IP地址</span></span><br><span class="line">        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)   <span class="comment">#设置套接字</span></span><br><span class="line">        sockaddr = socket.getaddrinfo(ip, port)</span><br><span class="line">        <span class="built_in">print</span>(sockaddr[<span class="number">0</span>][<span class="number">4</span>])</span><br><span class="line">        s.bind(sockaddr[<span class="number">0</span>][<span class="number">4</span>])</span><br><span class="line">        oled_process(sockaddr[<span class="number">0</span>][<span class="number">4</span>][<span class="number">0</span>],sockaddr[<span class="number">0</span>][<span class="number">4</span>][<span class="number">0</span>],oled,graphics)</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;oled&quot;</span>)</span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&#x27;tcp waiting...&#x27;</span>)</span><br><span class="line">        <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">            data, addr = s.recvfrom(<span class="number">1024</span>)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&#x27;From %s %s&#x27;</span> % addr)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&#x27;data is %s&#x27;</span> % data)</span><br><span class="line">            data_utf8 = <span class="built_in">bytes</span>.decode(data)</span><br><span class="line">            oled_process(data_utf8,sockaddr[<span class="number">0</span>][<span class="number">4</span>][<span class="number">0</span>],oled,graphics)</span><br><span class="line">            data_size = s.sendto(data, addr)</span><br><span class="line">    <span class="comment">#             print(&#x27;From %s %s&#x27; % data_utf8)</span></span><br><span class="line">    <span class="comment">#             print(&#x27;data is %s&#x27; % data_utf8)</span></span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_1_on&quot;</span>:</span><br><span class="line">                LED_1.value(<span class="number">0</span>)</span><br><span class="line"><span class="comment">#                 data_size = s.sendto(&quot;led_1_on&quot;, addr)</span></span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_2_on&quot;</span>:</span><br><span class="line">                LED_2.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_1_off&quot;</span>:</span><br><span class="line">                LED_1.value(<span class="number">1</span>)</span><br><span class="line"><span class="comment">#                 data_size = s.sendto(&quot;led_1_off&quot;, addr)</span></span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_2_off&quot;</span>:</span><br><span class="line">                LED_2.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_3_on&quot;</span>:</span><br><span class="line">                LED_3.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_4_on&quot;</span>:</span><br><span class="line">                LED_4.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_3_off&quot;</span>:</span><br><span class="line">                LED_3.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_4_off&quot;</span>:</span><br><span class="line">                LED_4.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_5_on&quot;</span>:</span><br><span class="line">                LED_5.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_6_on&quot;</span>:</span><br><span class="line">                LED_6.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_5_off&quot;</span>:</span><br><span class="line">                LED_5.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_6_off&quot;</span>:</span><br><span class="line">                LED_6.value(<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_7_on&quot;</span>:</span><br><span class="line">                LED_7.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_7_off&quot;</span>:</span><br><span class="line">                LED_7.value(<span class="number">1</span>)</span><br><span class="line">    <span class="keyword">except</span>:</span><br><span class="line">        <span class="keyword">if</span>(listenSocket):   <span class="comment">#判断套接字是否为空</span></span><br><span class="line">            listenSocket.close()   <span class="comment">#关闭套接字</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">connect_to_phone</span>():</span><br><span class="line">    <span class="keyword">try</span>:</span><br><span class="line">        ip = Wifi.ifconfig()[<span class="number">0</span>][<span class="number">0</span>]   <span class="comment">#获取IP地址</span></span><br><span class="line">        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)   <span class="comment">#设置套接字</span></span><br><span class="line">        sockaddr = socket.getaddrinfo(ip, port)</span><br><span class="line">        <span class="built_in">print</span>(sockaddr[<span class="number">0</span>][<span class="number">4</span>])</span><br><span class="line">        s.bind(sockaddr[<span class="number">0</span>][<span class="number">4</span>])</span><br><span class="line">        <span class="built_in">print</span> (<span class="string">&#x27;tcp waiting...&#x27;</span>)</span><br><span class="line">        <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">            data, addr = s.recvfrom(<span class="number">1024</span>)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&#x27;From %s %s&#x27;</span> % addr)</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&#x27;data is %s&#x27;</span> % data)</span><br><span class="line">            data_utf8 = <span class="built_in">bytes</span>.decode(data)</span><br><span class="line"><span class="comment">#             print(&#x27;From %s %s&#x27; % data_utf8)</span></span><br><span class="line"><span class="comment">#             print(&#x27;data is %s&#x27; % data_utf8)</span></span><br><span class="line">            data_size = s.sendto(data, addr)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_1_on&quot;</span>:</span><br><span class="line">                LED_1.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_2_on&quot;</span>:</span><br><span class="line">                LED_2.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_1_off&quot;</span>:</span><br><span class="line">                LED_1.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_2_off&quot;</span>:</span><br><span class="line">                LED_2.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_3_on&quot;</span>:</span><br><span class="line">                LED_3.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_4_on&quot;</span>:</span><br><span class="line">                LED_4.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_3_off&quot;</span>:</span><br><span class="line">                LED_3.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_4_off&quot;</span>:</span><br><span class="line">                LED_4.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_5_on&quot;</span>:</span><br><span class="line">                LED_5.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_6_on&quot;</span>:</span><br><span class="line">                LED_6.value(<span class="number">0</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_5_off&quot;</span>:</span><br><span class="line">                LED_5.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_6_off&quot;</span>:</span><br><span class="line">                LED_6.value(<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_7_on&quot;</span>:</span><br><span class="line">                LED_7.value(<span class="number">1</span>)</span><br><span class="line">            <span class="keyword">if</span> data_utf8 == <span class="string">&quot;led_7_off&quot;</span>:</span><br><span class="line">                LED_7.value(<span class="number">1</span>)</span><br><span class="line">    <span class="keyword">except</span>:</span><br><span class="line">        <span class="keyword">if</span>(listenSocket):   <span class="comment">#判断套接字是否为空</span></span><br><span class="line">            listenSocket.close()   <span class="comment">#关闭套接字</span></span><br><span class="line"></span><br><span class="line">wifi_connect()</span><br><span class="line">oled_try()</span><br></pre></td></tr></table></figure><h2 id="测试视屏"><a class="markdownIt-Anchor" href="#测试视屏"></a> 测试视屏</h2><iframe height=520 width=776  src="//player.bilibili.com/player.html?aid=798143285&bvid=BV1Ay4y1D7T9&cid=269108454&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="max-width: 100%, text-align: center" > </iframe>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP32" scheme="https://blog.findingx.cc/tags/ESP32/"/>
    
    <category term="机器之魂魄" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E9%AD%82%E9%AD%84/"/>
    
    <category term="C" scheme="https://blog.findingx.cc/tags/C/"/>
    
    <category term="微信小程序" scheme="https://blog.findingx.cc/tags/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/"/>
    
  </entry>
  
  <entry>
    <title>微信小程序学习笔记</title>
    <link href="https://blog.findingx.cc/2020/12/12/013940/"/>
    <id>https://blog.findingx.cc/2020/12/12/013940/</id>
    <published>2020-12-11T17:39:40.000Z</published>
    <updated>2025-07-11T01:38:06.149Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="开发文档链接"><a class="markdownIt-Anchor" href="#开发文档链接"></a> 开发文档链接</h2><p><a target="_blank" rel="noopener" href="https://developers.weixin.qq.com/miniprogram/dev/framework/">微信官方文档</a></p><h2 id="文件"><a class="markdownIt-Anchor" href="#文件"></a> 文件</h2><p>全局文件：</p><ul><li>app.js 全局 js 文件：js 代码全局可以调用</li><li>app.json 全局配置文件：导航栏，背景颜色，标题，窗口配置</li><li>app.wxss 全局样式文件：统一样式</li><li>utils 文件夹：封装自定义的工具</li><li>pages 小程序页面文件夹：所有的页面都在该文件夹下管理，pages 文件夹中，一个文件夹代表一个页面。</li></ul><p>局部文件：一个页面的文件</p><ul><li>wxml</li><li>wxss</li><li>js</li><li>json</li></ul><h3 id="appjson"><a class="markdownIt-Anchor" href="#appjson"></a> app.json</h3><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;pages&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">&quot;pages/index/index&quot;</span><span class="punctuation">,</span> <span class="string">&quot;pages/logs/logs&quot;</span><span class="punctuation">]</span><span class="punctuation">,</span> <span class="comment">//页面管理</span></span><br><span class="line">  <span class="attr">&quot;window&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="comment">//窗口界面</span></span><br><span class="line">    <span class="attr">&quot;backgroundTextStyle&quot;</span><span class="punctuation">:</span> <span class="string">&quot;light&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;navigationBarBackgroundColor&quot;</span><span class="punctuation">:</span> <span class="string">&quot;#fff&quot;</span><span class="punctuation">,</span> <span class="comment">//导航栏颜色</span></span><br><span class="line">    <span class="attr">&quot;navigationBarTitleText&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Weixin&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;navigationBarTextStyle&quot;</span><span class="punctuation">:</span> <span class="string">&quot;black&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;style&quot;</span><span class="punctuation">:</span> <span class="string">&quot;v2&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;sitemapLocation&quot;</span><span class="punctuation">:</span> <span class="string">&quot;sitemap.json&quot;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>若要添加页面或者直接在<code>&quot;pages&quot;: [&quot;pages/index/index&quot;, &quot;pages/logs/logs&quot;]</code>中添加，IDE 会直接生成一个文件夹及内部页面文件。</p><p>若在全局配置中窗口界面配置了<code>&quot;navigationBarBackgroundColor&quot;: &quot;#fff&quot;</code>的同时，在单个页面(例如 logo 页面)的配置文件也配置了<code>&quot;navigationBarBackgroundColor&quot;: &quot;#000&quot;</code>，这是只有当跳转到(例如 logo 页面)时，导航栏颜色才会变成#000。</p><h3 id="微信小程序中的-js"><a class="markdownIt-Anchor" href="#微信小程序中的-js"></a> 微信小程序中的 js</h3><h4 id="变量"><a class="markdownIt-Anchor" href="#变量"></a> 变量</h4><p>js 变量：用于储存信息的容器<br />声明时使用 var+变量名，变量类型通过赋值来决定<br />注意：变量必须一字母开头，也可以$和_开头，大小写敏感</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> answer = <span class="string">&quot;It&#x27;s alright&quot;</span>;</span><br><span class="line"><span class="keyword">var</span> x1 = <span class="number">43.0</span>;</span><br><span class="line"><span class="keyword">var</span> x = <span class="literal">true</span>;</span><br><span class="line"><span class="keyword">var</span> cars = <span class="keyword">new</span> <span class="title class_">Array</span>();</span><br><span class="line">cars[<span class="number">0</span>] = <span class="string">&quot;Saab&quot;</span>;</span><br><span class="line"><span class="keyword">var</span> cars = [<span class="string">&quot;saab&quot;</span>, <span class="string">&quot;Volor&quot;</span>];</span><br><span class="line"><span class="keyword">var</span> person = <span class="literal">null</span>; <span class="comment">//清空变量内容</span></span><br><span class="line"><span class="keyword">var</span> carname; <span class="comment">//执行后内容为undefined</span></span><br></pre></td></tr></table></figure><h4 id="对象"><a class="markdownIt-Anchor" href="#对象"></a> 对象</h4><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> person = &#123;</span><br><span class="line">  <span class="attr">firstname</span>: <span class="string">&quot;John&quot;</span>,</span><br><span class="line">  <span class="attr">lastname</span>: <span class="string">&quot;Doe&quot;</span>,</span><br><span class="line">  <span class="attr">id</span>: <span class="number">5566</span>,</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><p>对象寻址方式</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">name = person.<span class="property">lastname</span>;</span><br><span class="line">name = person[<span class="string">&quot;lastname&quot;</span>];</span><br></pre></td></tr></table></figure><h4 id="运算"><a class="markdownIt-Anchor" href="#运算"></a> 运算</h4><p><code>+</code>,<code>-</code>,<code>*</code>,<code>/</code>,<code>%</code><br />比较运算符，返回值均为<code>FALSE</code>&amp;<code>TRUE</code><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F_1/" alt="比较运算符" /></p><p>逻辑运算符<br /><code>&amp;&amp;</code>,<code>||</code>,<code>！</code></p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">y = <span class="number">5</span>;</span><br><span class="line">z = <span class="number">2</span>;</span><br><span class="line">x = y + z;</span><br><span class="line">txt1 = <span class="string">&quot;what a very&quot;</span>;</span><br><span class="line">txt2 = <span class="string">&quot;nice day&quot;</span>;</span><br><span class="line">txt3 = txt1 + txt2; <span class="comment">//此时txt3 = &quot;what a verynice day&quot;</span></span><br></pre></td></tr></table></figure><h4 id="条件"><a class="markdownIt-Anchor" href="#条件"></a> 条件</h4><h5 id="if"><a class="markdownIt-Anchor" href="#if"></a> if</h5><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> (condition) &#123;</span><br><span class="line">  <span class="comment">//当condition为true时，才执行下面语句</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> (condition) &#123;</span><br><span class="line">  <span class="comment">//当condition为true时，才执行下面语句</span></span><br><span class="line">&#125; <span class="keyword">else</span> &#123;</span><br><span class="line">  <span class="comment">//否则执行下面代码</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> (condition) &#123;</span><br><span class="line">  <span class="comment">//当condition为true时，才执行下面语句</span></span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (condition1) &#123;</span><br><span class="line">  <span class="comment">//否则执行下面代码</span></span><br><span class="line">&#125; <span class="keyword">else</span> &#123;</span><br><span class="line">  <span class="comment">//否则执行下面代码</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="循环"><a class="markdownIt-Anchor" href="#循环"></a> 循环</h4><h5 id="for"><a class="markdownIt-Anchor" href="#for"></a> for</h5><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">for</span> (语句<span class="number">1</span>; 语句<span class="number">2</span>; 语句<span class="number">3</span>) &#123;</span><br><span class="line">  <span class="comment">//被执行的代码，语法和C语言相似</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">var</span> x = <span class="number">0</span>;</span><br><span class="line"><span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; <span class="number">5</span>; i++) &#123;</span><br><span class="line">  x = x + <span class="number">1</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="小程序中自动生成的-js-代码"><a class="markdownIt-Anchor" href="#小程序中自动生成的-js-代码"></a> 小程序中自动生成的 js 代码</h4><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// pages/index/index.js</span></span><br><span class="line"><span class="title class_">Page</span>(&#123;</span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 页面的初始数据</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">data</span>: &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 生命周期函数--监听页面加载</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onLoad</span>: <span class="keyword">function</span> (<span class="params">options</span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 生命周期函数--监听页面初次渲染完成</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onReady</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 生命周期函数--监听页面显示</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onShow</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 生命周期函数--监听页面隐藏</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onHide</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 生命周期函数--监听页面卸载</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onUnload</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 页面相关事件处理函数--监听用户下拉动作</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onPullDownRefresh</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 页面上拉触底事件的处理函数</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onReachBottom</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line"></span><br><span class="line">  <span class="comment">/**</span></span><br><span class="line"><span class="comment">   * 用户点击右上角分享</span></span><br><span class="line"><span class="comment">   */</span></span><br><span class="line">  <span class="attr">onShareAppMessage</span>: <span class="keyword">function</span> (<span class="params"></span>) &#123;&#125;,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><h5 id="page"><a class="markdownIt-Anchor" href="#page"></a> page</h5><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="title class_">Page</span>(&#123;</span><br><span class="line">  <span class="comment">//页面内容，不写任何东西也不会报错</span></span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><h6 id="data-和函数"><a class="markdownIt-Anchor" href="#data-和函数"></a> data 和函数</h6><p>data 对象</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">data</span>:&#123;</span><br><span class="line">  <span class="attr">msg</span>:<span class="string">&#x27;hello!&#x27;</span>,</span><br><span class="line">  <span class="attr">flag</span>:<span class="literal">false</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>function 函数</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">function</span>(<span class="params">参数</span>)&#123;</span><br><span class="line">  <span class="comment">//函数内容</span></span><br><span class="line">&#125;,</span><br></pre></td></tr></table></figure><h5 id="小程序的生命周期和回掉函数"><a class="markdownIt-Anchor" href="#小程序的生命周期和回掉函数"></a> 小程序的生命周期和回掉函数</h5><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">加载</span><br><span class="line"> |</span><br><span class="line">渲染</span><br><span class="line"> |</span><br><span class="line">显示----&gt;隐藏</span><br><span class="line"> |       |</span><br><span class="line"> |       |</span><br><span class="line">卸载&lt;----隐藏</span><br></pre></td></tr></table></figure><p>当程序运行到各个生命周期函数的节点时，会执行生命周期回调函数</p><p>回掉函数：</p><ul><li>onLoad() 页面加载时触发</li><li>onShow() 页面显示/切入前台触发</li><li>onReady() 页面初次渲染完成时触发<br />运行完上面流程即进入激活状态</li><li>onShow() 页面显示/切入前台触发</li><li>onHide() 页面影藏/切入后台触发</li><li>onUnload() 页面卸载时触发</li><li>onPullDownRefresh() 下拉刷新</li><li>onReachBottom()上拉触底事件</li><li>onShareAppMessage() 转发按钮，自定义转发内容</li></ul><h5 id="事件响应"><a class="markdownIt-Anchor" href="#事件响应"></a> 事件响应</h5><p>事件：视图层到逻辑层的通讯方式，将用户的行为反馈到逻辑层<br />即事件可以通过在 wxml 中绑定在组件上，达到触发条件时，会触发相应的事件处理函数(事件响应)对象可以额外携带如 id,dataset 等额外信息</p><p>组建事件响应：</p><ol><li><p>组件上绑定事件处理函数<br />点击事件绑定处理函数的方法：使用<code>bindtap</code>属性，属性值为 js 中的事件的事件处理函数的函数名</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&lt;view id=<span class="string">&quot;tapTest&quot;</span> data-hi=<span class="string">&quot;WeChat&quot;</span> bindtab=<span class="string">&quot;tapName&quot;</span>&gt;</span><br><span class="line">  <span class="title class_">Click</span> me!</span><br><span class="line">&lt;/view&gt;</span><br></pre></td></tr></table></figure></li><li><p>Page 中写相应函数处理事件，单数是 event，函数名要和 wxml 中绑定的 bindtap 属性属性值一致</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="title class_">Page</span>(&#123;</span><br><span class="line">  <span class="title function_">tapName</span>(<span class="params">event</span>) &#123;</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">log</span>(event); <span class="comment">//该语句将获取到的数据打印在了编译器的窗口中</span></span><br><span class="line">  &#125;,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure></li></ol><h5 id="小程序-js-数据处理"><a class="markdownIt-Anchor" href="#小程序-js-数据处理"></a> 小程序 js 数据处理</h5><h6 id="this-关键字"><a class="markdownIt-Anchor" href="#this-关键字"></a> this 关键字</h6><p>this：当前对象的一个引用，在使用时往往指向的是上一层对象，在函数中执行时指向的是全局对象</p><p>访问页面数据：this.data 页面初始数据的那部分<br />调用页面内的函数：this.onload() 执行这一语句就会执行 onload()函数</p><p>tips: 若在 API 中使用 this，需要在调用 API 前暂存指向页面的 this，例</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> that = <span class="variable language_">this</span>;</span><br></pre></td></tr></table></figure><p>调用方法</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="title class_">Page</span>(&#123;</span><br><span class="line">  <span class="attr">data</span>:&#123;</span><br><span class="line">    <span class="attr">a</span>:<span class="number">1</span>,</span><br><span class="line">    <span class="attr">b</span>:<span class="string">&#x27;balabala&#x27;</span>,</span><br><span class="line">    <span class="attr">c</span>:[<span class="string">&quot;a&quot;</span>,<span class="string">&quot;b&quot;</span>,]</span><br><span class="line">  &#125;,</span><br><span class="line"></span><br><span class="line">  <span class="attr">action</span>:<span class="keyword">function</span>(<span class="params"></span>)&#123;</span><br><span class="line">    <span class="variable language_">this</span>.<span class="property">data</span>.<span class="property">a</span>=<span class="number">666</span></span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="string">&quot;这是新的函数&quot;</span>)</span><br><span class="line">  &#125;,</span><br><span class="line"></span><br><span class="line">  <span class="attr">onLoad</span>: <span class="keyword">function</span>(<span class="params">options</span>)&#123;</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="variable language_">this</span>.<span class="property">data</span>)<span class="comment">//调时窗口打印出data中的所有值</span></span><br><span class="line">    <span class="variable language_">this</span>.<span class="title function_">action</span>()<span class="comment">//调用action函数</span></span><br><span class="line">  &#125;</span><br><span class="line">&#125;)</span><br></pre></td></tr></table></figure><h6 id="页面数据更新"><a class="markdownIt-Anchor" href="#页面数据更新"></a> 页面数据更新</h6><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable language_">this</span>.<span class="title function_">setData</span>(&#123;</span><br><span class="line">  <span class="comment">//变量名：新的值，</span></span><br><span class="line">  <span class="comment">//变量名：新的值，</span></span><br><span class="line">  <span class="comment">//变量名：新的值</span></span><br><span class="line">  <span class="attr">a</span>: <span class="number">8888</span>,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><h6 id="不同页面的数据出传递"><a class="markdownIt-Anchor" href="#不同页面的数据出传递"></a> 不同页面的数据出传递</h6><p>方法有二，其一，页面跳转过程中携带参数。其二，将数据存于全局数据中，各个页面在从全局中读取</p><p>第二种用法：在 app.js 中</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="title class_">App</span>(&#123;</span><br><span class="line">  <span class="attr">globalData</span>: &#123;</span><br><span class="line">    <span class="comment">//globalData可以改成其他名称</span></span><br><span class="line">    <span class="attr">userInfo</span>: <span class="literal">null</span>,</span><br><span class="line">  &#125;,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><p>各个页面与全局数据进行交互，使用<code>getApp()</code>历程如下:</p><p>页面的 js 文件如下</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">onLoad</span>:<span class="keyword">function</span>(<span class="params">options</span>)&#123;</span><br><span class="line">  <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="title function_">getApp</span>().<span class="property">globalData</span>.<span class="property">abc</span>)</span><br><span class="line">  <span class="title function_">getApp</span>().<span class="property">globalData</span>.<span class="property">abc</span> = <span class="number">456</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>app.js 文件中含有如下</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="title class_">App</span>(&#123;</span><br><span class="line">  <span class="attr">globalData</span>: &#123;</span><br><span class="line">    <span class="comment">//globalData可以改成其他名称</span></span><br><span class="line">    <span class="attr">userInfo</span>: <span class="literal">null</span>,</span><br><span class="line">    <span class="attr">abc</span>: <span class="number">1234</span>,</span><br><span class="line">    <span class="attr">d</span>: [],</span><br><span class="line">  &#125;,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><h3 id="微信小程序的-api-介绍"><a class="markdownIt-Anchor" href="#微信小程序的-api-介绍"></a> 微信小程序的 API 介绍</h3><p>API 的类型：</p><ul><li>事件监听 API：以 on 开头用于监听</li><li>同步 API：以 Sync 结尾的 API 都是同步 API，起执行结果可通过函数返回值直接获取。当执行到 API 时，停止组件进程等待 API 执行完。</li><li>异步 API：都接受一个 object 类型的参数。程序会启动一个分支来运行 API</li></ul><h4 id="api-内容"><a class="markdownIt-Anchor" href="#api-内容"></a> API 内容</h4><ul><li>success 部分：接口调用成功的回调函数</li><li>fail 部分：接口调用失败的回调函数</li><li>complete 部分：接口调用结束的回调函数</li></ul><p>微信登陆 API</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">wx.<span class="title function_">login</span>(&#123;</span><br><span class="line">  <span class="title function_">success</span>(<span class="params">res</span>) &#123;</span><br><span class="line">    <span class="comment">//成功执行</span></span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="title function_">fail</span>(<span class="params">res</span>) &#123;</span><br><span class="line">    <span class="variable language_">console</span>.<span class="title function_">log</span>(res.<span class="property">errMsg</span>);</span><br><span class="line">    <span class="comment">//失败执行</span></span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="title function_">complete</span>(<span class="params">res</span>) &#123;</span><br><span class="line">    <span class="comment">//一定执行</span></span><br><span class="line">  &#125;,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><p>Object 类型参数包含的字段</p><table><thead><tr><th>属性</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>errMsg</td><td>string</td><td>错误信息，若成功为</td></tr><tr><td>errCode</td><td>number</td><td>错误码，成功时为 0</td></tr><tr><td>其他</td><td>Any</td><td>接口返回数据</td></tr></tbody></table><h4 id="调用-api-进行页面互交"><a class="markdownIt-Anchor" href="#调用-api-进行页面互交"></a> 调用 API 进行页面互交</h4><ol><li>消息提示框</li></ol><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">wx.<span class="title function_">showToast</span>(&#123;</span><br><span class="line">  <span class="attr">title</span>: <span class="string">&quot;成功&quot;</span>, <span class="comment">//文字</span></span><br><span class="line">  <span class="attr">icon</span>: <span class="string">&quot;success&quot;</span>, <span class="comment">//对勾</span></span><br><span class="line">  <span class="attr">duration</span>: <span class="number">2000</span>, <span class="comment">//延时时间</span></span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><ol start="2"><li>模态弹窗</li></ol><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">wx.<span class="title function_">showModal</span>(&#123;</span><br><span class="line">  <span class="attr">title</span>: <span class="string">&quot;提示&quot;</span>,</span><br><span class="line">  <span class="attr">content</span>: <span class="string">&quot;这是一个模态弹窗&quot;</span>,</span><br><span class="line">  <span class="title function_">success</span>(<span class="params">res</span>) &#123;</span><br><span class="line">    <span class="keyword">if</span> (res.<span class="property">confirm</span>) &#123;</span><br><span class="line">      <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="string">&quot;用户点击确定&quot;</span>);</span><br><span class="line">    &#125; <span class="keyword">else</span> <span class="keyword">if</span> (res.<span class="property">cancel</span>) &#123;</span><br><span class="line">      <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="string">&quot;用户点击取消&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure><ol start="3"><li>Loading 提示框</li></ol><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">wx.<span class="title function_">showLoading</span>(&#123;</span><br><span class="line">  <span class="attr">title</span>: <span class="string">&quot;加载中&quot;</span>,</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line"><span class="built_in">setTimeout</span>(<span class="keyword">function</span> (<span class="params"></span>) &#123;</span><br><span class="line">  wx.<span class="title function_">hideLoading</span>(); <span class="comment">//必须调用hideLoading才能关闭loading</span></span><br><span class="line">&#125;, <span class="number">2000</span>);</span><br></pre></td></tr></table></figure><ol start="4"><li>页面路由 API</li></ol><ul><li><code>wx.relaunch()</code>关闭所有页面，打开到指定页面</li><li><code>wx.redirectTo()</code>关闭当前页面，跳转到指定页面</li><li><code>wx.navigateTo()</code>保留当前页面，跳转到指定页面</li><li><code>wx.navigateBack()</code>关闭当前页面，返回上一级或多级页面</li></ul><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">wx.<span class="title function_">relaunch</span>(&#123;</span><br><span class="line">  <span class="attr">url</span>: <span class="string">&quot;/pages/jsjs/jsjs&quot;</span>,</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line">wx.<span class="title function_">redirectTo</span>(&#123;</span><br><span class="line">  <span class="attr">url</span>: <span class="string">&quot;../jsjs/jsjs&quot;</span>,</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line">wx.<span class="title function_">navigateTo</span>(&#123;</span><br><span class="line">  <span class="attr">url</span>: <span class="string">&quot;/pages/jsjs/jsjs&quot;</span>,</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line">wx.<span class="title function_">navigateBack</span>(&#123;</span><br><span class="line">  <span class="attr">delta</span>: <span class="number">1</span>,</span><br><span class="line">&#125;);</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="理论" scheme="https://blog.findingx.cc/categories/%E7%90%86%E8%AE%BA/"/>
    
    
    <category term="微信小程序" scheme="https://blog.findingx.cc/tags/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/"/>
    
  </entry>
  
  <entry>
    <title>ESP32_物联网那些事</title>
    <link href="https://blog.findingx.cc/2020/12/03/154423/"/>
    <id>https://blog.findingx.cc/2020/12/03/154423/</id>
    <published>2020-12-03T07:44:23.000Z</published>
    <updated>2025-07-11T01:38:06.138Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="esp32_物联网那些事"><a class="markdownIt-Anchor" href="#esp32_物联网那些事"></a> ESP32_物联网那些事</h2><p>通过查阅资料，ESP32 是一款物联网模块，它支持 TCP/IP 协议，于是我们可以使用 socket 通讯，实现局域网通信，它也支持 MQTT 通讯，呵远程连接到阿里云。下面的链接有详细的使用说明。</p><p><a target="_blank" rel="noopener" href="http://www.1zlab.com/wiki/micropython-esp32/sockets/">Socket 通信</a></p><h2 id="使用物联网第一步烧录固件"><a class="markdownIt-Anchor" href="#使用物联网第一步烧录固件"></a> 使用物联网第一步：烧录固件</h2><p>这里提到的固件是micropython官方出的固件，我在网上还看到了不少通过C语言写.bin固件的教程，可以写自己需要的固件刷入到ESP32中</p><p>可以参考这篇文章</p><p><a target="_blank" rel="noopener" href="https://hp-l.gitee.io/2020/11/05/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/esp32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/?t=1606983183242">ESP32_micropython固件烧录</a></p><h2 id="如何连接到-wifi"><a class="markdownIt-Anchor" href="#如何连接到-wifi"></a> 如何连接到 WiFi？</h2><p><a target="_blank" rel="noopener" href="https://hp-l.gitee.io/2020/11/09/micropython%E8%81%94%E7%BD%91%E5%90%8C%E6%AD%A5%E6%97%B6%E9%97%B4/micropython%E8%81%94%E7%BD%91%E5%90%8C%E6%AD%A5%E6%97%B6%E9%97%B4/?t=1606983747012">Micropython联网同步时间</a></p><p>ESP32 是可以使用 REPL 的，REPL 就像局域网下的 VSCode，可以在浏览器上编写程序，可惜他不能开机自启，于是就有人开发了一款叫做 EMP 的 IDE ，下面有链接。</p><p><a target="_blank" rel="noopener" href="http://www.1zlab.com/wiki/micropython-esp32/emp-project/">EMP项目简介</a></p><p>我在执行原文提供的代码时发现<code>set_boot_mode()</code>报错</p><p>原文提供的代码</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&gt;&gt;&gt; </span><span class="keyword">from</span> emp_boot <span class="keyword">import</span> set_boot_mode</span><br><span class="line"><span class="meta">&gt;&gt;&gt; </span>set_boot_mode()</span><br><span class="line"></span><br><span class="line"><span class="meta">&gt;&gt;&gt; </span><span class="keyword">from</span> emp_boot <span class="keyword">import</span> set_boot_mode</span><br><span class="line"><span class="meta">&gt;&gt;&gt; </span>set_boot_mode()</span><br><span class="line">[<span class="number">0</span>]  Boot <span class="keyword">with</span> nothing</span><br><span class="line">     attention: this option will clear up boot.py, careful!</span><br><span class="line">[<span class="number">1</span>]  Boot <span class="keyword">with</span> wifi startup</span><br><span class="line">       this mode will auto start wifi connect program.</span><br><span class="line">[<span class="number">2</span>]  Easy to develop</span><br><span class="line">     this mode <span class="keyword">is</span> <span class="keyword">for</span> developers.In this mode you can develop much easier via EMP-         IDE(emp<span class="number">.1</span>zlab.com)</span><br><span class="line">Please <span class="built_in">input</span> your choice [<span class="number">0</span>-<span class="number">2</span>]:</span><br></pre></td></tr></table></figure><p>下面给出解决方案：</p><p>在 ESP32 的 <a target="_blank" rel="noopener" href="http://boot.py">boot.py</a> 中所有代码替换成如下代码：</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> emp_wifi <span class="keyword">import</span> Wifi</span><br><span class="line"><span class="keyword">from</span> emp_webrepl <span class="keyword">import</span> WebREPL</span><br><span class="line"><span class="keyword">from</span> emp_utils <span class="keyword">import</span> webrepl_pass</span><br><span class="line"><span class="keyword">from</span> emp_utils <span class="keyword">import</span> post_ip</span><br><span class="line"><span class="keyword">from</span> machine <span class="keyword">import</span> Pin <span class="comment"># 引用LED使用</span></span><br><span class="line"><span class="keyword">import</span> time</span><br><span class="line">wifi_LED = Pin(<span class="number">12</span>, Pin.OUT, value=<span class="number">1</span>) <span class="comment">#定义LED</span></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">&#x27;__main__&#x27;</span>:</span><br><span class="line">    Wifi.connect()</span><br><span class="line">    post_ip(Wifi.ifconfig()[<span class="number">0</span>][<span class="number">0</span>])</span><br><span class="line">    wifi_LED.value(<span class="number">0</span>)</span><br><span class="line">    time.sleep(<span class="number">0.5</span>)</span><br><span class="line">    wifi_LED.value(<span class="number">1</span>)</span><br><span class="line"><span class="comment">#     WebREPL.start(password=webrepl_pass())</span></span><br><span class="line"><span class="comment">#     from emp_ide import *</span></span><br><span class="line"><span class="string">&#x27;&#x27;&#x27;</span></span><br><span class="line"><span class="string">上面两行是调用emp_ide，取消注释就可以使用emp_ide，</span></span><br><span class="line"><span class="string">这里注释掉的原因是想直接调用连接WiFi的函数不使用emp_ide</span></span><br><span class="line"><span class="string">&#x27;&#x27;&#x27;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>在按复位即可，终端中会提示连接网络并且输入密码，连接过的 WiFi 会被记住，下次连接自动连，非常方便</p><h2 id="利用-esp32-联网实现一些小功能"><a class="markdownIt-Anchor" href="#利用-esp32-联网实现一些小功能"></a> 利用 ESP32 联网实现一些小功能</h2><p>我们可以通过 socket 通讯使得 PC 可以传输数据流到 ESP32 中，下面是代码，这里仿照的是<a target="_blank" rel="noopener" href="http://www.1zlab.com/wiki/micropython-esp32/sockets/">Socket 通信</a>文末的代码，原文中代码只能传输字节，下面代码可以传输中文字符，通过定义 IO 口可以实现局域网点亮 LED，甚至舵机。</p><h3 id="esp32-tcp-服务端"><a class="markdownIt-Anchor" href="#esp32-tcp-服务端"></a> ESP32 TCP 服务端</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> machine <span class="keyword">import</span> Timer,Pin,RTC <span class="comment">#调用GPIO口调用定时器库</span></span><br><span class="line"><span class="keyword">import</span> socket</span><br><span class="line"><span class="keyword">from</span> emp_wifi <span class="keyword">import</span> Wifi</span><br><span class="line"><span class="keyword">import</span> network</span><br><span class="line">wifi = network.WLAN(network.STA_IF)</span><br><span class="line">wifi.active(<span class="literal">True</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 远程连接传输命令函数</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">connect_to_phone</span>():</span><br><span class="line">    <span class="keyword">try</span>:</span><br><span class="line">        <span class="comment"># 注意：线连接到WiFi网络！</span></span><br><span class="line">        <span class="comment"># 如果未连接到网络，以下是连接到网络的代码</span></span><br><span class="line">        <span class="comment"># Wifi.connect()</span></span><br><span class="line">        ip = Wifi.ifconfig()[<span class="number">0</span>][<span class="number">0</span>]   <span class="comment">#获取IP地址</span></span><br><span class="line">        listenSocket = socket.socket()   <span class="comment">#创建套接字</span></span><br><span class="line">        listenSocket.bind((ip, port))   <span class="comment">#绑定地址和端口号</span></span><br><span class="line">        listenSocket.listen(<span class="number">1</span>)   <span class="comment">#监听套接字, 最多允许一个连接</span></span><br><span class="line">        listenSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, <span class="number">1</span>)   <span class="comment">#设置套接字</span></span><br><span class="line">        <span class="built_in">print</span> (<span class="string">&#x27;tcp waiting...&#x27;</span>)</span><br><span class="line"></span><br><span class="line">        <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">            <span class="built_in">print</span>(<span class="string">&quot;accepting.....&quot;</span>)</span><br><span class="line">            conn, addr = listenSocket.accept()   <span class="comment">#接收连接请求，返回收发数据的套接字对象和客户端地址</span></span><br><span class="line">            <span class="built_in">print</span>(addr, <span class="string">&quot;connected&quot;</span>)</span><br><span class="line"></span><br><span class="line">            <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">                data = conn.recv(<span class="number">1024</span>)   <span class="comment">#接收数据（1024字节大小）</span></span><br><span class="line">                <span class="keyword">if</span>(<span class="built_in">len</span>(data) == <span class="number">0</span>):   <span class="comment">#判断客户端是否断开连接</span></span><br><span class="line">                    <span class="built_in">print</span>(<span class="string">&quot;close socket&quot;</span>)</span><br><span class="line">                    conn.close()   <span class="comment">#关闭套接字</span></span><br><span class="line">                    <span class="keyword">break</span></span><br><span class="line">    <span class="comment">#             print(data)</span></span><br><span class="line">                code_utf8 = <span class="built_in">bytes</span>.decode(data)</span><br><span class="line">                <span class="built_in">print</span>(code_utf8)</span><br><span class="line">                ret = conn.send(data)   <span class="comment">#发送数据</span></span><br><span class="line">                <span class="keyword">if</span> code_utf8 == <span class="string">&quot;led1 open&quot;</span>:</span><br><span class="line">                    B.value(<span class="number">0</span>)</span><br><span class="line">                <span class="keyword">if</span> code_utf8 == <span class="string">&quot;led2 open&quot;</span>:</span><br><span class="line">                    C.value(<span class="number">0</span>)</span><br><span class="line">                <span class="keyword">if</span> code_utf8 == <span class="string">&quot;led1 down&quot;</span>:</span><br><span class="line">                    B.value(<span class="number">1</span>)</span><br><span class="line">                <span class="keyword">if</span> code_utf8 == <span class="string">&quot;led2 down&quot;</span>:</span><br><span class="line">                    C.value(<span class="number">1</span>)</span><br><span class="line"></span><br><span class="line">    <span class="keyword">except</span>:</span><br><span class="line">        <span class="keyword">if</span>(listenSocket):   <span class="comment">#判断套接字是否为空</span></span><br><span class="line">            listenSocket.close()   <span class="comment">#关闭套接字</span></span><br><span class="line"></span><br><span class="line">wifi_connect()</span><br></pre></td></tr></table></figure><h3 id="pc-端"><a class="markdownIt-Anchor" href="#pc-端"></a> PC 端</h3><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># -*- coding: UTF-8 -*-</span></span><br><span class="line"><span class="comment"># PC TCP Client</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">import</span> socket               <span class="comment"># 导入 socket 模块</span></span><br><span class="line"></span><br><span class="line">s = socket.socket()         <span class="comment"># 创建 socket 对象</span></span><br><span class="line">host = <span class="string">&#x27;192.168.2.231&#x27;</span>      <span class="comment"># esp32 ip</span></span><br><span class="line">port = <span class="number">10000</span>                <span class="comment"># 设置端口号</span></span><br><span class="line"></span><br><span class="line">s.connect((host, port))</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> __name__ == <span class="string">&#x27;__main__&#x27;</span>:</span><br><span class="line">    <span class="keyword">while</span> <span class="literal">True</span>:</span><br><span class="line">        msg = raw_input(<span class="string">&#x27;&gt;&gt;&gt; &#x27;</span>)</span><br><span class="line">        s.send(msg)</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP32" scheme="https://blog.findingx.cc/tags/ESP32/"/>
    
    <category term="机器之魂魄" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E9%AD%82%E9%AD%84/"/>
    
  </entry>
  
  <entry>
    <title>STM32开发环境搭建</title>
    <link href="https://blog.findingx.cc/2020/11/25/133600/"/>
    <id>https://blog.findingx.cc/2020/11/25/133600/</id>
    <published>2020-11-25T05:36:00.000Z</published>
    <updated>2025-07-11T01:38:06.141Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="准备工作"><a class="markdownIt-Anchor" href="#准备工作"></a> 准备工作</h2><p><a target="_blank" rel="noopener" href="https://www.st.com/en/development-tools/stm32cubeide.html">Integrated Development Environment for STM32</a></p><p>汉化和安装主题请参考下面的链接<br /><a target="_blank" rel="noopener" href="https://blog.csdn.net/wct3344142/article/details/104142863">https://blog.csdn.net/wct3344142/article/details/104142863</a></p><p>我使用的网址是</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/R0.18.1/2019-12/</span><br></pre></td></tr></table></figure><p>选项和上面的链接里的不一样<br /><a target="_blank" rel="noopener" href="https://hp-l.gitee.io/2020/11/25/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/stm32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE%E6%B1%89%E5%8C%96.png">thonny_download.png</a></p><h2 id="新建工程"><a class="markdownIt-Anchor" href="#新建工程"></a> 新建工程</h2><p>流程如图(点开查看大图)</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project.png" alt="IDE_new_project" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project_1.png" alt="IDE_new_project_1" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project_2.png" alt="IDE_new_project_2" /></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project_3.png" alt="IDE_new_project_3" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project_4.png" alt="IDE_new_project_4" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project_5.png" alt="IDE_new_project_5" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/IDE_new_project_6.png" alt="IDE_new_project_6" /></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="工具" scheme="https://blog.findingx.cc/categories/%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="STM32" scheme="https://blog.findingx.cc/tags/STM32/"/>
    
    <category term="CUBEIDE" scheme="https://blog.findingx.cc/tags/CUBEIDE/"/>
    
  </entry>
  
  <entry>
    <title>搭建Arduino_ESP2866环境</title>
    <link href="https://blog.findingx.cc/2020/11/21/080345/"/>
    <id>https://blog.findingx.cc/2020/11/21/080345/</id>
    <published>2020-11-21T00:03:45.000Z</published>
    <updated>2025-07-11T01:38:06.149Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="下载-arduino-ide"><a class="markdownIt-Anchor" href="#下载-arduino-ide"></a> 下载 Arduino IDE</h2><ul><li><p><a target="_blank" rel="noopener" href="https://www.arduino.cc/">Arduino 官网</a></p></li><li><p><a target="_blank" rel="noopener" href="https://downloads.arduino.cc/arduino-1.8.13-windows.zip">Arduino IDE 1.8.13</a></p></li></ul><p>下载完成后打开 arduino.exe<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%90%AD%E5%BB%BAArduino-ESP2866%E7%8E%AF%E5%A2%83/%E6%89%93%E5%BC%80arduino_IDE.png" alt="打开arduino_IDE.png" /></p><h2 id="添加-json-文件"><a class="markdownIt-Anchor" href="#添加-json-文件"></a> 添加 json 文件</h2><p>打开首选项<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%90%AD%E5%BB%BAArduino-ESP2866%E7%8E%AF%E5%A2%83/%E9%A6%96%E9%80%89%E9%A1%B9.png" alt="首选项.png" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%90%AD%E5%BB%BAArduino-ESP2866%E7%8E%AF%E5%A2%83/%E7%AE%A1%E7%90%86%E5%99%A8%E7%BD%91%E5%9D%80.png" alt="管理器网址.png" /><br />在开发板管理器网址填入</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://arduino.esp8266.com/stable/package_esp8266com_index.json</span><br></pre></td></tr></table></figure><p>或者</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">http://wechat.doit.am/package_esp8266com_index.json</span><br></pre></td></tr></table></figure><p>在<a target="_blank" rel="noopener" href="https://github.com/esp8266/Arduino">GitHub 上的项目</a>里有最新的版本，但是需要科学上网所以选择第二个</p><h2 id="添加-esp8266-开发板"><a class="markdownIt-Anchor" href="#添加-esp8266-开发板"></a> 添加 ESP8266 开发板</h2><p>搜索栏键入 8266<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%90%AD%E5%BB%BAArduino-ESP2866%E7%8E%AF%E5%A2%83/%E6%B7%BB%E5%8A%A0%E5%BC%80%E5%8F%91%E6%9D%BF.png" alt="添加开发板.png" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%90%AD%E5%BB%BAArduino-ESP2866%E7%8E%AF%E5%A2%83/%E6%9F%A5%E6%89%BE%E5%BC%80%E5%8F%91%E6%9D%BF.png" alt="查找开发板.png" /><br />如果出现下载失败可以从这里下载</p><ul><li><p>如果安装过其他版本的 esp8266sdk，请先删除，再使用本安装包。</p></li><li><p>解压完成后，再打开 Arduino IDE，即可在 菜单栏&gt;工具&gt;开发板 中找到你使用的 esp8266 开发板。</p></li></ul><p>来自 Arduino 中文社区的大佬</p><ul><li><a target="_blank" rel="noopener" href="https://share.weiyun.com/5CGEKJO">https://share.weiyun.com/5CGEKJO</a></li></ul><p>安装完成后重启 Arduino IDE 就会有显示了<br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%90%AD%E5%BB%BAArduino-ESP2866%E7%8E%AF%E5%A2%83/END.png" alt="END.png" /></p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="C++" scheme="https://blog.findingx.cc/tags/C/"/>
    
    <category term="Arduino" scheme="https://blog.findingx.cc/tags/Arduino/"/>
    
  </entry>
  
  <entry>
    <title>手机定时切换壁纸</title>
    <link href="https://blog.findingx.cc/2020/11/15/124740/"/>
    <id>https://blog.findingx.cc/2020/11/15/124740/</id>
    <published>2020-11-15T04:47:40.000Z</published>
    <updated>2025-07-11T01:38:06.149Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="准备"><a class="markdownIt-Anchor" href="#准备"></a> 准备</h2><ol><li><p>手机安装 termuxAPP 和 termux_API (这里给出参考博客链接)</p><ul><li><p><a target="_blank" rel="noopener" href="https://www.sqlsec.com/2018/05/termux.html">国光的 Termux 高级终端安装使用配置教程</a></p></li><li><p><a target="_blank" rel="noopener" href="https://www.sqlsec.com/2018/05/termux.html#toc-heading-3">跳转下载链接</a></p></li><li><p><a target="_blank" rel="noopener" href="https://www.sqlsec.com/2018/05/termux.html#toc-heading-167">API 下载链接</a></p></li></ul></li><li><p>完成基础的安装</p></li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">pkg install termux-api  <span class="comment">#termux-API</span></span><br><span class="line">pkg install cronie      <span class="comment">#linux 定时软件</span></span><br></pre></td></tr></table></figure><h2 id="编辑定时运行的-shell-脚本"><a class="markdownIt-Anchor" href="#编辑定时运行的-shell-脚本"></a> 编辑定时运行的 shell 脚本</h2><p>编辑 <a target="_blank" rel="noopener" href="http://bizhi.sh">bizhi.sh</a> 文件</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/bin/bash</span></span><br><span class="line"></span><br><span class="line">termux-wallpaper -f ./壁纸所在目录/$((RANDOM%<span class="number">152</span>+<span class="number">1</span>)).jpg</span><br><span class="line"></span><br><span class="line"><span class="comment"># $((RANDOM%152+1))是用来随机取数的</span></span><br><span class="line"><span class="comment"># $((RANDOM%152+1))可以换成文件名</span></span><br></pre></td></tr></table></figure><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%89%8B%E6%9C%BA%E5%AE%9A%E6%97%B6%E5%88%87%E6%8D%A2%E5%A3%81%E7%BA%B8/https://i.loli.net/2020/11/15/DxGUVOYLvrMKJc7.png" alt="我的文件命名格式" /></p><h2 id="编辑定时任务文件"><a class="markdownIt-Anchor" href="#编辑定时任务文件"></a> 编辑定时任务文件</h2><p>终端输入</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">crontab -e</span><br></pre></td></tr></table></figure><p>再输入</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"># 每隔五分钟执行一次bizhi.sh文件</span><br><span class="line">*/5 * * * * ./文件路径/bizhi.sh</span><br></pre></td></tr></table></figure><p>应为 Termux 默认不启动 crontab，所以进入 Termux 要开启一下</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">crond start <span class="comment">#开启</span></span><br></pre></td></tr></table></figure><p>在手机设置中，termux 和 termux-API 都开启手动管理</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/%E6%89%8B%E6%9C%BA%E5%AE%9A%E6%97%B6%E5%88%87%E6%8D%A2%E5%A3%81%E7%BA%B8/2.jpg" alt="手机管理页面" /></p><iframe height=520 width=776   src="//player.bilibili.com/player.html?aid=458590572&bvid=BV1Y5411n7tx&cid=280885187&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="max-width: 100%, text-align: center" > </iframe>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="折腾" scheme="https://blog.findingx.cc/categories/%E6%8A%98%E8%85%BE/"/>
    
    
    <category term="termux" scheme="https://blog.findingx.cc/tags/termux/"/>
    
  </entry>
  
  <entry>
    <title>Micropython联网同步时间</title>
    <link href="https://blog.findingx.cc/2020/11/09/074114/"/>
    <id>https://blog.findingx.cc/2020/11/09/074114/</id>
    <published>2020-11-08T23:41:14.000Z</published>
    <updated>2025-07-11T01:38:06.145Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><p>ntp 服务器可以自己选择，可以使用爬虫爬去时间也可以用 NTP 服务器同步，将 wifi_connect()函数最后一行 get_time_py 换成 get_time()即可<br />直接上程序</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># This file is executed on every boot (including wake-boot from deepsleep)</span></span><br><span class="line"><span class="comment">#import esp</span></span><br><span class="line"><span class="comment">#esp.osdebug(None)</span></span><br><span class="line"><span class="comment">#import webrepl</span></span><br><span class="line"><span class="comment">#webrepl.start()</span></span><br><span class="line"></span><br><span class="line"><span class="comment">#使用ESP32上的MicroPython連接Wi-Fi網絡</span></span><br><span class="line"><span class="keyword">from</span> machine <span class="keyword">import</span> Pin,RTC</span><br><span class="line"><span class="keyword">import</span> network    <span class="comment">#網絡模塊</span></span><br><span class="line"><span class="keyword">import</span> time       <span class="comment">#計時器模塊</span></span><br><span class="line"><span class="keyword">import</span> ntptime    <span class="comment">#ntptime網絡時間協議模塊</span></span><br><span class="line"></span><br><span class="line"><span class="comment">#自动联网</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">wifi_connect</span>():</span><br><span class="line">  wifi_led=Pin(<span class="number">18</span>,Pin.OUT)             <span class="comment"># 初始化LED燈，可自定義</span></span><br><span class="line">  wlan = network.WLAN(network.STA_IF)  <span class="comment">#</span></span><br><span class="line">  wlan.active(<span class="literal">True</span>)                    <span class="comment"># 激活網絡接口</span></span><br><span class="line">  start_time=time.time()               <span class="comment"># 記錄開始時間</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> <span class="keyword">not</span> wlan.isconnected():              <span class="comment"># 如若聯網失敗</span></span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;当前无线未联网，正在连接中....&quot;</span>)</span><br><span class="line">    <span class="comment"># wlan.connect(&quot;此处改为你的无线网名称&quot;, &quot;无线网密码&quot;)</span></span><br><span class="line">    wlan.connect(<span class="string">&#x27;XXXXXXXX&#x27;</span>,<span class="string">&#x27;XXXXXXXX&#x27;</span>)   <span class="comment"># 無綫網SSID、密碼</span></span><br><span class="line">    <span class="keyword">while</span> <span class="keyword">not</span> wlan.isconnected():         <span class="comment"># 如若還未連接成功，LED則會以閃爍的方式提示未連接到WIFI</span></span><br><span class="line">      wifi_led.value(<span class="number">0</span>)</span><br><span class="line">      time.sleep_ms(<span class="number">1000</span>)       <span class="comment"># 延時函數1000毫秒</span></span><br><span class="line">      wifi_led.value(<span class="number">1</span>)</span><br><span class="line">      time.sleep_ms(<span class="number">1000</span>)</span><br><span class="line">      <span class="built_in">print</span>(<span class="string">&quot;正在尝试连接到wifi....&quot;</span>)</span><br><span class="line">      <span class="built_in">print</span>(time.time())</span><br><span class="line"></span><br><span class="line">      <span class="keyword">if</span> time.time()-start_time&gt;<span class="number">15</span>:       <span class="comment"># 如若超過15秒還未連接則退出鏈接</span></span><br><span class="line">        <span class="built_in">print</span>(<span class="string">&quot;連接失敗!!!請檢查無綫網名稱和密碼是否正確...&quot;</span>)</span><br><span class="line">        <span class="keyword">break</span></span><br><span class="line"></span><br><span class="line">  <span class="keyword">if</span> wlan.isconnected():                  <span class="comment"># 如若連接成功</span></span><br><span class="line">    wifi_led.value(<span class="number">1</span>)                     <span class="comment"># LED燈常亮</span></span><br><span class="line">    IP_info=wlan.ifconfig()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;已連接WIFI，信息如下：&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;IP地址：&quot;</span>+IP_info[<span class="number">0</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;子網掩碼：&quot;</span>+IP_info[<span class="number">1</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;網関：&quot;</span>+IP_info[<span class="number">2</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;DNS：&quot;</span>+IP_info[<span class="number">3</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line">    get_time_py()</span><br><span class="line"></span><br><span class="line"><span class="comment">#同步時間</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">get_time</span>():</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;同步時間&quot;</span>)</span><br><span class="line">    <span class="built_in">print</span>()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;同步前本地時間：%s&quot;</span> %<span class="built_in">str</span>(time.localtime()))</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##&quot;</span>)</span><br><span class="line">    ntptime.NTP_DELTA = <span class="number">3155644800</span>    <span class="comment"># 設置  UTC+8偏移時間（秒），不不設置就是UTC0</span></span><br><span class="line"><span class="comment">#     ntptime.host = &#x27;pool.ntp.org&#x27;  # 可選ntp服務器為阿里雲服務器，默認是&quot;pool.ntp.org&quot;</span></span><br><span class="line">    ntptime.host = <span class="string">&#x27;edu.ntp.org.cn&#x27;</span></span><br><span class="line"><span class="comment">#     ntptime.host = &#x27;210.72.145.44&#x27; # 國家授時中心服務器IP地址</span></span><br><span class="line"><span class="comment">#     ntptime.host = &#x27;ntp1.aliyun.com&#x27;</span></span><br><span class="line"><span class="comment">#     ntptime.host = &#x27;cn.ntp.org.cn&#x27;</span></span><br><span class="line">    ntptime.settime()                 <span class="comment"># 修改設備時間</span></span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;同步后本地時間：%s&quot;</span> %<span class="built_in">str</span>(time.localtime()))</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&quot;##################################################&quot;</span>)</span><br><span class="line">    rtc = RTC()</span><br><span class="line">    <span class="built_in">print</span>(rtc.datetime())</span><br><span class="line"></span><br><span class="line"><span class="comment"># 爬取時間</span></span><br><span class="line"><span class="keyword">def</span> <span class="title function_">get_time_py</span>():</span><br><span class="line">    time_api_url = <span class="string">&quot;&quot;&quot;http://quan.suning.com/getSysTime.do&quot;&quot;&quot;</span></span><br><span class="line">    r = request.get(time_api_url)</span><br><span class="line">    content = r.text</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&#x27;爬取時間...&#x27;</span>)</span><br><span class="line">    time = re.search(</span><br><span class="line">        <span class="string">r&#x27;&#123;&quot;sysTime2&quot;:&quot;(.*?)-(.*?)-(.*?) (.*?):(.*?):(.*?)&quot;,&quot;sysTime1&quot;:&quot;&#x27;</span>, content</span><br><span class="line">        )</span><br><span class="line">    <span class="built_in">print</span>(r.text[<span class="number">13</span>:<span class="number">29</span>])</span><br><span class="line">    <span class="built_in">print</span>(<span class="built_in">int</span>(r.text[<span class="number">27</span>:<span class="number">29</span>]))</span><br><span class="line">    <span class="built_in">print</span>(<span class="built_in">int</span>(r.text[<span class="number">23</span>:<span class="number">26</span>]))</span><br><span class="line">    mm = <span class="built_in">int</span>(r.text[<span class="number">27</span>:<span class="number">29</span>])<span class="comment"># 分鐘</span></span><br><span class="line">    hh = <span class="built_in">int</span>(r.text[<span class="number">23</span>:<span class="number">26</span>])<span class="comment"># 小時</span></span><br><span class="line">    rtc = RTC()</span><br><span class="line">    time_date = rtc.datetime()</span><br><span class="line">    <span class="built_in">print</span>(<span class="string">&#x27;重置時間！&#x27;</span>)</span><br><span class="line">    rtc.datetime((time_date[<span class="number">0</span>], time_date[<span class="number">1</span>], time_date[<span class="number">2</span>], time_date[<span class="number">3</span>], hh, mm, time_date[<span class="number">6</span>], time_date[<span class="number">7</span>]))</span><br><span class="line">    rtc.datetime()</span><br><span class="line"></span><br><span class="line"><span class="comment">#開始執行聯網</span></span><br><span class="line">wifi_connect()</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP32" scheme="https://blog.findingx.cc/tags/ESP32/"/>
    
    <category term="micropython" scheme="https://blog.findingx.cc/tags/micropython/"/>
    
  </entry>
  
  <entry>
    <title>ESP32_micropython固件烧录</title>
    <link href="https://blog.findingx.cc/2020/11/05/094023/"/>
    <id>https://blog.findingx.cc/2020/11/05/094023/</id>
    <published>2020-11-05T01:40:23.000Z</published>
    <updated>2025-07-11T01:38:06.138Z</updated>
    
    <content type="html"><![CDATA[<link rel="stylesheet" class="aplayer-secondary-style-marker" href="\assets\css\APlayer.min.css"><script src="\assets\js\APlayer.min.js" class="aplayer-secondary-script-marker"></script><h2 id="esp32_micropython-固件烧录"><a class="markdownIt-Anchor" href="#esp32_micropython-固件烧录"></a> ESP32_micropython 固件烧录</h2><h3 id="烧录准备"><a class="markdownIt-Anchor" href="#烧录准备"></a> 烧录准备</h3><p>1.micropython IDE：<a target="_blank" rel="noopener" href="https://thonny.org/">Thonny</a></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/thonny_download.png" alt="thonny_download.png" /></p><p>2.ESP32 的 micropython 固件：<a target="_blank" rel="noopener" href="https://www.micropython.org/download/esp32/">戳我进下载页面</a>，micropython 还支持其他芯片<a target="_blank" rel="noopener" href="https://www.micropython.org/download/">link</a>，下载页面有很多固件选择，由于我的是不带 SPIRAM 的，因此我选择了第一个。</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/micropython%E5%9B%BA%E4%BB%B6.png" alt="micropython固件" /></p><p>3.烧录工具：<br />这里提供两种，esptool 在 GitHub 上有教程，这里就不细讲。</p><ul><li><p>esptool：<a target="_blank" rel="noopener" href="https://github.com/espressif/esptool">github link</a></p></li><li><p>Thonny: micropython IDE</p></li><li><p>Flash 下载工具：<a target="_blank" rel="noopener" href="https://www.espressif.com/support/download/other-tools">link</a></p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/%E7%83%A7%E5%BD%95%E5%B7%A5%E5%85%B7.png" alt="烧录工具.png" /></p></li></ul><p>4.ESP32 模组： 打开淘宝…</p><h3 id="烧录过程"><a class="markdownIt-Anchor" href="#烧录过程"></a> 烧录过程</h3><h4 id="使用-thonny-烧录"><a class="markdownIt-Anchor" href="#使用-thonny-烧录"></a> 使用 Thonny 烧录</h4><p>点击工具栏运行，选择“选择解释器…”</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/Thonny_%E7%83%A7%E5%BD%95%E5%9B%BA%E4%BB%B6.png" alt="Thonny_烧录固件.png" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/Thonny_%E7%83%A7%E5%BD%95%E5%9B%BA%E4%BB%B61.png" alt="Thonny_烧录固件1.png" /></p><p>选择我们在 Micropython 官网下载的固件后点击 install<br />这是从 ESP 官网上下载的启动模式方法：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F.png" alt="启动模式.png" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F1.png" alt="启动模式1.png" /></p><p>即GPIO0和GPIO2全部接地，同时按下复位按键，保持1毫秒再断开GPIO0断开接地（因为 GPIO0 默认上拉），便开始下载。</p><h4 id="使用-flash-下载工具"><a class="markdownIt-Anchor" href="#使用-flash-下载工具"></a> 使用 Flash 下载工具</h4><p>从官网下载了工具后双击打开，等待几秒后，点击 ESP32downloadTools，选择我们在 Micropython 官网下载的固件后点击 START</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/flash_download.png" alt="flash_download.png" /><br /><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/flash_download1.png" alt="flash_download1.png" /></p><p>再按照上文中的启动方法启动即可下载。</p><p>成功之后 shell 会出现下图：</p><p><img src="https://hub.gitmirror.com/raw.githubusercontent.com/HP-L/blog-main-site-images/refs/heads/master/article/previous/ESP32-micropython%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%BD%95/SHELL.png" alt="SHELL.png" /></p><p>像 python 一样可以实时输入，ESP32 可以直接看到 LED 灯被点亮</p>]]></content>
    
    
      
      
        
        
    <summary type="html"></summary>
        
      
    
    
    
    <category term="应用" scheme="https://blog.findingx.cc/categories/%E5%BA%94%E7%94%A8/"/>
    
    
    <category term="ESP32" scheme="https://blog.findingx.cc/tags/ESP32/"/>
    
    <category term="micropython" scheme="https://blog.findingx.cc/tags/micropython/"/>
    
    <category term="机器之魂魄" scheme="https://blog.findingx.cc/tags/%E6%9C%BA%E5%99%A8%E4%B9%8B%E9%AD%82%E9%AD%84/"/>
    
  </entry>
  
  
<follow_challenge>
    <feedId>163165746727435264</feedId>
    <userId>73742188182712320</userId>
</follow_challenge>

</feed>
