<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.vlen.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nichen</id>
	<title>VLEN - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vlen.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nichen"/>
	<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Nichen"/>
	<updated>2026-04-05T16:46:13Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=9</id>
		<title>0.96inch OLED A</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=9"/>
		<updated>2025-10-02T09:01:06Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
= 0.96inch OLED (A) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  https://www.waveshare.com/w/upload/5/5d/0.96inch-OLED-A_l.jpg&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 型号 ：0.96inch OLED (A)（横/弯脚排针）&lt;br /&gt;
; 对应版本 ：[https://www.waveshare.com/wiki/0.96inch_OLED_(B) 0.96inch OLED (B)]（竖/直脚排针）&lt;br /&gt;
; 驱动芯片 ：SSD1306&lt;br /&gt;
; 分辨率 ：128×64&lt;br /&gt;
; 接口 ：3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
; 默认模式 ：4-wire SPI（出厂默认）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 产品简介 ==&lt;br /&gt;
0.96 英寸 OLED 显示模块，内置 SSD1306 驱动，分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式，适配 Raspberry Pi、Arduino、STM32、ESP32、Pico 等主控平台。  &lt;br /&gt;
A 版为**横/弯脚排针**，B 版为**竖/直脚排针**；电气功能一致，仅排针方向不同。&lt;br /&gt;
&lt;br /&gt;
== 产品参数 ==&lt;br /&gt;
* 供电电压：3.3V / 5V&lt;br /&gt;
* 通信接口：3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
* 分辨率：128×64&lt;br /&gt;
* 显示尺寸：0.96inch&lt;br /&gt;
* 显示颜色：上黄下蓝（1/4 黄 + 3/4 蓝）&lt;br /&gt;
* 适配平台：Raspberry Pi / Arduino / STM32 / ESP32 / Pico&lt;br /&gt;
&lt;br /&gt;
== 硬件配置与拨阻 ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  https://www.waveshare.com/w/upload/9/93/0.96inch_OLED_Hardware.png&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 模式 !! BS1/BS0&lt;br /&gt;
|-&lt;br /&gt;
| 3-wire SPI || 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
| 4-wire SPI（默认） || 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
| I²C || 1 / 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 管脚定义（A 版：横/弯脚排针） ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 引脚 !! 名称 !! SPI 功能 !! I²C 功能&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VCC || 电源正（3.3V/5V） || 电源正（3.3V/5V）&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GND || 电源地 || 电源地&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DIN/SDA || SPI MOSI || I²C 数据&lt;br /&gt;
|-&lt;br /&gt;
| 4 || CLK/SCL || SPI 时钟 || I²C 时钟&lt;br /&gt;
|-&lt;br /&gt;
| 5 || CS || 片选 || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DC || 数据/命令选择 || （I²C 时可作地址位，接 GND=0x3C）&lt;br /&gt;
|-&lt;br /&gt;
| 7 || RST || 复位 || 复位&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 接线示例（Raspberry Pi，4-wire SPI） ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  https://www.waveshare.com/w/upload/f/fe/0.96inch_OLED_rpi.png&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SPI&lt;br /&gt;
: MOSI→DIN、SCLK→CLK、CE0→CS、GPIO25→DC、GPIO13→RES、VCC→3.3V、GND→GND&lt;br /&gt;
; I²C&lt;br /&gt;
: SDA→SDA、SCL→SCL、VCC→3.3V、GND→GND（DC 脚接地则地址 0x3C）&lt;br /&gt;
&lt;br /&gt;
== 示例代码 ==&lt;br /&gt;
=== Arduino/ESP32（U8g2） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;U8g2lib.h&amp;gt;&lt;br /&gt;
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, SCK, MOSI, CS, DC, RST);&lt;br /&gt;
void setup(){ u8g2.begin(); }&lt;br /&gt;
void loop(){&lt;br /&gt;
  u8g2.clearBuffer();&lt;br /&gt;
  u8g2.setFont(u8g2_font_ncenB08_tr);&lt;br /&gt;
  u8g2.drawStr(0,12,&amp;quot;Hello OLED!&amp;quot;);&lt;br /&gt;
  u8g2.sendBuffer();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi（Python：luma.oled，I²C） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from luma.core.interface.serial import i2c&lt;br /&gt;
from luma.oled.device import ssd1306&lt;br /&gt;
from PIL import Image, ImageDraw&lt;br /&gt;
&lt;br /&gt;
device = ssd1306(i2c(port=1, address=0x3C))&lt;br /&gt;
image = Image.new(&amp;quot;1&amp;quot;, device.size)&lt;br /&gt;
draw = ImageDraw.Draw(image)&lt;br /&gt;
draw.text((0,0), &amp;quot;Hello OLED!&amp;quot;, fill=255)&lt;br /&gt;
device.display(image)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 资料下载 ==&lt;br /&gt;
* [https://files.waveshare.com/upload/7/71/0.96inch-OLED-UserManual.pdf 用户手册（PDF）]&lt;br /&gt;
* [https://files.waveshare.com/upload/d/dc/0.96inch-OLED-Schematic.pdf 原理图（PDF）]&lt;br /&gt;
* [https://files.waveshare.com/upload/e/ec/SDD1306-30pin.pdf SSD1306 数据手册（PDF）]&lt;br /&gt;
&lt;br /&gt;
== 选型 ==&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (A)&#039;&#039;&#039;：横/弯脚排针&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (B)&#039;&#039;&#039;：竖/直脚排针&lt;br /&gt;
&lt;br /&gt;
== 常见问题 ==&lt;br /&gt;
; 上电不亮？&lt;br /&gt;
: OLED 无背光，需要初始化并刷屏后才会有显示。&lt;br /&gt;
:&lt;br /&gt;
; 有残影/烧屏风险吗？&lt;br /&gt;
: 长时间显示静态画面会产生残影，建议定期刷新或做屏保。&lt;br /&gt;
&lt;br /&gt;
== 修订记录 ==&lt;br /&gt;
* 2025-10-02：初版整理&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=8</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=8"/>
		<updated>2025-10-02T08:02:03Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​/* 首页 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;已安装MediaWiki。&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
请查阅[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 用户指导]以获取使用本wiki软件的信息。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 顶部横幅（高端蓝） ===== --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#0b67ff; color:#fff; padding:28px 20px; border-radius:12px; box-shadow:0 6px 18px rgba(0,0,0,.12); text-align:center; margin:0 0 18px 0;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;font-size:34px; font-weight:700; letter-spacing:.5px;&amp;quot;&amp;gt;欢迎来到我的知识库&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;font-size:16px; margin-top:6px; opacity:.95;&amp;quot;&amp;gt;项目文档 · 研发笔记 · 运维手册 · 经验沉淀&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 三列快速导航（用表格保证老版本兼容） ===== --&amp;gt;&lt;br /&gt;
== 🚀 快速入口 ==&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%; border-spacing:12px; border-collapse:separate;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;width:33%; background:#f8fafc; border:1px solid #e6ecf5; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:18px; margin-bottom:6px;&amp;quot;&amp;gt;[[项目总览|📂 项目总览]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px;&amp;quot;&amp;gt;里程碑 / 设计方案 / 进展追踪 / 归档&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;width:33%; background:#f8fafc; border:1px solid #e6ecf5; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:18px; margin-bottom:6px;&amp;quot;&amp;gt;[[开发文档|🛠️ 开发文档]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px;&amp;quot;&amp;gt;嵌入式 / 后端 / 前端 / 联调与调试&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;width:33%; background:#f8fafc; border:1px solid #e6ecf5; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:18px; margin-bottom:6px;&amp;quot;&amp;gt;[[使用说明|📖 使用说明]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px;&amp;quot;&amp;gt;产品手册 / SOP / 安装配置 / 故障排查&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;background:#f8fafc; border:1px solid #e6ecf5; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:18px; margin-bottom:6px;&amp;quot;&amp;gt;[[硬件资料|💡 硬件资料]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px;&amp;quot;&amp;gt;原理图 / PCB / 器件选型 / 调参笔记&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;background:#f8fafc; border:1px solid #e6ecf5; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:18px; margin-bottom:6px;&amp;quot;&amp;gt;[[软件工具|🧰 软件工具]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px;&amp;quot;&amp;gt;SDK / CLI / 调试脚本 / 常用下载&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;background:#f8fafc; border:1px solid #e6ecf5; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:18px; margin-bottom:6px;&amp;quot;&amp;gt;[[常见问题|❓ 常见问题（FAQ）]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px;&amp;quot;&amp;gt;高频问题 / 解决方案 / 最佳实践&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 精选专题（强调价值） ===== --&amp;gt;&lt;br /&gt;
== ✨ 精选专题 ==&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%; border-spacing:12px; border-collapse:separate;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;width:33%; background:#fff; border:1px solid #e9eef8; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:16px;&amp;quot;&amp;gt;[[ESP32-C3 开发笔记|ESP32-C3 开发笔记]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px; margin:6px 0 8px;&amp;quot;&amp;gt;FreeRTOS 任务、外设驱动、Mesh 与低功耗实践&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-size:12px; color:#6a778b;&amp;quot;&amp;gt;⭐ 持续更新 · 代码片段可复用&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;width:33%; background:#fff; border:1px solid #e9eef8; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:16px;&amp;quot;&amp;gt;[[STM32 学习文档|STM32 实战手册]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px; margin:6px 0 8px;&amp;quot;&amp;gt;HAL/DMA/中断调度、外设合集、CubeMX 配置范式&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-size:12px; color:#6a778b;&amp;quot;&amp;gt;📎 附示意图与调参表格&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;width:33%; background:#fff; border:1px solid #e9eef8; border-radius:12px; padding:14px; vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-weight:700; font-size:16px;&amp;quot;&amp;gt;[[水族智能设备方案|水族智能设备方案]]&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;color:#5b6472; font-size:13px; margin:6px 0 8px;&amp;quot;&amp;gt;传感器链路、灯泵控制、告警策略、App 交互规范&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div style=&amp;quot;font-size:12px; color:#6a778b;&amp;quot;&amp;gt;🔗 关联硬件/前端/运维文档&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 最近更新（带高亮边条） ===== --&amp;gt;&lt;br /&gt;
== 📰 最近更新 ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#ffffff; border:1px solid #e9eef8; border-left:4px solid #0b67ff; border-radius:8px; padding:8px 12px; margin:8px 0 14px 0;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;recentchanges limit=&amp;quot;12&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 常用资源（图书馆式） ===== --&amp;gt;&lt;br /&gt;
== 📦 资源与工具 ==&lt;br /&gt;
* [[下载专区|软件下载与驱动]] — 固件、USB 驱动、脚本与工具合集&lt;br /&gt;
* [[模板示例|模板与语法示例]] — 页面骨架、信息框、代码块规范&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Help:Contents MediaWiki 官方帮助] — 语法/模板/分类/文件上传&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 站点数据（增强权威感） ===== --&amp;gt;&lt;br /&gt;
== 📊 站点统计 ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#f8fafc; border:1px dashed #dbe3ef; padding:10px 12px; border-radius:10px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;display:inline-block; margin:4px 10px;&amp;quot;&amp;gt;📄 词条数：&amp;lt;b&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;display:inline-block; margin:4px 10px;&amp;quot;&amp;gt;✍️ 编辑数：&amp;lt;b&amp;gt;{{NUMBEROFEDITS}}&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;display:inline-block; margin:4px 10px;&amp;quot;&amp;gt;👥 用户数：&amp;lt;b&amp;gt;{{NUMBEROFUSERS}}&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span style=&amp;quot;display:inline-block; margin:4px 10px;&amp;quot;&amp;gt;🕒 今日：&amp;lt;b&amp;gt;{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===== 页脚横幅（品牌式收尾） ===== --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; margin-top:18px; padding:18px; background:#f1f4f9; border:1px solid #e6ecf5; border-radius:12px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;font-weight:700;&amp;quot;&amp;gt;记录 · 复用 · 传承&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;color:#5b6472; font-size:12px; margin-top:4px;&amp;quot;&amp;gt;本Wiki基于 &amp;lt;b&amp;gt;MediaWiki&amp;lt;/b&amp;gt; 构建，专注打造高质量工程知识库。&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=7</id>
		<title>0.96inch OLED A</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=7"/>
		<updated>2025-10-02T07:55:04Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
= 0.96inch OLED (A) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  https://www.waveshare.com/w/upload/5/5d/0.96inch-OLED-A_l.jpg&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 型号&lt;br /&gt;
: 0.96inch OLED (A)（横/弯脚排针）&lt;br /&gt;
; 对应版本&lt;br /&gt;
: [https://www.waveshare.com/wiki/0.96inch_OLED_(B) 0.96inch OLED (B)]（竖/直脚排针）&lt;br /&gt;
; 驱动芯片&lt;br /&gt;
: SSD1306&lt;br /&gt;
; 分辨率&lt;br /&gt;
: 128×64&lt;br /&gt;
; 接口&lt;br /&gt;
: 3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
; 默认模式&lt;br /&gt;
: 4-wire SPI（出厂默认）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 产品简介 ==&lt;br /&gt;
0.96 英寸 OLED 显示模块，内置 SSD1306 驱动，分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式，适配 Raspberry Pi、Arduino、STM32、ESP32、Pico 等主控平台。  &lt;br /&gt;
A 版为**横/弯脚排针**，B 版为**竖/直脚排针**；电气功能一致，仅排针方向不同。&lt;br /&gt;
&lt;br /&gt;
== 产品参数 ==&lt;br /&gt;
* 供电电压：3.3V / 5V&lt;br /&gt;
* 通信接口：3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
* 分辨率：128×64&lt;br /&gt;
* 显示尺寸：0.96inch&lt;br /&gt;
* 显示颜色：上黄下蓝（1/4 黄 + 3/4 蓝）&lt;br /&gt;
* 适配平台：Raspberry Pi / Arduino / STM32 / ESP32 / Pico&lt;br /&gt;
&lt;br /&gt;
== 硬件配置与拨阻 ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  https://www.waveshare.com/w/upload/9/93/0.96inch_OLED_Hardware.png&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 模式 !! BS1/BS0&lt;br /&gt;
|-&lt;br /&gt;
| 3-wire SPI || 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
| 4-wire SPI（默认） || 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
| I²C || 1 / 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 管脚定义（A 版：横/弯脚排针） ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 引脚 !! 名称 !! SPI 功能 !! I²C 功能&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VCC || 电源正（3.3V/5V） || 电源正（3.3V/5V）&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GND || 电源地 || 电源地&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DIN/SDA || SPI MOSI || I²C 数据&lt;br /&gt;
|-&lt;br /&gt;
| 4 || CLK/SCL || SPI 时钟 || I²C 时钟&lt;br /&gt;
|-&lt;br /&gt;
| 5 || CS || 片选 || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DC || 数据/命令选择 || （I²C 时可作地址位，接 GND=0x3C）&lt;br /&gt;
|-&lt;br /&gt;
| 7 || RST || 复位 || 复位&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 接线示例（Raspberry Pi，4-wire SPI） ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  https://www.waveshare.com/w/upload/f/fe/0.96inch_OLED_rpi.png&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SPI&lt;br /&gt;
: MOSI→DIN、SCLK→CLK、CE0→CS、GPIO25→DC、GPIO13→RES、VCC→3.3V、GND→GND&lt;br /&gt;
; I²C&lt;br /&gt;
: SDA→SDA、SCL→SCL、VCC→3.3V、GND→GND（DC 脚接地则地址 0x3C）&lt;br /&gt;
&lt;br /&gt;
== 示例代码 ==&lt;br /&gt;
=== Arduino/ESP32（U8g2） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;U8g2lib.h&amp;gt;&lt;br /&gt;
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, SCK, MOSI, CS, DC, RST);&lt;br /&gt;
void setup(){ u8g2.begin(); }&lt;br /&gt;
void loop(){&lt;br /&gt;
  u8g2.clearBuffer();&lt;br /&gt;
  u8g2.setFont(u8g2_font_ncenB08_tr);&lt;br /&gt;
  u8g2.drawStr(0,12,&amp;quot;Hello OLED!&amp;quot;);&lt;br /&gt;
  u8g2.sendBuffer();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi（Python：luma.oled，I²C） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from luma.core.interface.serial import i2c&lt;br /&gt;
from luma.oled.device import ssd1306&lt;br /&gt;
from PIL import Image, ImageDraw&lt;br /&gt;
&lt;br /&gt;
device = ssd1306(i2c(port=1, address=0x3C))&lt;br /&gt;
image = Image.new(&amp;quot;1&amp;quot;, device.size)&lt;br /&gt;
draw = ImageDraw.Draw(image)&lt;br /&gt;
draw.text((0,0), &amp;quot;Hello OLED!&amp;quot;, fill=255)&lt;br /&gt;
device.display(image)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 资料下载 ==&lt;br /&gt;
* [https://files.waveshare.com/upload/7/71/0.96inch-OLED-UserManual.pdf 用户手册（PDF）]&lt;br /&gt;
* [https://files.waveshare.com/upload/d/dc/0.96inch-OLED-Schematic.pdf 原理图（PDF）]&lt;br /&gt;
* [https://files.waveshare.com/upload/e/ec/SDD1306-30pin.pdf SSD1306 数据手册（PDF）]&lt;br /&gt;
&lt;br /&gt;
== 选型 ==&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (A)&#039;&#039;&#039;：横/弯脚排针&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (B)&#039;&#039;&#039;：竖/直脚排针&lt;br /&gt;
&lt;br /&gt;
== 常见问题 ==&lt;br /&gt;
; 上电不亮？&lt;br /&gt;
: OLED 无背光，需要初始化并刷屏后才会有显示。&lt;br /&gt;
; 有残影/烧屏风险吗？&lt;br /&gt;
: 长时间显示静态画面会产生残影，建议定期刷新或做屏保。&lt;br /&gt;
&lt;br /&gt;
== 修订记录 ==&lt;br /&gt;
* 2025-10-02：初版整理&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=6</id>
		<title>0.96inch OLED A</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=6"/>
		<updated>2025-10-02T06:38:42Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
= 0.96inch OLED (A) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;https://www.waveshare.com/w/upload/5/5d/0.96inch-OLED-A_l.jpg&amp;quot; alt=&amp;quot;0.96inch OLED (A)&amp;quot; width=&amp;quot;420&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 型号&lt;br /&gt;
: 0.96inch OLED (A)（横/弯脚排针）&lt;br /&gt;
; 对应版本&lt;br /&gt;
: [https://www.waveshare.com/wiki/0.96inch_OLED_(B) 0.96inch OLED (B)]（竖/直脚排针）&lt;br /&gt;
; 驱动芯片&lt;br /&gt;
: SSD1306&lt;br /&gt;
; 分辨率&lt;br /&gt;
: 128×64&lt;br /&gt;
; 接口&lt;br /&gt;
: 3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
; 默认模式&lt;br /&gt;
: 4-wire SPI（出厂默认）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 产品简介 ==&lt;br /&gt;
0.96 英寸 OLED 显示模块，内置 SSD1306 驱动，分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式，适配 Raspberry Pi、Arduino、STM32、ESP32、Pico 等主控平台。  &lt;br /&gt;
A 版为**横/弯脚排针**，B 版为**竖/直脚排针**；电气功能一致，仅排针方向不同。&lt;br /&gt;
&lt;br /&gt;
== 产品参数 ==&lt;br /&gt;
* 供电电压：3.3V / 5V&lt;br /&gt;
* 通信接口：3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
* 分辨率：128×64&lt;br /&gt;
* 显示尺寸：0.96inch&lt;br /&gt;
* 显示颜色：上黄下蓝（1/4 黄 + 3/4 蓝）&lt;br /&gt;
* 适配平台：Raspberry Pi / Arduino / STM32 / ESP32 / Pico&lt;br /&gt;
&lt;br /&gt;
== 硬件配置与拨阻 ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;https://www.waveshare.com/w/upload/9/93/0.96inch_OLED_Hardware.png&amp;quot; alt=&amp;quot;硬件丝印与拨阻说明&amp;quot; width=&amp;quot;520&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 模式 !! BS1/BS0&lt;br /&gt;
|-&lt;br /&gt;
| 3-wire SPI || 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
| 4-wire SPI（默认） || 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
| I²C || 1 / 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 管脚定义（A 版：横/弯脚排针） ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 引脚 !! 名称 !! SPI 功能 !! I²C 功能&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VCC || 电源正（3.3V/5V） || 电源正（3.3V/5V）&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GND || 电源地 || 电源地&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DIN/SDA || SPI MOSI || I²C 数据&lt;br /&gt;
|-&lt;br /&gt;
| 4 || CLK/SCL || SPI 时钟 || I²C 时钟&lt;br /&gt;
|-&lt;br /&gt;
| 5 || CS || 片选 || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DC || 数据/命令选择 || （I²C 时可作地址位，接 GND=0x3C）&lt;br /&gt;
|-&lt;br /&gt;
| 7 || RST || 复位 || 复位&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 接线示例（Raspberry Pi，4-wire SPI） ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;https://www.waveshare.com/w/upload/f/fe/0.96inch_OLED_rpi.png&amp;quot; alt=&amp;quot;树莓派接线示意&amp;quot; width=&amp;quot;600&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SPI&lt;br /&gt;
: MOSI→DIN、SCLK→CLK、CE0→CS、GPIO25→DC、GPIO13→RES、VCC→3.3V、GND→GND&lt;br /&gt;
; I²C&lt;br /&gt;
: SDA→SDA、SCL→SCL、VCC→3.3V、GND→GND（DC 脚接地则地址 0x3C）&lt;br /&gt;
&lt;br /&gt;
== 示例代码 ==&lt;br /&gt;
=== Arduino/ESP32（U8g2） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;U8g2lib.h&amp;gt;&lt;br /&gt;
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, SCK, MOSI, CS, DC, RST);&lt;br /&gt;
void setup(){ u8g2.begin(); }&lt;br /&gt;
void loop(){&lt;br /&gt;
  u8g2.clearBuffer();&lt;br /&gt;
  u8g2.setFont(u8g2_font_ncenB08_tr);&lt;br /&gt;
  u8g2.drawStr(0,12,&amp;quot;Hello OLED!&amp;quot;);&lt;br /&gt;
  u8g2.sendBuffer();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi（Python：luma.oled，I²C） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from luma.core.interface.serial import i2c&lt;br /&gt;
from luma.oled.device import ssd1306&lt;br /&gt;
from PIL import Image, ImageDraw&lt;br /&gt;
&lt;br /&gt;
device = ssd1306(i2c(port=1, address=0x3C))&lt;br /&gt;
image = Image.new(&amp;quot;1&amp;quot;, device.size)&lt;br /&gt;
draw = ImageDraw.Draw(image)&lt;br /&gt;
draw.text((0,0), &amp;quot;Hello OLED!&amp;quot;, fill=255)&lt;br /&gt;
device.display(image)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 资料下载 ==&lt;br /&gt;
* [https://files.waveshare.com/upload/7/71/0.96inch-OLED-UserManual.pdf 用户手册（PDF）]&lt;br /&gt;
* [https://files.waveshare.com/upload/d/dc/0.96inch-OLED-Schematic.pdf 原理图（PDF）]&lt;br /&gt;
* [https://files.waveshare.com/upload/e/ec/SDD1306-30pin.pdf SSD1306 数据手册（PDF）]&lt;br /&gt;
&lt;br /&gt;
== 选型 ==&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (A)&#039;&#039;&#039;：横/弯脚排针&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (B)&#039;&#039;&#039;：竖/直脚排针&lt;br /&gt;
&lt;br /&gt;
== 常见问题 ==&lt;br /&gt;
; 上电不亮？&lt;br /&gt;
: OLED 无背光，需要初始化并刷屏后才会有显示。&lt;br /&gt;
; 有残影/烧屏风险吗？&lt;br /&gt;
: 长时间显示静态画面会产生残影，建议定期刷新或做屏保。&lt;br /&gt;
&lt;br /&gt;
== 修订记录 ==&lt;br /&gt;
* 2025-10-02：初版整理&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=5</id>
		<title>0.96inch OLED A</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=5"/>
		<updated>2025-10-02T06:32:58Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
= 0.96inch OLED (A) =&lt;br /&gt;
&lt;br /&gt;
[[File:https://www.waveshare.net/w/upload/7/79/0.96inch_OLED_A.jpg|center|420px|thumb|0.96inch OLED (A) 模块示意图]]&lt;br /&gt;
&lt;br /&gt;
; 型号&lt;br /&gt;
: 0.96inch OLED (A)（横/弯脚排针）&lt;br /&gt;
; 对应版本&lt;br /&gt;
: [[https://www.waveshare.net/wiki/0.96inch_OLED_(B)|0.96inch OLED (B)]]（竖/直脚排针）&lt;br /&gt;
; 驱动芯片&lt;br /&gt;
: SSD1306 / SSD1315&lt;br /&gt;
; 分辨率&lt;br /&gt;
: 128×64&lt;br /&gt;
; 接口&lt;br /&gt;
: 3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
; 默认模式&lt;br /&gt;
: 4-wire SPI（出厂默认）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 产品简介 ==&lt;br /&gt;
0.96 英寸 OLED 显示模块，内置 SSD1306/SSD1315 驱动，分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式，适配 Raspberry Pi、Arduino、STM32、ESP32、Pico 等主控平台。  &lt;br /&gt;
A 版为**横/弯脚排针**，B 版为**竖/直脚排针**；电气功能一致，仅排针方向不同。&lt;br /&gt;
&lt;br /&gt;
== 产品参数 ==&lt;br /&gt;
* 供电电压：3.3V / 5V&lt;br /&gt;
* 功耗：全亮约 20~30mA&lt;br /&gt;
* 显示区域：21.7 mm × 11.2 mm&lt;br /&gt;
* 颜色：单色（白/蓝/黄，上黄下蓝）&lt;br /&gt;
* 接口模式：SPI/I²C&lt;br /&gt;
* 兼容平台：Raspberry Pi / Arduino / STM32 / ESP32 / Pico&lt;br /&gt;
&lt;br /&gt;
== 通信模式与电阻配置 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 模式 !! 配置示例&lt;br /&gt;
|-&lt;br /&gt;
| 3-wire SPI || BS1=0 / BS0=1&lt;br /&gt;
|-&lt;br /&gt;
| 4-wire SPI（默认） || BS1=0 / BS0=0&lt;br /&gt;
|-&lt;br /&gt;
| I²C || BS1=1 / BS0=0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 管脚定义（A 版：横/弯脚排针） ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 引脚 !! 名称 !! SPI 功能 !! I²C 功能&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VCC || 电源正（3.3V/5V） || 电源正（3.3V/5V）&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GND || 电源地 || 电源地&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DIN/SDA || SPI MOSI || I²C 数据&lt;br /&gt;
|-&lt;br /&gt;
| 4 || CLK/SCL || SPI 时钟 || I²C 时钟&lt;br /&gt;
|-&lt;br /&gt;
| 5 || CS || 片选 || —&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DC || 数据/命令选择 || —&lt;br /&gt;
|-&lt;br /&gt;
| 7 || RST || 复位 || 复位&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 接线示例 ==&lt;br /&gt;
; SPI&lt;br /&gt;
: MOSI→DIN、SCK→CLK、CS→CS、DC→DC、RST→RST、VCC→3.3V/5V、GND→GND&lt;br /&gt;
; I²C&lt;br /&gt;
: SDA→SDA、SCL→SCL、VCC→3.3V/5V、GND→GND&lt;br /&gt;
&lt;br /&gt;
== 示例代码 ==&lt;br /&gt;
=== Arduino/ESP32 (U8g2) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;U8g2lib.h&amp;gt;&lt;br /&gt;
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, SCK, MOSI, CS, DC, RST);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  u8g2.begin();&lt;br /&gt;
}&lt;br /&gt;
void loop() {&lt;br /&gt;
  u8g2.clearBuffer();&lt;br /&gt;
  u8g2.setFont(u8g2_font_ncenB08_tr);&lt;br /&gt;
  u8g2.drawStr(0,12,&amp;quot;Hello OLED!&amp;quot;);&lt;br /&gt;
  u8g2.sendBuffer();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi (Python luma.oled) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from luma.core.interface.serial import i2c&lt;br /&gt;
from luma.oled.device import ssd1306&lt;br /&gt;
from PIL import Image, ImageDraw&lt;br /&gt;
&lt;br /&gt;
serial = i2c(port=1, address=0x3C)&lt;br /&gt;
device = ssd1306(serial)&lt;br /&gt;
&lt;br /&gt;
image = Image.new(&amp;quot;1&amp;quot;, device.size)&lt;br /&gt;
draw = ImageDraw.Draw(image)&lt;br /&gt;
draw.text((0,0), &amp;quot;Hello OLED!&amp;quot;, fill=255)&lt;br /&gt;
device.display(image)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 尺寸图 ==&lt;br /&gt;
[[File:https://www.waveshare.net/w/upload/2/23/0.96inch_OLED_Dimension.png|center|520px|thumb|尺寸图]]&lt;br /&gt;
&lt;br /&gt;
== 常见问题 ==&lt;br /&gt;
; 上电不亮？&lt;br /&gt;
: OLED 无背光，需要初始化才会显示。&lt;br /&gt;
; 会不会烧屏？&lt;br /&gt;
: 长时间静态画面会产生残影，建议定期刷新。&lt;br /&gt;
&lt;br /&gt;
== 资料下载 ==&lt;br /&gt;
* [https://www.waveshare.net/w/upload/f/f9/0.96inch-OLED-UserManual.pdf 用户手册（PDF）]&lt;br /&gt;
* [https://www.waveshare.net/w/upload/b/b8/0.96inch-OLED-Schematic.pdf 原理图（PDF）]&lt;br /&gt;
* [https://www.waveshare.net/w/upload/9/9f/0.96inch-OLED-Arduino.zip Arduino 例程]&lt;br /&gt;
* [https://www.waveshare.net/w/upload/8/86/0.96inch-OLED-RaspberryPi.zip Raspberry Pi 例程]&lt;br /&gt;
* [https://www.waveshare.net/w/upload/3/3d/0.96inch-OLED-STM32.zip STM32 例程]&lt;br /&gt;
* [https://www.waveshare.net/w/upload/7/7e/0.96inch-OLED-Pico.zip Pico 例程]&lt;br /&gt;
&lt;br /&gt;
== 选型 ==&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (A)&#039;&#039;&#039;：横/弯脚排针&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (B)&#039;&#039;&#039;：竖/直脚排针&lt;br /&gt;
&lt;br /&gt;
== 修订记录 ==&lt;br /&gt;
* 2025-10-02：初版整理&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=4</id>
		<title>0.96inch OLED A</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=0.96inch_OLED_A&amp;diff=4"/>
		<updated>2025-10-02T06:26:35Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​创建页面，内容为“&amp;lt;!-- =========================      0.96inch OLED (A) — 页面源码（可直接粘贴）      说明：      1) 将占位图片/文件名替换为你站点已上传的文件；      2) 若不想隐藏目录，删掉 __NOTOC__；      3) 如使用 I²C/不同驱动芯片，请据实改动“通信模式/初始化”相关内容。 ========================= --&amp;gt;  __NOTOC__ __NOEDITSECTION__  = 0.96inch OLED (A) =  File:0.96inch_OLED_A.jpg|center|420px|thumb|0…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- =========================&lt;br /&gt;
     0.96inch OLED (A) — 页面源码（可直接粘贴）&lt;br /&gt;
     说明：&lt;br /&gt;
     1) 将占位图片/文件名替换为你站点已上传的文件；&lt;br /&gt;
     2) 若不想隐藏目录，删掉 __NOTOC__；&lt;br /&gt;
     3) 如使用 I²C/不同驱动芯片，请据实改动“通信模式/初始化”相关内容。&lt;br /&gt;
========================= --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
= 0.96inch OLED (A) =&lt;br /&gt;
&lt;br /&gt;
[[File:0.96inch_OLED_A.jpg|center|420px|thumb|0.96inch OLED (A) 模块示意图（请替换为你的图片文件名）]]&lt;br /&gt;
&lt;br /&gt;
; 型号&lt;br /&gt;
: 0.96inch OLED (A)（横/弯脚排针）&lt;br /&gt;
; 对应版本&lt;br /&gt;
: [[0.96inch OLED (B)|0.96inch OLED (B)]]（竖/直脚排针）&lt;br /&gt;
; 驱动芯片&lt;br /&gt;
: SSD1306 / SSD1315（按实物填写）&lt;br /&gt;
; 分辨率&lt;br /&gt;
: 128×64&lt;br /&gt;
; 接口&lt;br /&gt;
: 3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
; 默认模式&lt;br /&gt;
: 4-wire SPI（出厂默认，若不同请改）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 产品简介 ==&lt;br /&gt;
本产品为 0.96 英寸 OLED 显示模块，内置 {{在此填写芯片型号}} 驱动，分辨率 128×64。支持 **3 线 SPI、4 线 SPI 与 I²C** 多种通信方式，适配 Raspberry Pi、Arduino、STM32、ESP32、Raspberry Pi Pico 等主控平台。  &lt;br /&gt;
A 版为**横/弯脚排针**，B 版为**竖/直脚排针**；电气功能一致，仅排针方向不同。&lt;br /&gt;
&lt;br /&gt;
== 产品参数 ==&lt;br /&gt;
* 供电电压：3.3V / 5V（双电压兼容按你的板卡丝印填写）&lt;br /&gt;
* 典型电流：全亮约 XX mA，静态约 X mA（以官方/实测为准）&lt;br /&gt;
* 有效显示区：约 21.7 mm × 11.2 mm（0.96&amp;quot;）&lt;br /&gt;
* 显示颜色：单色（白/黄/蓝，或“上黄下蓝”等，请据实填写）&lt;br /&gt;
* 接口模式：3-wire SPI / 4-wire SPI / I²C&lt;br /&gt;
* 兼容平台：Raspberry Pi / Arduino / STM32 / ESP32 / Pico 等&lt;br /&gt;
* 工作温度：-20℃ ~ +70℃（如有）&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 提示：OLED 长时间固定画面可能产生轻微残影，建议周期性刷新或启用屏保。&lt;br /&gt;
&lt;br /&gt;
== 通信模式与焊盘配置 ==&lt;br /&gt;
模块背面通常通过两颗选择电阻（示例：BS1、BS0 或 R1、R2）切换通信方式（以及 I²C 地址）。出厂默认 **4-wire SPI**。实际丝印以 PCB 为准。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 通信模式 !! 选择位示例（按你的丝印改） !! 备注&lt;br /&gt;
|-&lt;br /&gt;
| 3-wire SPI || BS1=0 / BS0=1 || D/C 通过串行命令位区分&lt;br /&gt;
|-&lt;br /&gt;
| 4-wire SPI（默认） || BS1=0 / BS0=0 || 常用，速率较高&lt;br /&gt;
|-&lt;br /&gt;
| I²C || BS1=1 / BS0=0 || 接线简单；地址随焊盘/电阻改变&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* I²C 地址：0x3C / 0x3D（示例，按实际焊接/丝印填写）&lt;br /&gt;
* 若你的板卡用 “R1/R2 0Ω 电阻是否焊接” 来表示，请将上表文字替换为相应描述。&lt;br /&gt;
&lt;br /&gt;
== 管脚定义（A 版：横/弯脚排针） ==&lt;br /&gt;
不同批次可能丝印略有差异（如 RES/RESET、DIN/MOSI、CLK/SCK）。以实物丝印为准。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 引脚序号 !! 丝印名称 !! SPI（4-wire）说明 !! I²C 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || VCC || 3.3V/5V 电源正 || 3.3V/5V 电源正&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GND || 电源地 || 电源地&lt;br /&gt;
|-&lt;br /&gt;
| 3 || DIN / SDA || SPI MOSI / 数据输入 || I²C 数据（SDA）&lt;br /&gt;
|-&lt;br /&gt;
| 4 || CLK / SCL || SPI 时钟（SCK） || I²C 时钟（SCL）&lt;br /&gt;
|-&lt;br /&gt;
| 5 || CS || 片选（低有效） || —（I²C 无）&lt;br /&gt;
|-&lt;br /&gt;
| 6 || DC || 数据/命令选择（1=数据/0=命令） || —（I²C 无）&lt;br /&gt;
|-&lt;br /&gt;
| 7 || RST / RES || 复位（低有效） || 复位（低有效）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 典型接线 ==&lt;br /&gt;
; 4-wire SPI（默认）&lt;br /&gt;
: MCU → OLED：MOSI→DIN、SCK→CLK、CS→CS、D/C→DC、RST→RST、3V3/5V→VCC、GND→GND&lt;br /&gt;
; I²C&lt;br /&gt;
: MCU → OLED：SDA→SDA、SCL→SCL、3V3/5V→VCC、GND→GND（并按焊盘配置地址）&lt;br /&gt;
&lt;br /&gt;
&amp;gt; SPI 速率可较高但占用更多 IO；I²C 接线简单但速率相对较低。&lt;br /&gt;
&lt;br /&gt;
== 快速上手 ==&lt;br /&gt;
以下示例仅为“壳子”，请替换为你自己的初始化/库链接/代码片段。&lt;br /&gt;
&lt;br /&gt;
=== Arduino / ESP32（U8g2 或 Adafruit SSD1306） ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// 以 U8g2 SPI 为例（请按你的引脚/芯片修改构造函数）&lt;br /&gt;
#include &amp;lt;U8g2lib.h&amp;gt;&lt;br /&gt;
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(&lt;br /&gt;
  /* rotation */ U8G2_R0,&lt;br /&gt;
  /* clock*/  SCK_PIN, /* data*/ MOSI_PIN, /* cs*/ CS_PIN,&lt;br /&gt;
  /* dc*/     DC_PIN,  /* reset*/ RST_PIN&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  u8g2.begin();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  u8g2.clearBuffer();&lt;br /&gt;
  u8g2.setFont(u8g2_font_ncenB08_tr);&lt;br /&gt;
  u8g2.drawStr(0, 12, &amp;quot;Hello OLED!&amp;quot;);&lt;br /&gt;
  u8g2.drawFrame(0, 16, 128, 48);&lt;br /&gt;
  u8g2.sendBuffer();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi（Python）===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 示例：I2C + luma.oled（按需修改地址/引脚）&lt;br /&gt;
# pip install luma.oled pillow&lt;br /&gt;
from luma.core.interface.serial import i2c, spi&lt;br /&gt;
from luma.oled.device import ssd1306&lt;br /&gt;
from PIL import Image, ImageDraw, ImageFont&lt;br /&gt;
&lt;br /&gt;
serial = i2c(port=1, address=0x3C)  # 如为 0x3D 请改&lt;br /&gt;
device = ssd1306(serial)&lt;br /&gt;
&lt;br /&gt;
image = Image.new(&amp;quot;1&amp;quot;, device.size)&lt;br /&gt;
draw = ImageDraw.Draw(image)&lt;br /&gt;
draw.text((0, 0), &amp;quot;Hello OLED!&amp;quot;, fill=255)&lt;br /&gt;
device.display(image)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STM32（HAL，伪代码）===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// 1) CubeMX 选好 SPI/I2C 与 GPIO；&lt;br /&gt;
// 2) 初始化序列请对应 SSD1306/SSD1315 官方推荐参数；&lt;br /&gt;
// 3) 典型流程：Reset -&amp;gt; InitCmds -&amp;gt; 清屏 -&amp;gt; 画点/线/字。&lt;br /&gt;
void OLED_Init(void){&lt;br /&gt;
  OLED_Reset_Low(); HAL_Delay(10); OLED_Reset_High();&lt;br /&gt;
  // 发送初始化命令序列（对比你所用芯片的推荐序列）&lt;br /&gt;
  OLED_SendCmd(0xAE); // Display Off&lt;br /&gt;
  /* ... 省略若干初始化命令 ... */&lt;br /&gt;
  OLED_SendCmd(0xAF); // Display On&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 尺寸与外形 ==&lt;br /&gt;
* 外形尺寸：33.0 mm × 33.5 mm（示例，按资料更正）&lt;br /&gt;
* 显示区域：21.7 mm × 11.2 mm（约）&lt;br /&gt;
* 排针形式：A=横/弯脚；B=竖/直脚（功能一致）&lt;br /&gt;
&lt;br /&gt;
[[File:0.96inch_OLED_A_Dimension.png|center|520px|thumb|尺寸图（请替换为你的尺寸图文件名）]]&lt;br /&gt;
&lt;br /&gt;
== 常见问题（FAQ） ==&lt;br /&gt;
; 上电不亮，是坏了吗？&lt;br /&gt;
: OLED 无背光；仅接 VCC/GND 不会发光，需主控初始化后显示。&lt;br /&gt;
; 屏幕有残影怎么办？&lt;br /&gt;
: 建议定时刷新或屏保动画；降低固定高亮图案的停留时间。&lt;br /&gt;
; SPI 与 I²C 如何选择？&lt;br /&gt;
: SPI 刷新更快、更流畅；I²C 接线更简洁、占用 IO 更少。&lt;br /&gt;
&lt;br /&gt;
== 资料下载 ==&lt;br /&gt;
* [[File:0.96inch-OLED-UserManual.pdf|用户手册（PDF）]]&lt;br /&gt;
* [[File:0.96inch-OLED-Schematic.pdf|原理图（PDF）]]&lt;br /&gt;
* 示例代码：&lt;br /&gt;
** [[File:Arduino_SSD1306_Example.zip|Arduino 示例]] / [[File:ESP32_U8g2_Example.zip|ESP32 示例]]&lt;br /&gt;
** [[File:RaspberryPi_Python_OLED_Example.zip|Raspberry Pi Python 示例]]&lt;br /&gt;
** [[File:STM32_HAL_OLED_Driver.zip|STM32 HAL 驱动示例]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 若未启用文件上传，可将以上链接改为外部下载页（Git/网盘）。&lt;br /&gt;
&lt;br /&gt;
== 选型信息 ==&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (A)&#039;&#039;&#039;：横/弯脚排针&lt;br /&gt;
* &#039;&#039;&#039;0.96inch OLED (B)&#039;&#039;&#039;：竖/直脚排针（另页）&lt;br /&gt;
&lt;br /&gt;
== 修订记录 ==&lt;br /&gt;
* 2025-10-02：首次发布此页面&lt;br /&gt;
* 2025-MM-DD：补充通信模式电阻、尺寸图与示例代码链接&lt;br /&gt;
&lt;br /&gt;
== 技术支持 ==&lt;br /&gt;
使用中如遇问题，请附：&lt;br /&gt;
# 模块正反面清晰照片（含焊盘/丝印）&lt;br /&gt;
# 接线图与所用主控型号&lt;br /&gt;
# 初始化/显示相关代码片段（或完整示例）&lt;br /&gt;
# 串口/日志关键信息&lt;br /&gt;
以便快速定位与协助。&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=Vlen_socket_v600&amp;diff=3</id>
		<title>Vlen socket v600</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=Vlen_socket_v600&amp;diff=3"/>
		<updated>2025-10-02T05:36:53Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​创建页面，内容为“= VLen六路水族排插 - 机智云WiFi类设备接入协议文档（MCU方案） = ; 产品名称 : VLen六路水族排插 ; 产品类型 : 电工/排插/自定义多路排插 ; 生成日期 : 2023-06-20  本页为 MCU 与 WiFi 通讯模组的串口通讯协议（机智云标准接入协议 v4.3.1）的 **单页 MediaWiki** 版。完整覆盖 1~4 章，字段逐条展开，并在各命令下以表格列出“字段名 / 字节长度 / 说明”。  == 1. 设…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VLen六路水族排插 - 机智云WiFi类设备接入协议文档（MCU方案） =&lt;br /&gt;
; 产品名称 : VLen六路水族排插&lt;br /&gt;
; 产品类型 : 电工/排插/自定义多路排插&lt;br /&gt;
; 生成日期 : 2023-06-20&lt;br /&gt;
&lt;br /&gt;
本页为 MCU 与 WiFi 通讯模组的串口通讯协议（机智云标准接入协议 v4.3.1）的 **单页 MediaWiki** 版。完整覆盖 1~4 章，字段逐条展开，并在各命令下以表格列出“字段名 / 字节长度 / 说明”。&lt;br /&gt;
&lt;br /&gt;
== 1. 设备通讯信息 ==&lt;br /&gt;
* 通讯方式：UART&lt;br /&gt;
* 波特率：9600&lt;br /&gt;
* 数据位：8&lt;br /&gt;
* 奇偶校验：无&lt;br /&gt;
* 停止位：1&lt;br /&gt;
* 数据流控：无&lt;br /&gt;
* 供电：3.3V，电流（Max）150 mA&lt;br /&gt;
&lt;br /&gt;
== 2. 约定 ==&lt;br /&gt;
=== 2.1 传输字节序 ===&lt;br /&gt;
默认采用 **大端** 编码（高字节在前，低字节在后）。&lt;br /&gt;
&lt;br /&gt;
=== 2.2 通信交互形式 ===&lt;br /&gt;
* 采用 **一问一答**；每条命令需要接收方给出 ACK 确认；&lt;br /&gt;
* 超时时间 **200 ms**，超时后重发；最多 **重发 3 次**；其后丢弃该包。&lt;br /&gt;
&lt;br /&gt;
=== 2.3 协议格式 ===&lt;br /&gt;
==== 指令总体结构 ====&lt;br /&gt;
* 包头（2B）= `0xFFFF`。注意：**非包头部分**如出现 `0xFF`，发送方需在其后**插入** `0x55`；接收方检测到非包头的 `0xFF 55` 需要**移除**该 `0x55`。该填充字节**不计入**包长度及校验和。  &lt;br /&gt;
* 包长度（2B）：**从命令开始**至**校验和**的字节数（含命令与校验和）。&lt;br /&gt;
* 命令（1B）。&lt;br /&gt;
* 包序号 SN（1B）：由发起方给出，自 0 递增，超过 255 后回绕；ACK 回复需回填收到的 SN。&lt;br /&gt;
* Flags（2B）：高字节为**通用标记**（跨命令），低字节为**命令内私有标记**（仅本命令意义）。&lt;br /&gt;
* 有效负载：由产品数据点/业务定义。&lt;br /&gt;
* 校验和（1B）：对 **[包长度…有效负载]** 做逐字节求和，再取 **mod 256**。&lt;br /&gt;
&lt;br /&gt;
== 3. 基本通讯协议（必须） ==&lt;br /&gt;
&lt;br /&gt;
=== 3.1 获取设备信息 ===&lt;br /&gt;
WiFi 模组上电后向 MCU 查询设备信息，成功后方可正常工作。&lt;br /&gt;
&lt;br /&gt;
==== WiFi → MCU（请求） ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 序号 !! 字段名称 !! 长度（B） !! 内容说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x01&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 0x##&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== MCU → WiFi（应答） ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段名称 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x02&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 回填请求 SN&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 通用串口协议版本号 || 8 || 字符串，如 “00000004”&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 业务协议版本号 || 8 || 字符串，如 “00000002”&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 硬件版本号 || 8 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 软件版本号 || 8 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 产品标识码 ProductKey || 32 || 字符串&lt;br /&gt;
|-&lt;br /&gt;
| 11 || 可绑定状态失效时间 || 2 || 秒（大端）。0=随时可绑定；&amp;gt;0 为进入可绑定后的失效秒数&lt;br /&gt;
|-&lt;br /&gt;
| 12 || 设备属性 attributes || 8 || bit0…bit63 定义（见下）&lt;br /&gt;
|-&lt;br /&gt;
| 13 || 产品秘钥 ProductSecret || 32 || Hex 字符串&lt;br /&gt;
|-&lt;br /&gt;
| 14 || DataLen || 2 || 环境参数长度；0=无 Data&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Data || DataLen || 环境参数字符串（键值对，见下）&lt;br /&gt;
|-&lt;br /&gt;
| 16 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; 设备属性 attributes（bit0→bit63，自右向左）&lt;br /&gt;
* bit0=1：设备是**中控**；  &lt;br /&gt;
* bit1=1：**自动化生成代码**；&lt;br /&gt;
* bit2~bit5（当 bit0=1 生效）：中控重置范围：&lt;br /&gt;
** 0000：中控重置&lt;br /&gt;
** 0001：中控重置 + **所有子设备**重置&lt;br /&gt;
** 0010：中控重置 + **所有子设备与用户绑定关系**&lt;br /&gt;
** 0011：中控重置 + **部分子设备**重置（与该中控有关联的子设备）&lt;br /&gt;
** 0100：**所有子设备**重置&lt;br /&gt;
** 0101：**所有子设备与用户绑定关系**&lt;br /&gt;
** 0110：**部分子设备**重置&lt;br /&gt;
** 0111：**部分子设备与用户绑定关系**&lt;br /&gt;
* bit6=1：UDP **加密**；&lt;br /&gt;
* bit7=1：**变长数据点**；&lt;br /&gt;
* bit8=1：设备是**网关**；&lt;br /&gt;
* bit9~bit12（当 bit8=1 生效）：网关重置范围：&lt;br /&gt;
** 0000：网关重置&lt;br /&gt;
** 0001：网关重置 + 所有子设备重置&lt;br /&gt;
** 0010：所有子设备重置&lt;br /&gt;
* bit13=1：**低功耗**产品；&lt;br /&gt;
* bit14~bit63：**预留**（保持 0 以免影响云端连接）。&lt;br /&gt;
&lt;br /&gt;
; 环境参数 Data（key=value，用‘&amp;amp;’连接；示例：&lt;br /&gt;
  &amp;quot;wechatId=...&amp;amp;server=...&amp;amp;port=...&amp;amp;apName=...&amp;amp;apPwd=...&amp;amp;m2mKeepAL=...&amp;amp;m2mHT=...&amp;amp;tz=...&amp;amp;LocalHT=...&amp;amp;LocalAckT=...&amp;amp;nwcName=...&amp;amp;cfgMode=...&amp;amp;tScanNum=...&amp;amp;tCon=...&amp;amp;runMode=...&amp;quot;）&lt;br /&gt;
# wechatId：设备微信设备公众号 ID&lt;br /&gt;
# server：默认服务器域名&lt;br /&gt;
# port：默认服务器端口&lt;br /&gt;
# apName：SoftAP 热点名，**后缀追加 4 位 MAC**&lt;br /&gt;
# apName0：SoftAP 热点名，**不追加 MAC**&lt;br /&gt;
# apPwd：SoftAP 热点密码；为空=Open&lt;br /&gt;
# m2mKeepAL：M2M keepalive 秒&lt;br /&gt;
# m2mHT：M2M 心跳秒&lt;br /&gt;
# tz：默认时区&lt;br /&gt;
# LocalHT：串口心跳秒&lt;br /&gt;
# LocalAckT：串口等待 ACK 基础时间（毫秒）&lt;br /&gt;
# nwcName：网卡名，例 &amp;quot;eth0&amp;quot;&lt;br /&gt;
# cfgMode：初始化运行模式（1=SoftAP，2=AirLink）&lt;br /&gt;
# tScanNum：初始化扫描热点次数（默认 2）&lt;br /&gt;
# tCon：产测是否连路由（0=否，1=是（默认））&lt;br /&gt;
# runMode：运行模式（1=单通道（默认）；2=双通道，如 Wi‑Fi+BLE/4G+BLE）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.2 WiFi 模组控制设备 ===&lt;br /&gt;
WiFi → MCU，命令 `0x03`，`action=0x11`；MCU 回复 `0x04`（ACK）。&lt;br /&gt;
&lt;br /&gt;
==== 帧格式 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x03&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 0x##&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || action || 1 || 0x11&lt;br /&gt;
|-&lt;br /&gt;
| 7 || attr_flags || 6 || **是否设置标志位位图**（见下）&lt;br /&gt;
|-&lt;br /&gt;
| 8 || attr_vals || Max 249 || **按位顺序紧凑排列**的数据值（见下）&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; 规则&lt;br /&gt;
* `attr_flags` 中**某位=1**，表示 `attr_vals` 中**对应字段**的**数值存在且有效**；为 0 表示该字段**忽略**。&lt;br /&gt;
* `attr_vals` 的字段顺序与 `attr_flags` 的位定义一一对应，按**从低位到高位**、从**bool → 标量 → binary** 的**固定顺序**连续排列。&lt;br /&gt;
&lt;br /&gt;
==== attr_flags 位定义（共 48 位，bit0→bit47） ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 位 !! 字段 !! 类型 / 说明&lt;br /&gt;
|-&lt;br /&gt;
| bit0 || switch_1 || bool（开关 1）&lt;br /&gt;
|-&lt;br /&gt;
| bit1 || switch_2 || bool（开关 2）&lt;br /&gt;
|-&lt;br /&gt;
| bit2 || switch_3 || bool（开关 3）&lt;br /&gt;
|-&lt;br /&gt;
| bit3 || switch_4 || bool（开关 4）&lt;br /&gt;
|-&lt;br /&gt;
| bit4 || switch_5 || bool（开关 5）&lt;br /&gt;
|-&lt;br /&gt;
| bit5 || switch_6 || bool（开关 6）&lt;br /&gt;
|-&lt;br /&gt;
| bit6 || power || bool（总电源）&lt;br /&gt;
|-&lt;br /&gt;
| bit7 || High_temperature_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit8 || Low_temperature_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit9 || High_Humidity_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit10 || Low_Humidity_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit11 || High_tds_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit12 || Low_tds_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit13 || High_ph_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit14 || Low_ph_alarm || bool&lt;br /&gt;
|-&lt;br /&gt;
| bit15 || humidity || uint8（0..100，y=1*x+0）&lt;br /&gt;
|-&lt;br /&gt;
| bit16 || ph_value || uint8（0..140，**y=0.1*x**）&lt;br /&gt;
|-&lt;br /&gt;
| bit17 || switch_mode_1 || uint8（0..10）&lt;br /&gt;
|-&lt;br /&gt;
| bit18 || switch_mode_2 || uint8（0..10）&lt;br /&gt;
|-&lt;br /&gt;
| bit19 || switch_mode_3 || uint8（0..10）&lt;br /&gt;
|-&lt;br /&gt;
| bit20 || switch_mode_4 || uint8（0..10）&lt;br /&gt;
|-&lt;br /&gt;
| bit21 || switch_mode_5 || uint8（0..10）&lt;br /&gt;
|-&lt;br /&gt;
| bit22 || switch_mode_6 || uint8（0..10）&lt;br /&gt;
|-&lt;br /&gt;
| bit23 || Temperature_alarm_max || uint8（0..100）&lt;br /&gt;
|-&lt;br /&gt;
| bit24 || Temperature_alarm_min || uint8（0..100）&lt;br /&gt;
|-&lt;br /&gt;
| bit25 || Humidity_alarm_max || uint8（0..100）&lt;br /&gt;
|-&lt;br /&gt;
| bit26 || Humidity_alarm_min || uint8（0..100）&lt;br /&gt;
|-&lt;br /&gt;
| bit27 || ph_alarm_max || uint8（0..140，y=0.1*x）&lt;br /&gt;
|-&lt;br /&gt;
| bit28 || ph_alarm_min || uint8（0..140，y=0.1*x）&lt;br /&gt;
|-&lt;br /&gt;
| bit29 || temp_current_1 || uint16（0..1200，**y=1*x-200**）&lt;br /&gt;
|-&lt;br /&gt;
| bit30 || temp_current_2 || uint16（0..1200，**y=1*x-200**）&lt;br /&gt;
|-&lt;br /&gt;
| bit31 || Total_dissolved_solids || uint16（0..5000）&lt;br /&gt;
|-&lt;br /&gt;
| bit32 || current_voltage || uint16（0..5000）&lt;br /&gt;
|-&lt;br /&gt;
| bit33 || Current_power || uint16（0..10000）&lt;br /&gt;
|-&lt;br /&gt;
| bit34 || tds_alarm_max || uint16（0..5000）&lt;br /&gt;
|-&lt;br /&gt;
| bit35 || tds_alarm_min || uint16（0..5000）&lt;br /&gt;
|-&lt;br /&gt;
| bit36 || urt_value || uint32（0..600000）&lt;br /&gt;
|-&lt;br /&gt;
| bit37 || Current_current || uint32（0..100000）&lt;br /&gt;
|-&lt;br /&gt;
| bit38 || cur_timestamp || uint32（Unix 秒）&lt;br /&gt;
|-&lt;br /&gt;
| bit39 || cycle_mode_set || binary（24B，数组 [1,2,3…]）&lt;br /&gt;
|-&lt;br /&gt;
| bit40 || temperature_mode_set || binary（12B）&lt;br /&gt;
|-&lt;br /&gt;
| bit41 || humidity_mode_set || binary（12B）&lt;br /&gt;
|-&lt;br /&gt;
| bit42 || time_mode_set_1 || binary（30B）&lt;br /&gt;
|-&lt;br /&gt;
| bit43 || time_mode_set_2 || binary（30B）&lt;br /&gt;
|-&lt;br /&gt;
| bit44 || time_mode_set_3 || binary（30B）&lt;br /&gt;
|-&lt;br /&gt;
| bit45 || time_mode_set_4 || binary（30B）&lt;br /&gt;
|-&lt;br /&gt;
| bit46 || time_mode_set_5 || binary（30B）&lt;br /&gt;
|-&lt;br /&gt;
| bit47 || time_mode_set_6 || binary（30B）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; attr_vals 编码顺序与示例（节选）&lt;br /&gt;
* bool 组合位（byte0）：`switch_1…switch_6` + `power` + 各报警位，**bit0→bit7**；&lt;br /&gt;
* 接着是 `switch_mode_1…6`（6×uint8）→ `Temperature_alarm_max/min`（2×uint8）→ `Humidity_alarm_max/min`（2×uint8）→ `ph_alarm_max/min`（2×uint8，y=0.1x）→ `tds_alarm_max/min`（2×uint16）→ `cur_timestamp`（uint32）→ `cycle/temperature/humidity_mode_set`（binary）→ `time_mode_set_1…6`（各 30B）。&lt;br /&gt;
&lt;br /&gt;
==== MCU → WiFi（ACK） ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x04&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 回填请求 SN&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; 实施建议&lt;br /&gt;
* 无论状态是否改变，**执行控制后建议立即上报一次**最新设备状态（参见 3.4 上报）。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.3 WiFi 模组读取设备的当前状态 ===&lt;br /&gt;
WiFi → MCU：命令 `0x03`，`action=0x12`；MCU → WiFi：命令 `0x04`，`action=0x13`。&lt;br /&gt;
&lt;br /&gt;
==== 请求 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x03&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 0x##&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || action || 1 || 0x12&lt;br /&gt;
|-&lt;br /&gt;
| 7 || attr_flags || 6 || 与控制命令一致（筛选需要返回的状态）&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 应答（含 dev_status） ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x04&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 0x##&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || action || 1 || 0x13&lt;br /&gt;
|-&lt;br /&gt;
| 7 || attr_flags || 6 || 与控制命令一致&lt;br /&gt;
|-&lt;br /&gt;
| 8 || dev_status || Max 270 || **设备状态**（字段顺序/类型与 3.2 对应）&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; dev_status 字段说明&lt;br /&gt;
* 位/字段定义与 3.2 `attr_flags` 一致，**编码顺序**与 3.2 的 `attr_vals` 相同；&lt;br /&gt;
* 定标公式：同 3.2 中各字段（例如 `ph_value`、`ph_alarm_*` 为 0.1x；温度 current_* 为 1*x-200）。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.4 设备 MCU 主动上报当前状态 ===&lt;br /&gt;
MCU → WiFi：命令 `0x05`，`action=0x14`，负载为 `dev_status`。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 固定包头 || 2 || 0xFFFF&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 包长度 || 2 || len(命令…校验和)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 命令 || 1 || 0x05&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 包序号 || 1 || 0x##&lt;br /&gt;
|-&lt;br /&gt;
| 5 || flags || 2 || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| 6 || action || 1 || 0x14&lt;br /&gt;
|-&lt;br /&gt;
| 7 || attr_flags || 6 || 按需设置（哪些状态有效即置位）&lt;br /&gt;
|-&lt;br /&gt;
| 8 || dev_status || Max 270 || 状态体（字段/顺序同 3.2/3.3）&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; 上报策略（建议）&lt;br /&gt;
* 接收到“控制设备”命令后，**立即上报**被控制后的数据点组合；&lt;br /&gt;
* 因用户手动或环境变化导致设备状态改变时，仅上报**发生变化**的数据点组合；&lt;br /&gt;
* 可设置**定期上报**（例如每 10 分钟一次）。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.5 心跳 ===&lt;br /&gt;
* WiFi → MCU：`0x07`；MCU → WiFi：`0x08`。&lt;br /&gt;
&lt;br /&gt;
=== 3.6 通知 WiFi 模组进入配置模式 ===&lt;br /&gt;
* 命令：`0x09`（请求）/ `0x0A`（应答）；支持 SoftAP / AirLink / BLE 等。&lt;br /&gt;
&lt;br /&gt;
=== 3.7 重置 WiFi 模组 ===&lt;br /&gt;
* 命令：`0x0B`（请求）/ `0x0C`（应答）；清除 SSID/密码/DID/Passcode，恢复出厂。&lt;br /&gt;
&lt;br /&gt;
=== 3.8 推送 WiFi 模组工作状态 ===&lt;br /&gt;
* 命令：`0x0D`（WiFi 状态上报）/ `0x0E`（ACK）；状态包含 SoftAP/Station/Onboarding/绑定状态/RSSI/蓝牙模式等。&lt;br /&gt;
&lt;br /&gt;
=== 3.9 非法数据包通知 ===&lt;br /&gt;
* 命令：`0x11`（WiFi→MCU）/ `0x12`（MCU→WiFi）；&lt;br /&gt;
* 错误码：1=校验和错误；2=命令不可识别；3=其他错误；4=文件类型不匹配。&lt;br /&gt;
&lt;br /&gt;
=== 3.10 MCU 通知 WiFi 模组进入可绑定模式 ===&lt;br /&gt;
* 命令：`0x15`（请求）/ `0x16`（应答）；倒计时（可绑定失效秒）见 3.1 字段。&lt;br /&gt;
&lt;br /&gt;
=== 3.11 MCU 重启通讯模组 ===&lt;br /&gt;
* 命令：`0x29`（请求）/ `0x2A`（应答）；ACK 成功后模组再重启。&lt;br /&gt;
&lt;br /&gt;
== 4. 扩展通讯协议（可选） ==&lt;br /&gt;
&lt;br /&gt;
=== 4.1 重启 MCU ===&lt;br /&gt;
* WiFi → MCU：`0x0F`（请求）；MCU → WiFi：`0x10`（应答）。&lt;br /&gt;
* 注意：MCU **在回复 ACK 后等待 ~600 ms** 再重启，避免 WiFi 端未收到 ACK 而重复请求。&lt;br /&gt;
&lt;br /&gt;
=== 4.2 MCU 请求 WiFi 模组进入产测模式 ===&lt;br /&gt;
* MCU → WiFi：`0x13`；WiFi → MCU：`0x14`。&lt;br /&gt;
&lt;br /&gt;
=== 4.3 MCU 请求获取网络时间 ===&lt;br /&gt;
* MCU → WiFi：`0x17`；WiFi → MCU：`0x18`（返回本地时区时间 + NTP 秒）。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| year || 2 || 年（大端），如 2015&lt;br /&gt;
|-&lt;br /&gt;
| month || 1 || 月&lt;br /&gt;
|-&lt;br /&gt;
| day || 1 || 日&lt;br /&gt;
|-&lt;br /&gt;
| hour || 1 || 时&lt;br /&gt;
|-&lt;br /&gt;
| minute || 1 || 分&lt;br /&gt;
|-&lt;br /&gt;
| second || 1 || 秒&lt;br /&gt;
|-&lt;br /&gt;
| ntp || 4 || NTP 秒计数&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 4.4 大数据下发：发起者请求 ===&lt;br /&gt;
* WiFi → MCU：`0x19`；MCU → WiFi：`0x1A`。  &lt;br /&gt;
负载含：**数据大小**、**文件类型**、**MD5**。&lt;br /&gt;
&lt;br /&gt;
=== 4.5 大数据下发：接收者确认 ===&lt;br /&gt;
* MCU → WiFi：`0x1B`；WiFi → MCU：`0x1C`。  &lt;br /&gt;
负载含：**分片大小**（建议 128B）。&lt;br /&gt;
&lt;br /&gt;
=== 4.6 大数据下发：分片传输 ===&lt;br /&gt;
* WiFi → MCU：`0x1D`；MCU → WiFi：`0x1E`。  &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| total_packets || 2 || 总分片数&lt;br /&gt;
|-&lt;br /&gt;
| packet_index || 2 || 当前分片号（0 起）&lt;br /&gt;
|-&lt;br /&gt;
| data || N || 分片数据&lt;br /&gt;
|}&lt;br /&gt;
* Flags.bit1 = 1 表示**最后一包**。&lt;br /&gt;
&lt;br /&gt;
=== 4.7 大数据下发：发起者取消 ===&lt;br /&gt;
* WiFi → MCU：`0x1F`；MCU → WiFi：`0x20`。&lt;br /&gt;
&lt;br /&gt;
=== 4.8 大数据下发：接收者取消 ===&lt;br /&gt;
* MCU → WiFi：`0x27`；WiFi → MCU：`0x28`。&lt;br /&gt;
&lt;br /&gt;
=== 4.9 MCU 获取通讯模组信息 ===&lt;br /&gt;
* MCU → WiFi：`0x21`；WiFi → MCU：`0x22`。  &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! 字段 !! 长度（B） !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 1 || module_type || 8 || 模组类型（字符串）&lt;br /&gt;
|-&lt;br /&gt;
| 2 || protocol_version || 8 || 协议版本（字符串）&lt;br /&gt;
|-&lt;br /&gt;
| 3 || hardware_version || 8 || 硬件版本（字符串）&lt;br /&gt;
|-&lt;br /&gt;
| 4 || software_version || 8 || 软件版本（字符串）&lt;br /&gt;
|-&lt;br /&gt;
| 5 || mac || max 13 || 以 &#039;\\0&#039; 结尾的字符串，例如 &amp;quot;5CF9388AE8F0\\0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ip || max 16 || 以 &#039;\\0&#039; 结尾的字符串，例如 &amp;quot;192.168.100.254\\0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 7 || attributes || 8 || 模组属性（预留）&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 校验和 || 1 || 0x##&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== A. 附录：数据点/字段的缩放与边界 ==&lt;br /&gt;
* `ph_value`、`ph_alarm_*`：**y=0.1*x**；  &lt;br /&gt;
* `temp_current_1/2`：**y=1*x-200**（原始 0..1200）；  &lt;br /&gt;
* `humidity`、`Temperature/Humidity_alarm_*`：**y=1*x+0**；  &lt;br /&gt;
* `Total_dissolved_solids`、`tds_alarm_*`：uint16（0..5000）；  &lt;br /&gt;
* `current_voltage`：uint16（0..5000）；`Current_power`：uint16（0..10000）；  &lt;br /&gt;
* `urt_value`：uint32（0..600000）；`Current_current`：uint32（0..100000）；  &lt;br /&gt;
* `cur_timestamp`：uint32（Unix 秒）。&lt;br /&gt;
&lt;br /&gt;
== B. 附录：布尔组合位（byte0）编码 ==&lt;br /&gt;
* bit0…bit5 = `switch_1…switch_6`；bit6=`power`；bit7..bit14=各报警位（高温/低温/高湿/低湿/高 TDS/低 TDS/高 pH/低 pH）。&lt;br /&gt;
&lt;br /&gt;
[[Category:协议文档]]&lt;br /&gt;
[[Category:水族智能设备]]&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
	<entry>
		<id>https://wiki.vlen.net/index.php?title=ESP32-S3-Touch-LCD-4.3&amp;diff=2</id>
		<title>ESP32-S3-Touch-LCD-4.3</title>
		<link rel="alternate" type="text/html" href="https://wiki.vlen.net/index.php?title=ESP32-S3-Touch-LCD-4.3&amp;diff=2"/>
		<updated>2025-10-02T04:53:39Z</updated>

		<summary type="html">&lt;p&gt;Nichen：​创建页面，内容为“= ESP32-S3-Touch-LCD-4.3 =  __TOC__  本页为 ESP32-S3-Touch-LCD-4.3 的本地维护文档，按照官方 Wiki 的信息结构梳理：功能概览、示例运行、固件烧录与擦除、资料下载、FAQ 等，便于在本地持续更新与二次开发。页面结构参考官方条目。   == 产品概览 == * MCU：ESP32-S3 双核 LX7，支持 2.4GHz Wi-Fi 与 BLE 5 * 存储：常见 16MB Flash / 8MB PSRAM（以实物丝印为准） * 显示：4.3&amp;quot; RGB LC…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= ESP32-S3-Touch-LCD-4.3 =&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
本页为 ESP32-S3-Touch-LCD-4.3 的本地维护文档，按照官方 Wiki 的信息结构梳理：功能概览、示例运行、固件烧录与擦除、资料下载、FAQ 等，便于在本地持续更新与二次开发。页面结构参考官方条目。 &lt;br /&gt;
&lt;br /&gt;
== 产品概览 ==&lt;br /&gt;
* MCU：ESP32-S3 双核 LX7，支持 2.4GHz Wi-Fi 与 BLE 5&lt;br /&gt;
* 存储：常见 16MB Flash / 8MB PSRAM（以实物丝印为准）&lt;br /&gt;
* 显示：4.3&amp;quot; RGB LCD，800×480 分辨率；电容触摸（常见 GT911，I²C）&lt;br /&gt;
* 接口：CAN、I²C、RS485、UART 等&lt;br /&gt;
* 适配：Arduino / ESP-IDF，适合运行 LVGL 等 GUI&lt;br /&gt;
* 应用：HMI、信息看板、控制面板、教学实验&lt;br /&gt;
（页面结构参照官方 Wiki 的“概述/特性/演示/资料/FAQ”布局。） :contentReference[oaicite:1]{index=1}&lt;br /&gt;
&lt;br /&gt;
== 示例演示（结果展示） ==&lt;br /&gt;
* 提供示例工程用于验证 LCD/触摸/存储等功能；烧录后复位即可看到界面演示。 &lt;br /&gt;
* 示例包含对 TF 卡（MicroSD）的识别与基本文件操作（创建/删除/读写/查询）等演示。 &lt;br /&gt;
* 若需进一步提升帧率，可按官方建议优化显示时序、刷新方式与 DMA/双缓冲等参数。 :contentReference[oaicite:2]{index=2}&lt;br /&gt;
&lt;br /&gt;
== 快速上手 ==&lt;br /&gt;
=== Arduino 路线 ===&lt;br /&gt;
* 安装 ESP32 开发板支持包；选择 S3 系列目标板。&lt;br /&gt;
* 依示例需要安装 LVGL 与显示/触摸相关库（如 Arduino_GFX/TFT_eSPI、GT911 等）。&lt;br /&gt;
* 在 Tools 菜单正确设置 Flash（如 16MB）与 PSRAM（如 8MB OPI），否则可能编译通过但黑屏。 :contentReference[oaicite:3]{index=3}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Arduino + LVGL 最小化示例（需先完成屏与触摸初始化） */&lt;br /&gt;
#include &amp;lt;lvgl.h&amp;gt;&lt;br /&gt;
void setup(){&lt;br /&gt;
  lv_init();&lt;br /&gt;
  lv_obj_t* label = lv_label_create(lv_scr_act());&lt;br /&gt;
  lv_label_set_text(label, &amp;quot;Hello ESP32-S3 4.3\&amp;quot;&amp;quot;);&lt;br /&gt;
  lv_obj_center(label);&lt;br /&gt;
}&lt;br /&gt;
void loop(){ lv_timer_handler(); delay(5); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ESP-IDF 路线 ===&lt;br /&gt;
* 获取示例工程，设置目标为 esp32s3，按需在 menuconfig 中选择屏幕/触摸/LVGL/PSRAM 等配置。 :contentReference[oaicite:4]{index=4}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/waveshare/esp32-s3-touch-lcd-4.3.git&lt;br /&gt;
cd esp32-s3-touch-lcd-4.3&lt;br /&gt;
idf.py set-target esp32s3&lt;br /&gt;
idf.py menuconfig&lt;br /&gt;
idf.py build&lt;br /&gt;
idf.py -p /dev/ttyUSB0 flash monitor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 触摸控制可通过工程中的宏/配置开关启用或关闭（示例名以实际工程为准）。 :contentReference[oaicite:5]{index=5}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* 示例宏（以工程实际为准） */&lt;br /&gt;
#define CONFIG_EXAMPLE_LCD_TOUCH_CONTROLLER_GT911 1  /* 1 开启触摸，0 关闭触摸 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 固件烧录与擦除 ==&lt;br /&gt;
* 官方示例通常附带测试固件（BIN），用于快速验证板载功能是否正常。 &lt;br /&gt;
* BIN 文件一般位于示例工程的 Firmware 目录；也可使用 idf.py 或 esptool.py 手动烧录。 &lt;br /&gt;
* 进入下载模式：断电后按住 BOOT 并插入 USB，上电后松开。 :contentReference[oaicite:6]{index=6}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idf.py -p /dev/ttyUSB0 erase-flash&lt;br /&gt;
idf.py -p /dev/ttyUSB0 flash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 资料 ==&lt;br /&gt;
=== 原理图 / 工程图纸 ===&lt;br /&gt;
* 原理图（按具体版本选择，例如 4.3B）：（在此添加你上传的本地文件或官方链接）&lt;br /&gt;
  - 例：[[File:ESP32-S3-Touch-LCD-4.3B-Sch.pdf]]（或使用官方下载链接）&lt;br /&gt;
=== 示例程序 ===&lt;br /&gt;
* 官方示例工程（ESP-IDF / LVGL 等，详见官方资料区）&lt;br /&gt;
=== 数据手册（ESP32-S3 系列） ===&lt;br /&gt;
* 数据手册、技术参考手册、模组手册（按需要列出中/英版本）&lt;br /&gt;
=== 其他资料链接 ===&lt;br /&gt;
* Arduino 官方文档、ESP-IDF 官方资料、LVGL 文档等（按需补充）&lt;br /&gt;
（以上分节与标题对应官方页面的“资料/原理图/示例程序/数据手册/其他资料链接”。） :contentReference[oaicite:7]{index=7}&lt;br /&gt;
&lt;br /&gt;
== 常见问题（FAQ） ==&lt;br /&gt;
; 电脑接入后未识别到串口&lt;br /&gt;
: 按住 BOOT 重新上电进入下载模式；检查 USB 线是否为数据线。 :contentReference[oaicite:8]{index=8}&lt;br /&gt;
&lt;br /&gt;
; CAN 接收异常&lt;br /&gt;
: 重启上位机串口工具并多次复位板卡；部分串口工具需取消 “DTR” 勾选。 :contentReference[oaicite:9]{index=9}&lt;br /&gt;
&lt;br /&gt;
; 烧录 Arduino RGB 屏程序后黑屏&lt;br /&gt;
: 检查是否在 Arduino IDE 的 Tools 中正确设置了 Flash/PSRAM，并确认依赖库已完整安装。 :contentReference[oaicite:10]{index=10}&lt;br /&gt;
&lt;br /&gt;
; Arduino 编译报缺少 LVGL 头文件&lt;br /&gt;
: 可能是库安装路径含中文导致检索失败，建议使用无空格/英文路径。 :contentReference[oaicite:11]{index=11}&lt;br /&gt;
&lt;br /&gt;
; 成功烧录但仍无显示&lt;br /&gt;
: 参考官方给出的显示/触摸驱动与帧率优化建议，校准显示时序与极性，必要时启用双缓冲/DMA。 :contentReference[oaicite:12]{index=12}&lt;br /&gt;
&lt;br /&gt;
== 版本记录 ==&lt;br /&gt;
* 2025-10-02：按官方页面结构创建本地可编辑条目骨架并完成内容重述。&lt;/div&gt;</summary>
		<author><name>Nichen</name></author>
	</entry>
</feed>