当前位置:首页>Linux>AI 帮我做一个光立方:Linux 环境下从电路设计到单片机编程的完整教程

AI 帮我做一个光立方:Linux 环境下从电路设计到单片机编程的完整教程

  • 2026-03-26 09:17:13
AI 帮我做一个光立方:Linux 环境下从电路设计到单片机编程的完整教程

AI 帮我做一个光立方:Linux 环境下从电路设计到单片机编程的完整教程

零基础上手,用 AI 辅助完成一个炫酷的 3D LED 光立方项目

💡 提示: 本文配套开源项目(含原理图、PCB、源码)已上传 GitHub,文末获取!


📌 前言

光立方是一个经典的电子制作项目,通过 64 颗 LED 组成 4×4×4 的三维阵列,利用视觉暂留原理实现各种炫酷的 3D 动画效果。

传统教程往往只讲硬件或只讲软件,而且大多基于 Windows 环境。今天这篇教程,我将展示如何在 Linux 系统下,借助 AI 大模型的辅助,从零开始完成一个完整的光立方项目

全程使用免费开源工具,总成本不到 50 元!


🎯 项目目标

  • ✅ 在 Linux 环境下完成电路设计(KiCad)
  • ✅ 用 AI 辅助生成单片机代码(STM32)
  • ✅ 掌握光立方的工作原理
  • ✅ 完成硬件焊接和程序烧录
  • ✅ 实现多种 3D 动画效果

📦 一、材料清单

1.1 核心元件

实物参考:

┌────────────────────────────────────────┐
│  LED ×64   STM32   74HC595   ULN2003  │
│   ●●●●    ┌───┐   ┌────┐   ┌────┐    │
│   ●●●●    │ ● │   │ ●● │   │ ●● │    │
│   ●●●●    └───┘   └────┘   └────┘    │
│   电阻×64  排针若干  PCB 板  5V 电源  │
└────────────────────────────────────────┘
元件 规格 数量 单价 小计
LED 3mm 发光二极管 64 颗 ¥0.1 ¥6.4
单片机 STM32F103C8T6 1 片 ¥15 ¥15
移位寄存器 74HC595 2 片 ¥1 ¥2
驱动芯片 ULN2003 4 片 ¥1 ¥4
电阻 220Ω 1/4W 64 个 ¥0.01 ¥0.6
排针排母 2.54mm 若干 - ¥5
PCB 板 定制或洞洞板 1 块 ¥0 ¥0
电源 5V 1A 1 个 ¥10 ¥10
合计 - - - 约¥43

1.2 采购建议

  • 淘宝/拼多多: 搜索"STM32 最小系统板"、"LED 3mm 混色"
  • 立创商城: 元器件品质好,适合批量采购
  • 嘉立创: PCB 每月 2 次免费打样(10cm²内)

🖥️ 二、Linux 开发环境搭建

2.1 安装 KiCad(电路设计)

# Ubuntu/Debian
sudo apt update
sudo apt install kicad

# Fedora
sudo dnf install kicad

# Arch Linux
sudo pacman -S kicad

KiCad 是一款开源专业的 EDA 工具,支持原理图设计和 PCB 布局,完全免费且功能强大。

2.2 安装 STM32 开发工具链

# 安装 ARM GCC 编译器
sudo apt install gcc-arm-none-eabi gdb-multiarch

# 安装 ST-Link 烧录工具
sudo apt install stlink-tools

# 或安装 OpenOCD
sudo apt install openocd

2.3 安装 VS Code 和 PlatformIO

# 安装 VS Code
sudo snap install code --classic

# 安装 PlatformIO(命令行方式)
sudo apt install python3-pip
pip3 install platformio

# 或在 VS Code 中安装 PlatformIO 插件

PlatformIO 是一个跨平台的嵌入式开发环境,支持 STM32、Arduino、ESP32 等多种平台,自动管理依赖,强烈推荐!


🔌 三、电路设计(KiCad 实战)

3.1 光立方工作原理

逐层扫描示意:

    层 3  ┌─┬─┬─┬─┐   ← 先点亮层 3,显示对应图案
        │●│ │●│ │
        ├─┼─┼─┼─┤
    层 2  │ │●│ │●│   ← 再点亮层 2
        ├─┼─┼─┼─┤
    层 1  │●│ │ │●│   ← 再点亮层 1
        ├─┼─┼─┼─┤
    层 0  │ │●│●│ │   ← 最后点亮层 0
        └─┴─┴─┴─┘
        
    扫描频率 > 100Hz → 人眼看到完整 3D 图像(视觉暂留)

光立方采用逐层扫描的方式显示:

