<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>kian</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://xiabb.cn/</id>
  <link href="https://xiabb.cn/" rel="alternate"/>
  <link href="https://xiabb.cn/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, kian</rights>
  <subtitle>
    <![CDATA[Embedded Firmware & Electronics]]>
  </subtitle>
  <title>Xiabb Lab</title>
  <updated>2026-09-10T07:30:00.000Z</updated>
  <entry>
    <author>
      <name>kian</name>
    </author>
    <category term="嵌入式固件" scheme="https://xiabb.cn/categories/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%9B%BA%E4%BB%B6/"/>
    <category term="STM32" scheme="https://xiabb.cn/tags/STM32/"/>
    <category term="GPIO" scheme="https://xiabb.cn/tags/GPIO/"/>
    <content>
      <![CDATA[<p>本文是排版示例，兼作以后写文章的模板：展示代码块、表格、列表、引用等全部样式。</p><span id="more"></span><h2 id="时钟先行"><a href="#时钟先行" class="headerlink" title="时钟先行"></a>时钟先行</h2><p>任何外设初始化之前，先开时钟。GPIO 挂在 RCC 的 AHB1&#x2F;AHB2 上（F4 系列为 AHB1）：</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></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 使能 GPIOA 与 GPIOC 时钟（STM32F4 HAL） */</span></span><br><span class="line">__HAL_RCC_GPIOA_CLK_ENABLE();</span><br><span class="line">__HAL_RCC_GPIOC_CLK_ENABLE();</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 配置 PC13 为推挽输出（板载 LED 常见位置） */</span></span><br><span class="line">GPIO_InitTypeDef gpio = &#123;</span><br><span class="line">    .Pin   = GPIO_PIN_13,</span><br><span class="line">    .Mode  = GPIO_MODE_OUTPUT_PP,</span><br><span class="line">    .Pull  = GPIO_NOPULL,</span><br><span class="line">    .Speed = GPIO_SPEED_FREQ_LOW,</span><br><span class="line">&#125;;</span><br><span class="line">HAL_GPIO_Init(GPIOC, &amp;gpio);</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 点灯（板载 LED 通常低电平点亮） */</span></span><br><span class="line">HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);</span><br></pre></td></tr></table></figure><h2 id="模式速查表"><a href="#模式速查表" class="headerlink" title="模式速查表"></a>模式速查表</h2><p><img src="/images/gpio-modes.png" alt="GPIO 模式速查示意"></p><table><thead><tr><th>模式</th><th>缩写</th><th>典型用途</th><th>注意事项</th></tr></thead><tbody><tr><td>推挽输出</td><td><code>OUTPUT_PP</code></td><td>LED、片选信号</td><td>有真实高低电平驱动能力</td></tr><tr><td>开漏输出</td><td><code>OUTPUT_OD</code></td><td>I2C、电平转换</td><td>需外接上拉电阻</td></tr><tr><td>浮空输入</td><td><code>INPUT</code></td><td>按键（外部上下拉时）</td><td>悬空电平不定，勿长用</td></tr><tr><td>上拉输入</td><td><code>INPUT_PULLUP</code></td><td>按键（省外部电阻）</td><td>内部上拉约 40kΩ</td></tr><tr><td>模拟功能</td><td><code>ANALOG</code></td><td>ADC、DAC</td><td>最省电，数字缓冲器断开</td></tr></tbody></table><h2 id="调试检查清单"><a href="#调试检查清单" class="headerlink" title="调试检查清单"></a>调试检查清单</h2><ol><li>时钟开了没有（最高频翻车点）</li><li>引脚有没有被复用为其他外设（查 <code>Alternate function</code> 表）</li><li>上下拉方向与外部电路是否冲突</li><li>输出速度是否匹配信号频率（LOW &#x2F; MEDIUM &#x2F; HIGH &#x2F; VERY_HIGH）</li></ol><blockquote><p><strong>经验法则</strong>：引脚行为诡异时，先读一遍 <code>GPIOx-&gt;MODER</code> 与 <code>GPIOx-&gt;AFR</code> 寄存器实际值，别相信配置代码”应该”生效。</p></blockquote><p>相关内容可参考本站后续的 <a href="!--swig%EF%BF%BC1--">中断与 DMA 笔记</a>（占位链接，正式文章发布后替换）。</p><p><strong>加粗</strong>、<em>斜体</em>、<code>行内代码</code>、<a href="https://www.st.com/">外部链接</a>——都在这一段里了。</p>]]>
    </content>
    <id>https://xiabb.cn/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%9B%BA%E4%BB%B6/stm32-gpio-notes/</id>
    <link href="https://xiabb.cn/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%9B%BA%E4%BB%B6/stm32-gpio-notes/"/>
    <published>2026-09-10T07:30:00.000Z</published>
    <summary>
      <![CDATA[<p>本文是排版示例，兼作以后写文章的模板：展示代码块、表格、列表、引用等全部样式。</p>]]>
    </summary>
    <title>STM32 GPIO 初始化要点速查</title>
    <updated>2026-09-10T07:30:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>kian</name>
    </author>
    <category term="杂谈" scheme="https://xiabb.cn/categories/%E6%9D%82%E8%B0%88/"/>
    <category term="建站" scheme="https://xiabb.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    <content>
      <![CDATA[<p>实验室开张了。</p><p>这里是我的个人技术博客 <strong>Xiabb Lab</strong>，记录嵌入式固件与电子技术方面的实践笔记——MCU 外设驱动、电机控制、RTOS 应用、PCB 调试，以及日常踩坑。</p><span id="more"></span><h2 id="为什么建这个站"><a href="#为什么建这个站" class="headerlink" title="为什么建这个站"></a>为什么建这个站</h2><p>知识只有写下来才算真正掌握。以前的学习笔记散落在各处：本地 Markdown、代码仓库的 README、论坛回帖——查找困难，也无法回顾。建一个自己的站点，把零散的知识整理成体系，顺便督促自己持续输出。</p><p>博客本身也当一次全栈练手：从 Hexo 静态生成、nginx 部署、HTTPS 证书到域名解析，全套自己搭一遍，也算嵌入式工程师的”副业技能树”。</p><h2 id="内容方向"><a href="#内容方向" class="headerlink" title="内容方向"></a>内容方向</h2><ul><li><strong>嵌入式固件</strong>：STM32 &#x2F; GD32 &#x2F; RT-Thread，外设驱动与性能优化</li><li><strong>电机控制</strong>：FOC、电流环调试、编码器</li><li><strong>硬件调试</strong>：示波器&#x2F;逻辑分析仪使用、PCB 问题定位</li></ul><h2 id="关于本站"><a href="#关于本站" class="headerlink" title="关于本站"></a>关于本站</h2><p>本站由 <a href="https://hexo.io/">Hexo</a> 静态生成，托管在自己的服务器上。如果你也在做类似的技术方向，欢迎交流。</p><blockquote><p>万丈高楼平地起，先跑通一个 GPIO 再说。</p></blockquote>]]>
    </content>
    <id>https://xiabb.cn/%E6%9D%82%E8%B0%88/hello-xiabb-lab/</id>
    <link href="https://xiabb.cn/%E6%9D%82%E8%B0%88/hello-xiabb-lab/"/>
    <published>2026-09-10T07:00:00.000Z</published>
    <summary>
      <![CDATA[<p>实验室开张了。</p>
<p>这里是我的个人技术博客 <strong>Xiabb Lab</strong>，记录嵌入式固件与电子技术方面的实践笔记——MCU 外设驱动、电机控制、RTOS 应用、PCB 调试，以及日常踩坑。</p>]]>
    </summary>
    <title>Xiabb Lab 开张</title>
    <updated>2026-09-10T07:00:00.000Z</updated>
  </entry>
</feed>