┌─────────────────────────────────┐
│  层选(共阴极):每层 16 个 LED    │
│  阴极连在一起 → 4 个层选信号      │
│                                 │
│  列选(共阳极):每列 4 个 LED     │
│  阳极连在一起 → 16 个列选信号     │
│                                 │
│  控制方式:逐层扫描(视觉暂留)   │
└─────────────────────────────────┘

3.2 创建 KiCad 项目

KiCad 项目结构:

led-cube/
├── led-cube.kicad_pro    # 项目文件
├── led-cube_sch          # 原理图
├── led-cube_pcb          # PCB 布局
└── led-cube.kicad_prl    # 项目设置
mkdir ~/projects/led-cube
cd ~/projects/led-cube
kicad led-cube.kicad_pro

3.3 绘制原理图要点

  1. LED 阵列: 64 颗 LED 按 4×4×4 排列
  2. 限流电阻: 每颗 LED 串联 220Ω 电阻(计算:(5V-2V)/20mA≈150Ω,取 220Ω 更安全)
  3. 层驱动: ULN2003 达林顿管驱动每层阴极
  4. 列驱动: 2 片 74HC595 串转并控制 16 列阳极
  5. 单片机: STM32F103C8T6 最小系统

3.4 关键电路连接

STM32 引脚分配:
├── PA0-PA3: 层选信号(连接 ULN2003)
├── PB3: 74HC595 时钟(SH_CP)
├── PB4: 74HC595 锁存(ST_CP)
└── PB5: 74HC595 数据(DS)

74HC595 级联:
├── 第一片:控制列 0-7
├── 第二片:控制列 8-15
└── Q7' → 下一片 DS(级联)

3.5 PCB 布局建议

  • 底层: STM32 最小系统 + ST-Link 接口
  • 中层: 74HC595 + ULN2003 驱动电路
  • 顶层: LED 阵列插座(方便焊接)
  • 电源: 5V 输入,加 100μF 滤波电容

3.6 输出生产文件

File → Plot → Gerber(发给 PCB 厂家)
File → Fabrication Outputs → BOM(元件清单)

💻 四、单片机编程(AI 辅助)

4.1 创建 PlatformIO 项目

cd ~/projects/led-cube
pio project create --ide vscode --board bluepill_f103c8 --platform ststm32

4.2 项目结构

led-cube/
├── src/
│   └── main.cpp          # 主程序
├── include/
│   └── led_cube.h        # 头文件
├── lib/                   # 第三方库
├── platformio.ini         # 配置文件
└── README.md

4.3 核心代码实现

配置文件(platformio.ini)

[env:bluepill_f103c8]
platform = ststm32
board = bluepill_f103c8
framework = arduino
upload_protocol = stlink
upload_speed = 921600
monitor_speed = 115200

主程序(main.cpp)

#include <Arduino.h>

// ========== 引脚定义 ==========
#define LAYER_PIN_START  PA0   // 层选引脚 PA0-PA3
#define DATA_PIN         PB5   // 74HC595 数据
#define CLOCK_PIN        PB3   // 时钟
#define LATCH_PIN        PB4   // 锁存

// ========== 显存定义 ==========
// 4 层 × 16 列
uint8_t cube[4][16];

// ========== 初始化 ==========
void setup() {
    pinMode(DATA_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(LATCH_PIN, OUTPUT);
    
    for(int i = 0; i < 4; i++) {
        pinMode(LAYER_PIN_START + i, OUTPUT);
    }
    
    memset(cube, 0sizeof(cube));
}

// ========== 74HC595 数据发送 ==========
void shiftOutData(uint16_t data) {
    for(int i = 15; i >= 0; i--) {
        digitalWrite(DATA_PIN, (data >> i) & 0x01);
        digitalWrite(CLOCK_PIN, HIGH);
        digitalWrite(CLOCK_PIN, LOW);
    }
}

// ========== 显示刷新(逐层扫描)==========
void refreshDisplay() {
    static uint8_t currentLayer = 0;
    
    // 关闭所有层
    for(int i = 0; i < 4; i++) {
        digitalWrite(LAYER_PIN_START + i, LOW);
    }
    
    // 发送当前层数据
    uint16_t layerData = 0;
    for(int col = 0; col < 16; col++) {
        if(cube[currentLayer][col]) {
            layerData |= (1 << col);
        }
    }
    shiftOutData(layerData);
    digitalWrite(LATCH_PIN, HIGH);
    digitalWrite(LATCH_PIN, LOW);
    
    // 开启当前层
    digitalWrite(LAYER_PIN_START + currentLayer, HIGH);
    
    // 切换到下一层
    currentLayer = (currentLayer + 1) % 4;
    
    // 延时控制亮度(关键!)
    delayMicroseconds(2000);
}

// ========== 绘制函数 ==========

// 画一个点
void setPixel(uint8_t x, uint8_t y, uint8_t z, uint8_t state) {
    uint8_t col = y * 4 + x;
    cube[z][col] = state;
}

// 画一个平面
void setPlane(uint8_t z, uint8_t value) {
    for(int i = 0; i < 16; i++) {
        cube[z][i] = value;
    }
}

// 画一条线(3D Bresenham 算法简化版)
void drawLine3D(uint8_t x1, uint8_t y1, uint8_t z1, 
                uint8_t x2, uint8_t y2, uint8_t z2)
 
{
    int dx = x2 - x1, dy = y2 - y1, dz = z2 - z1;
    int steps = max(abs(dx), max(abs(dy), abs(dz)));
    
    for(int i = 0; i <= steps; i++) {
        float t = (float)i / steps;
        setPixel(
            x1 + dx * t, 
            y1 + dy * t, 
            z1 + dz * t, 
            1
        );
    }
}

// ========== 动画效果 ==========

// 动画 1: 下雨效果
void rainAnimation() {
    // 下移
    for(int z = 3; z > 0; z--) {
        memcpy(cube[z], cube[z-1], 16);
    }
    // 顶层随机生成
    for(int i = 0; i < 16; i++) {
        cube[0][i] = random(2);
    }
}

// 动画 2: 旋转立方体
void rotateCube() {
    static uint8_t angle = 0;
    angle++;
    
    memset(cube, 0sizeof(cube));
    
    // 绘制立方体边框
    for(int i = 0; i < 4; i++) {
        setPixel(i, 001);
        setPixel(i, 301);
        setPixel(0, i, 01);
        setPixel(3, i, 01);
        
        setPixel(i, 031);
        setPixel(i, 331);
        setPixel(0, i, 31);
        setPixel(3, i, 31);
        
        setPixel(00, i, 1);
        setPixel(30, i, 1);
        setPixel(03, i, 1);
        setPixel(33, i, 1);
    }
}

// 动画 3: 呼吸效果
void breatheEffect() {
    static uint8_t brightness = 0;
    static int8_t dir = 1;
    
    brightness += dir;
    if(brightness >= 100 || brightness == 0) dir = -dir;
    
    // 填充整个立方体
    for(int z = 0; z < 4; z++) {
        for(int i = 0; i < 16; i++) {
            cube[z][i] = (random(100) < brightness) ? 1 : 0;
        }
    }
}

// 动画 4: 螺旋上升
void spiralUp() {
    static uint8_t offset = 0;
    offset++;
    
    memset(cube, 0sizeof(cube));
    
    for(int z = 0; z < 4; z++) {
        uint8_t pos = (offset + z * 4) % 16;
        cube[z][pos] = 1;
    }
}

// ========== 主循环 ==========
void loop() {
    refreshDisplay();
    
    // 切换动画
    static unsigned long lastSwitch = 0;
    static uint8_t mode = 0;
    
    if(millis() - lastSwitch > 5000) {
        lastSwitch = millis();
        mode = (mode + 1) % 4;
        memset(cube, 0sizeof(cube));
    }
    
    switch(mode) {
        case 0rainAnimation(); break;
        case 1rotateCube(); break;
        case 2breatheEffect(); break;
        case 3spiralUp(); break;
    }
}

🔧 五、编译与烧录

5.1 编译项目

cd ~/projects/led-cube
pio run

5.2 烧录程序

# 使用 ST-Link 烧录
pio run --target upload

# 或手动烧录
st-flash write .pio/build/bluepill_f103c8/firmware.bin 0x08000000

5.3 串口调试

# 打开串口监视器
pio device monitor

# 或使用 screen
screen /dev/ttyUSB0 115200

🔬 六、调试技巧

6.1 逻辑分析仪调试

# 安装 PulseView(sigrok 图形界面)
sudo apt install pulseview
pulseview

连接逻辑分析仪到 PB3/PB4/PB5,观察 74HC595 时序是否正确。

6.2 常见问题排查

问题 可能原因 解决方法
LED 不亮 电源问题 检查 5V 供电
部分 LED 不亮 虚焊/极性反 重新焊接,检查方向
闪烁明显 扫描频率低 减少延时时间
亮度不够 电流太小 减小限流电阻到 150Ω
程序烧录失败 驱动问题 sudo usermod -aG dialout $USER

6.3 关键参数调整

// 刷新率调整(影响亮度和闪烁)
delayMicroseconds(2000);  // 减小→更亮但可能闪烁

// 扫描层数
for(int i = 0; i < 4; i++)  // 改为 8 可支持 8×8×8

🎨 七、更多动画效果

动画效果预览:

下雨效果      旋转立方体    呼吸效果      螺旋上升
  ●●●●        ┌───┐        ●●●●        ○○○○
  ● ● ●       │   │        ●  ●        ○  ○
  ●●●●        │   │        ●●●●        ○  ○
  ● ● ●       └───┘        ●  ●        ●●●●

7.1 文字显示

// 5×7 点阵字模示例
const uint8_t font_A[7] = {
    0b001000b010100b10001
    0b111110b100010b100010b10001
};

void showChar(char c) {
    // 根据字模绘制
}

7.2 音乐可视化

// 添加麦克风模块,读取音频信号
int audioLevel = analogRead(A0);

// 根据音量控制点亮高度
for(int z = 0; z < 4; z++) {
    if(z < audioLevel / 256) {
        setPlane(z, 0xFFFF);
    }
}

7.3 蓝牙/WiFi 控制

使用 ESP32 替代 STM32,添加手机 APP 控制功能。


📊 八、AI 辅助技巧

8.1 用 AI 生成代码

向 AI 提问示例:

"帮我写一个 STM32 控制 74HC595 的函数,
要求用 Arduino 框架,引脚 PB3/PB4/PB5"

8.2 用 AI 调试代码

把错误信息发给 AI:

"编译报错:'shiftOutData' was not declared in this scope
这是什么原因?"

8.3 用 AI 设计电路

"请帮我设计一个 4×4×4 光立方的电路原理图,
使用 STM32F103 和 74HC595"

📚 九、学习资源

9.1 视频教程

  • B 站搜索:"光立方制作教程"、"STM32 入门"
  • 立创学院:免费 EDA 课程

9.2 开源项目

  • GitHub: 搜索 "led-cube stm32"
  • Gitee: 国内镜像,下载更快

9.3 参考书籍

  • 《STM32 库开发实战指南》
  • 《KiCad 从入门到精通》

💡 十、进阶方向

  1. 8×8×8 光立方: 512 颗 LED,更细腻的效果
  2. RGB 光立方: 全彩显示,需要 3×64 路控制
  3. 音乐同步: 添加麦克风,实现音乐可视化
  4. 手机控制: 蓝牙/WiFi模块,APP 远程操控
  5. 语音控制: 集成语音识别模块

📝 总结

成品效果参考:

      ┌───────────────┐
      │   ● ● ● ●     │  ← 4×4×4 LED 阵列
      │   ● ● ● ●     │     64 颗 LED
      │   ● ● ● ●     │     多种动画效果
      │   ● ● ● ●     │
      └───────────────┘
          │ │ │ │
          └─┴─┴─┘
         STM32 控制板

通过这个项目,你将掌握:

✅ Linux 环境下 EDA 工具使用(KiCad) ✅ STM32 单片机开发(PlatformIO) ✅ 数字电路基础(74HC595、ULN2003) ✅ 嵌入式编程(C/C++、Arduino 框架) ✅ AI 辅助开发技巧

总成本不到 50 元,却能得到完整的硬件开发经验!


🙋 常见问题

Q: 没有 Linux 系统怎么办? A: 可以用虚拟机(VirtualBox)或 WSL2,教程同样适用。

Q: STM32 太难,能用 Arduino 吗? A: 可以!用 Arduino Nano 替代,代码几乎不用改。

Q: PCB 必须定制吗? A: 初期可以用洞洞板焊接,熟练后再定制 PCB。

Q: AI 生成的代码可靠吗? A: AI 辅助≠完全依赖,生成的代码需要理解和测试。


本文使用 AI 辅助创作,电路设计和代码均经过验证 硬件开源,欢迎fork 和 star

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 10:06:04 HTTP/2.0 GET : https://f.mffb.com.cn/a/482744.html
  2. 运行时间 : 0.100968s [ 吞吐率:9.90req/s ] 内存消耗:4,721.82kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9ca14b05b00b7a1bceeb2ec45a5e8800
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000547s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000935s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000347s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000305s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000663s ]
  6. SELECT * FROM `set` [ RunTime:0.000243s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000734s ]
  8. SELECT * FROM `article` WHERE `id` = 482744 LIMIT 1 [ RunTime:0.000547s ]
  9. UPDATE `article` SET `lasttime` = 1774577164 WHERE `id` = 482744 [ RunTime:0.018123s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.002765s ]
  11. SELECT * FROM `article` WHERE `id` < 482744 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000932s ]
  12. SELECT * FROM `article` WHERE `id` > 482744 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001387s ]
  13. SELECT * FROM `article` WHERE `id` < 482744 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001430s ]
  14. SELECT * FROM `article` WHERE `id` < 482744 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001422s ]
  15. SELECT * FROM `article` WHERE `id` < 482744 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001353s ]
0.102610s