新闻详情

新闻详情

首页 / 资讯中心 / 详情

树莓派 Pico ADC 深度解析:硬件架构、寄存器与实战避坑

发布时间:2026/9/4 11:01:10来源:尧图网络
树莓派 Pico ADC 深度解析:硬件架构、寄存器与实战避坑
说实话我第一次用树莓派 Pico 做电池电压检测的时候被 ADC 的读数坑到怀疑人生万用表量出来 3.65VPico 读出来一会儿 3.52V、一会儿 3.78V换了个分压电阻网络又开始系统性偏低。那段时间我几乎把问题归咎于“Pico 的 ADC 就是垃圾”直到我把 RP2040 的 ADC 硬件架构和工作模式从头到尾翻了一遍才发现大部分问题根本不是芯片不行而是我没搞懂它的采样电路、寄存器行为和输入阻抗要求。这篇文章就从底层开始把树莓派 Pico 的 ADC 掰开揉碎讲清楚硬件架构、工作模式、关键寄存器、以及我实际项目中踩过的一堆坑。适合想认真用 Pico 做模拟量采集的人不管你是刚接触单片机还是已经从 STM32 转过来都可以从里面找到点东西。1. 从引脚焊盘到 ADC 数值RP2040 内部到底走了一条什么路1.1 数字引脚堆里的“异类”只有 5 个模拟输入通道树莓派 Pico 这块板子一共拉出来 40 个引脚但真正能当 ADC 输入用的没几个GPIO26、GPIO27、GPIO28、GPIO29外加一个内部温度传感器通道。换算一下就是 ADC0 到 ADC3 四个外部通道加上 ADC4 这个芯片内部的温度采集点。很多人在 Pico 上第一次接触 ADC 时会下意识觉得“MCU 的 ADC 引脚应该不少吧”结果一翻引脚图就懵了——怎么只有 4 个这其实是 RP2040 的定位决定的它本质上是一颗为嵌入式控制和接口设计而生的芯片不是混合信号处理器。它的 ADC 模块更像是“够用就好”的附加外设而不是主打卖点。GPIO29 这个引脚还有一个特殊任务它被直接连接到板载的 VSYS 检测分压网络上。也就是说你不用外接任何电路就能通过 ADC3 大致知道 USB 供电或电池电压的数值。这个设计在电池供电的小项目里非常实用后面我会专门讲分压比例和换算公式。1.2 SAR ADC 的原理卡在“逐次逼近”这四个字上RP2040 使用的是 12 位 SAR ADCSuccessive Approximation Register逐次逼近型模数转换器最高采样率约 500kSPS。SAR 这个名字看起来很学术但它的工作逻辑其实特别像小时候玩的“猜数字”游戏裁判心里想一个 0 到 4095 之间的数12 位 ADC 的满量程你每猜一次裁判只告诉你“高了”还是“低了”。SAR ADC 不是随机乱猜它每次都从中间值开始猜先猜 2048如果高了就往下半区继续二分如果低了就往上半区走。这么猜 12 次就能精确定位到目标值。这 12 次“猜数字”就是 12 位分辨率的核心过程每次猜测都需要一个比较器输出“高了/低了”的判断结果。所以 SAR ADC 的两个关键动作是采样保持把某一时刻的外部电压“冻结”住和逐次比较通过二分法逼近真实电压。它不像流水线 ADC 那样吞吐量极高也不像 Delta-Sigma ADC 那样可以用过采样换取高精度但在“中等速度 中等精度 低功耗 容易集成”这个平衡点上SAR 几乎是无敌的选择。这也是为什么绝大多数 MCU 片内 ADC 都选 SAR 架构。1.3 采样保持电路与输入阻抗被忽视的第一个坑SAR ADC 前面必然有一个采样保持电路这一点对使用体验影响巨大。简单说ADC 在开始转换之前要先让内部的一个采样电容充电电容上的电压达到外部输入电压之后开关断开后面 12 次比较全部基于这个“冻结”的电压进行。问题来了采样电容充电是需要时间的。如果外部信号源的内阻太大充电就会很慢还没充满开关就断开了转换出来的数值自然偏低。这就是为什么很多人在 ADC 输入前面串一个大电阻或者用大阻值分压网络时读数会出现明显的系统误差。内部采样电容的容值很小但在高速采样时等效输入阻抗仍然不能忽略。官方数据手册没有给出特别具体的输入阻抗指标但按同类 SAR ADC 的经验外部信号源等效电阻在几十千欧以下比较稳妥。如果信号源阻抗太高要么用运放做电压跟随器缓冲要么降低 ADC 采样速率给采样电容留更多充电时间要么干脆改用低阻值的分压网络。这是所有 Pico ADC 项目里最容易被忽略、又最影响精度的坑之一。2. 决定“何时转换”的三套模式单次、自由运行与多通道轮询的取舍2.1 单次转换像按一次快门Pico ADC 最基础的工作模式就是单次转换你给硬件一个 START 信号它采样、转换把结果放进 RESULT 寄存器然后停下来等你来取。这个过程非常像按一次相机快门——按下去等它咔嚓完取走照片。实际操作时的寄存器流程大概是这样#include hardware/regs/adc.h #include hardware/structs/adc.h // 使能 ADC选择通道 0GPIO26 adc_hw-cs ADC_CS_EN_BITS | (0u ADC_CS_AINSEL_LSB); // 触发一次启动 adc_hw-cs | ADC_CS_START_BITS; // 等待转换完成READY 位会指示状态 while (!(adc_hw-cs ADC_CS_READY_BITS)) { tight_loop_contents(); } // 读取结果低 12 位有效 uint16_t raw (uint16_t)(adc_hw-result 0xFFFu);这种模式最大的优点是逻辑简单、可控性强。你想什么时候采就什么时候采想采哪个通道就在 AINSEL 字段里写哪个通道。缺点是每次启动、等待、读取的过程中 CPU 都在空转如果系统里还跑着其他实时任务这种阻塞式采样很容易拖后腿。所以单次转换适合低频采集比如每秒读几次电池电压、读几次电位器位置、读几次按键分压。这种场景下转换本身只占极少的时间比例阻塞一下完全无所谓。2.2 自由运行模式把转换交给硬件轮子如果你需要周期性连续采样比如做波形采集、音频分析、持续性的滑动平均滤波那么单次转换模式会把你折腾疯。Pico 的 ADC 支持自由运行Free-Running模式启动之后硬件会自己不停地采样、转换、把结果塞进 FIFO完全不需要 CPU 一条一条指令去指挥。SDK 里开启自由运行模式非常简单// 使能 ADC选择通道 1GPIO27 adc_init(); adc_gpio_init(27); adc_select_input(1); // 配置 FIFO启用 FIFO、每读一次清空一个数据、数据带通道号 adc_fifo_setup(true, true, 1, false, false); // 开始连续转换 adc_run(true);之后的结果可以轮询 FIFO 读取也可以等中断触发后再批量搬走。自由运行模式下采样率由 ADC 时钟和分频器共同决定后面我会单独给计算思路。这种模式的核心价值在于把“何时采样”这个重复性劳动完全交给硬件CPU 只负责在数据准备好了之后来取走。特别是配合 DMA 使用时可以实现“ADC 采样 - FIFO 积累 - DMA 搬运到内存 - CPU 一次性处理一批数据”的全自动流水线这是高效采集系统的常用形态。2.3 多通道轮询RROBIN 并不是真并行Pico 的 ADC 还有一个容易让人误解的功能硬件轮询模式对应寄存器里的 RROBIN 字段。看起来好像可以“同时采集多个通道”其实它做的只是让硬件在多个通道之间来回切换轮流转换。也就是说1 个 ADC 还是那个 1 个 ADC同一个时刻它依然只能采一路信号。RROBIN 做的事情只是帮你免去了“手动切通道”的麻烦你在 8 位位图里把需要轮询的通道置 1然后启动自由运行模式硬件就会按顺序从低到高循环对这几个通道执行采样转换。这里有一个关键细节因为多个通道共用同一个 ADC 和同一个 FIFO你读到 FIFO 里的数据时必须知道当前这个数据到底是哪个通道的。解决方法有两个一是配合 adc_fifo_setup(true, true, ...) 把通道号也一并写入 FIFO每个数据项的高 4 位会带一个通道 ID你看看最高位就能区分二是严格按“等一个完整轮询周期”再去取数据靠时序来保证通道和数据对应。实际项目里我更推荐第一种方式因为带通道号的数据自带“身份证”处理起来更省心。2.4 采样周期与时钟分频的量化计算聊采样率之前先把数字说清楚RP2040 的 ADC 时钟源来自外设时钟最高可以跑到 48MHz而完成一次 12 位转换需要 96 个 ADC 时钟周期。理论上 48MHz / 96 就是 500kSPS也就是官方标称的最高采样率。如果你不需要这么高的采样率比如电池检测只需要 1kSPS可以通过 DIV 寄存器或 SDK 的 adc_set_clkdiv() 来降低有效转换速率。大概的换算关系是转换速率 f_adc / (96 × clkdiv)比如 f_adc 48MHzclkdiv 47那么转换速率大约是 48e6 / (96 × 47) ≈ 10.6kSPS。这个量级对大多数传感器采集已经绰绰有余。我在实际测量时发现过高的采样率配合轮询读取很容易把 CPU 的大量时间耗在等待和搬运数据上。更合理的做法是把采样率定在“满足信号带宽要求”的前提下尽量低然后配合 FIFO 和 DMA 攒一批数据再处理。比如要监测 50Hz 的市电波形采样率定在 1kSPS 就足够画出不错的正弦波了没必要顶着 500kSPS 的极限跑。3. 寄存器逻辑不复杂把 CS、RESULT、FIFO、DIV 串起来看3.1 寄存器地图0x4004C000 开始的一个小院子RP2040 的 ADC 外设寄存器不多加起来也就十几个但在排查问题时每一个都可能是关键。ADC 模块的基地址是 0x4004C000常用的几个寄存器偏移和用途如下偏移寄存器作用0x00CS控制寄存器使能、启动、通道选择、轮询配置、错误状态0x04RESULT最近一次单次转换的 12 位结果0x08FIFO读取结果队列带通道号、错误标志、有效标志0x0CDIV采样时钟分频用于调节转换速率0x10~0x1CINTR/INTE/INTF/INTS中断请求、使能、强制、状态寄存器0x20CAL校准值寄存器如果你在别的项目里玩过 STM32会发现 Pico 的寄存器模型比 STM32 的 ADC 外设精简得多。这种精简既是好事也是坏事好事是学习曲线低一个小时能摸透坏事是灵活性确实差点没有注入组、规则组、多 ADC 交叉模式这些高级玩法。但就大多数应用来说这几个寄存器完全够用。3.2 CS 寄存器一个字段就是一条策略CSControl and Status寄存器是整个 ADC 模块的“大脑”。它的核心字段包括ENADC 使能位。你要先把它置 1整个模块才开始工作。START写 1 触发一次单次转换或者配合自由运行模式启动连续转换。AINSEL通道选择字段。写 0 到 3 对应 ADC0 到 ADC3写 4 对应内部温度传感器。RROBIN轮询使能位图。每个 bit 对应一个通道置 1 的通道会被循环采样。READY转换完成标志位。轮询这个位可以判断结果是否新鲜。ERR_STICKY、ERR_OVER、ERR_UNDERFIFO 相关的错误状态位。我调试时最常用的组合是先看 ERR_OVER 有没有置位如果置了就说明 FIFO 来不急读导致数据被覆盖了这时候不是程序逻辑问题而是读取速度跟不上采样速度要么调低采样率要么引入 DMA。这个东西不看寄存器很难定位因为你读到的数据只是“看起来有点奇怪”并不知道是覆盖导致的丢失。3.3 RESULT 与 FIFO数据怎么取才不丢RESULT 寄存器保存的是单次转换的结果低 12 位有效范围是 0~4095。自由运行模式下转换结果会进入 FIFOFirst In First Out你可以把它理解成一个自动排队的结果缓冲区。FIFO 的好处是给 CPU 留出了响应时间即使 CPU 正在忙别的事转换完的数据也能先排队等着不会立刻丢。但从 FIFO 取数据时有个细节你必须通过 FIFO 寄存器地址来读取而不是读 RESULT。因为自由运行模式下一旦启动硬件会持续把结果往 FIFO 里塞RESULT 寄存器存的只是“最近一次”的数值而 FIFO 里才是完整的序列。如果你在连续模式下只读 RESULT大概率会漏掉大量中间值拿到一堆“重复的最新值”。读取 FIFO 时还要注意 FIFO 寄存器里的 VALID 标志这个标志指示你当前读到的这个 32 位数据是否有效。我见过不少人在 FIFO 读数据时没检查 VALID结果在硬件还没准备好时读到一堆垃圾值。稳妥的读法是用这个循环uint16_t sample; while (adc_fifo_get_level() 0) { // 队首数据从 FIFO 读出32 位低 12 位是采样值 uint32_t fifo_data adc_hw-fifo; if (fifo_data ADC_FIFO_VALID_BITS) { sample (uint16_t)(fifo_data 0xFFFu); // 这里处理你的数据 } }这些“细枝末节”在 SDK 封装好的 adc_read() 函数里是感受不到的但一旦你要做高速连续采集、要接 DMA就必须对这些逻辑有清晰认识。3.4 中断与 DMA退出轮询循环的正确姿势前面提到的轮询方式适合低频采集但在自由运行 高采样率场景下CPU 如果一直轮询 FIFO 等级基本就别想干别的了。Pico 的 ADC 外设支持中断而且可以和 DMA 直接联动。中断模式下你可以让 FIFO 达到一定深度后触发 IRQ然后 CPU 在中断服务函数里一次性把一批数据读走。常用配置是每积累 4 个或者 8 个样本触发一次这样 CPU 处理中断的频率降下来了数据吞吐率还能保持。更高端一点的做法是 DMA配置 DMA 把 ADC FIFO 的数据直接搬到内存缓冲区搬运完成后再触发 DMA 中断CPU 只需要处理一整块完整的数据。这种方案对音频采集、波形记录、长时间趋势监测非常友好。我自己做电化学信号记录时就是这么干的ADC 自由运行 FIFO DMA 双缓冲一次搬几千个样本CPU 只在缓冲区“半满”或“全满”时交换内存指针基本上把采集系统的 CPU 占用降到了可以忽略的水平。4. 实战避坑清单从校准、输入阻抗到多引脚切换的真实返工记录4.1 电池电压检测分压电阻把信号拉没了很多人的 Pico 入门项目都有电池电压检测我第一个翻车的项目也是。当时想测一节 3.7V 锂电池自己搭了一个 100k 100k 的分压网络把电压压到 1.85V 左右送进 ADC结果读数明显偏低而且越接近满电偏差越大。问题就出在分压网络的等效输出阻抗上。两个 100k 电阻并联从中间抽头看进去的等效源阻抗约等于 50kΩ。这类高阻抗信号源去驱动 SAR ADC 内部的采样电容充电时间常数偏大在采样窗口内根本充不满。充电充不满比较器比较的基准电压就会偏低转换出来的数值自然偏小。解决思路有几个方向降低分压电阻阻值。比如改成 10k 10k等效源阻抗变成 5kΩ采样电容的充电时间大大缩短。代价是分压网络本身的静态功耗从几十微安涨到几百微安在电池供电项目里也要权衡。加一级运放电压跟随器。用单运放把高阻分压网络的信号转成低阻信号源再接 ADC这是最“治本”的方法。缺点是增加成本和外围元件。降低 ADC 采样速率给采样电容更多充电时间。Pico ADC 的采样窗口不是完全不可调的把 clkdiv 调大一些相当于延长了每个采样周期的时间充电更充分。这个办法在慢速采样场景比较有效。实际项目里我的选择是低速电池监测用 100k 分压但配合降低采样速率和软件校准需要动态响应的信号则全部上运放跟随。4.2 单 ADC 引脚识别 4 个按键阈值区间设计热搜里有个“单 ADC 引脚检测 4 键组合”的需求我也在遥控器项目里试过。思路是利用一个 ADC 引脚配合不同阻值的分压网络让每个按键按下时该引脚产生不同的电压依次对应 0、1、2、3 或者更多档位然后通过阈值区间判断是哪个按键。比如四个按键分别连接到 GND、1/4、1/2、3/4 分压点的方案通过 ADC 读到的电压近似分到四个区间。设计阈值时不能简单用 0/1024/2048/3072 这种理想边界因为电阻精度、电源波动、接触电阻都会把电压带偏。我在代码里一般这样判断#define KEY_NONE 0 #define KEY_A 1 #define KEY_B 2 #define KEY_C 3 #define KEY_D 4 int decode_key(uint16_t adc_val) { if (adc_val 128) return KEY_A; if (adc_val 640) return KEY_B; // 约 1/6 到 5/6 之间留足余量 if (adc_val 1280) return KEY_C; if (adc_val 2300) return KEY_D; return KEY_NONE; }这个设计要特别注意按键组合的情况。单 ADC 引脚理论上只能稳定区分有限档位如果任意两个按键同时按下分压网络会被并联短路产生一个预料之外的电压落在任意区间很容易误判。如果真有 16 种组合识别需求建议要么改成并行 GPIO 读取要么用串联电阻网络设计编码同时配合软件去抖和连续多次采样一致才确认。4.3 舵机角度反馈采样率够但噪声是另一回事热搜词里不少人在搜“树莓派 pico 控制舵机”舵机控制本身主要是 PWM 的活但如果你想做舵机位置的闭环控制就少不了用 ADC 读舵机内部的反馈电位器电压。这时候 Pico 的 500kSPS 上限对舵机这种低速对象来说完全够用真正的敌人是电机引入的电源噪声。舵机转动时电机换向会产生很大的电流尖峰如果电源和模拟电路共地这些噪声会直接出现在 ADC 输入上。我的实测现象是舵机停稳时ADC 读数非常稳定舵机一转读数就上下跳动。解决方式有两层硬件层面在舵机电源和 MCU 电源之间加足够的去耦电容甚至用独立的 LDO 给 MCU 供电软件层面连续采样多次取中位数或平均值把瞬时毛刺滤掉。这里特别提醒做舵机角度闭环时滤波会引入明显的相位延迟如果 PID 参数调得太激进很容易因为延迟产生震荡。所以我一般会在“读数平滑”和“响应速度”之间找一个平衡点比如中值窗口取 5 到 9 点滑动平均窗口取 8 到 16 点而不是无脑堆窗口长度。4.4 滤波函数不能乱用中值 滑动平均的组合很多人在键盘上敲了一行看似合理的滤波代码但用起来效果很差。我踩过几次坑之后的经验是不要把滤波逻辑一概而论根据噪声类型选不同滤波器。如果噪声是偶发的尖峰脉冲比如电机换向导致的毛刺那么滑动平均会被这个尖峰拉偏反而是中值滤波能干净利落地把它剔除。如果噪声是随机的白噪声离散采样点围绕真值上下波动那么滑动平均更合适通过多次累加抵消随机扰动。所以我平时最常用的是组合式滤波先取 N 个样本做一次中值滤波把明显的离群值干掉再把中值的结果送入滑动平均平滑剩余随机噪声。这段代码可以当模板直接用#define FILTER_SIZE 7 uint16_t adc_filtered_read(void) { uint16_t buf[FILTER_SIZE]; uint32_t sum 0; // 连续采样 for (int i 0; i FILTER_SIZE; i) { buf[i] adc_read(); // SDK 提供的单次读取 } // 冒泡排序取中值 for (int i 0; i FILTER_SIZE - 1; i) { for (int j i 1; j FILTER_SIZE; j) { if (buf[i] buf[j]) { uint16_t t buf[i]; buf[i] buf[j]; buf[j] t; } } } uint16_t median buf[FILTER_SIZE / 2]; // 对中值做滑动平均 static uint16_t history[4] {0}; static int idx 0; history[idx] median; idx (idx 1) % 4; for (int i 0; i 4; i) { sum history[i]; } return (uint16_t)(sum / 4); }代码本身不复杂关键是理解每个环节存在的理由。中值滤波负责“剔除离群值”滑动平均负责“压平高频抖动”。组合起来几乎覆盖了传感器采集里最常见的两类噪声场景。4.5 参考电压不是精密基准默认 3.3V 会飘Pico ADC 的默认参考电压是 3.3V也就是芯片的数字供电 AVDD。听起来没问题但 AVDD 是由板载 LDO 或 USB 电源决定的它不是精密基准源。当系统负载变化、电源波动或者温度漂移时这个参考电压本身就会变化ADC 的绝对测量精度也会跟着波动。如果你只是做“相对测量”比如读电位器位置、判断按键档位那默认参考就够用了。但如果你要测的是精确电压比如检测锂电池充电曲线单纯依赖 Pico ADC 精度可能不够。RP2040 把 ADC_VREF 引脚单独引出来了可以外接精密的 3.0V 或 3.3V 基准电压源把 ADC 的参考从易波动的电源域上“摘”出来。接外部基准时还要把 ADC 输入信号的范围相应地调整到 0~VREF 之间不要让输入电压高过参考电压。总的来说Pico 片内 ADC 做“趋势监测、相对判断、中等精度测量”完全没问题但如果你追求 16 位甚至更高精度的绝对电压测量还是老老实实外挂一颗专用 ADC 芯片更稳妥比如 ADS1115 这类自带 PGA 和精密基准的 I2C ADC省心得多。4.6 GPIO 快速翻转会引起 ADC 读数扰动这个坑在官方文档里只算 errata 级别的问题但实际影响很真实当你高速翻转某个 GPIO 引脚时相邻的 ADC 转换结果可能出现规律性偏差。我在调一个同时跑着 LED 呼吸灯采样和 ADC 数据采集的项目时发现 ADC 读数会伴随 PWM 波形出现周期性抖动最初还以为输入信号有问题。原因说穿了也不复杂GPIO 快速翻转时I/O 驱动器会从电源轨吸取瞬态电流在芯片内部地回路上产生压降而 ADC 的参考电压和地都是从同一组电源轨得到的这些微小波动最终会串进转换结果。处理方式有这么几种采样时刻和 GPIO 翻转错开。如果翻转是 PWM 驱动的 LED可以只在 PWM 周期的固定相位采样。给 ADC 输入加 RC 低通滤波把高频干扰提前滤掉一部分。增加采样次数靠统计滤波把周期性扰动平均掉。以我个人的习惯最优先的做法永远是“错峰采样”因为它从根源上避开了干扰而不是事后修补。4.7 校准时记住读 0 读 4095 都得验证最后再说一个返工率最高的环节校准。很多人拿到板子直接 adc_read()认为读数就是“正确”的但实际使用前应该做两个最基本的验证把 ADC 输入接到 GND看读数是不是 0 或接近 0把 ADC 输入接到 3.3V看读数是不是 4095 或接近 4095。这两个点只要有一个不对后面的所有测量值换算都不可信。比如接地后读数是 3、4、5 这种小数值通常可以接受但如果接地读数出现几十甚至上百就要怀疑参考电压、输入接线或者分压网络有没有问题。如果 3.3V 输入只能读到 3800 左右要么是参考电压偏高要么是信号源阻抗偏大要么是电源本身就不准。我在给 Pico 做传感器采集模板时会专门写一个自检函数上电后依次对 GND 和 VREF 测量并记录基准值后续所有测量都基于这两个基准点做线性校正。虽然不能把 SAR ADC 变成仪表级 ADC但至少能把电源波动、分压电阻误差这些系统偏差抵消掉一大部分。最后一层经验文章写了这么多其实核心就一句话Pico 的 ADC 不是不能用而是你必须理解它的脾气。信号源阻抗别太大、采样速率别盲目拉满、参考电压别当精密基准用、连续采集一定要配 FIFO/DMA、上电先做基准校验。这几条做到位它足以应付绝大多数嵌入式模拟量采集需求。如果你看完还是觉得内置 ADC 满足不了精度要求那也不用纠结直接外挂独立 ADC 方案就好。但如果你真的想把手上的 Pico 用明白我建议你花一晚上时间拿万用表对着几个通道做一次输入输出线性测试亲手记录一下读数和真值的关系。那个结果大概会比任何文档都更让你印象深刻。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Sunshine 自托管游戏串流:把家用 PC 变成低延迟云游戏主机的 6 个关键选择 2026/9/4 11:55:34

Sunshine 自托管游戏串流:把家用 PC 变成低延迟云游戏主机的 6 个关键选择

Sunshine 自托管游戏串流:把家用 PC 变成低延迟云游戏主机的 6 个关键选择 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 周五晚上想在大屏上打 3A,但你的…

阅读更多 →
光通信产业链深度解析:从AI算力需求到创业板投资逻辑 2026/9/4 11:55:34

光通信产业链深度解析:从AI算力需求到创业板投资逻辑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SpringBoot+Vue电商系统全栈开发:从架构设计到部署实战 2026/9/4 11:55:34

SpringBoot+Vue电商系统全栈开发:从架构设计到部署实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
从搜索到TPU:Google如何通过软硬件协同设计突破AI推理瓶颈 2026/9/4 11:55:34

从搜索到TPU:Google如何通过软硬件协同设计突破AI推理瓶颈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于SpringBoot3+Vue3的运动户外交易小程序全栈开发实战 2026/9/4 11:55:34

基于SpringBoot3+Vue3的运动户外交易小程序全栈开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
教育学专业文献综述怎么写?2026年AI生成文献综述的正确打开方式 2026/9/4 11:52:33

教育学专业文献综述怎么写?2026年AI生成文献综述的正确打开方式

教育学的文献综述有学科特殊性:理论流派多、政策文献重、国内外研究差异大,还要在梳理之后写出「述评」指出研究缺口。很多教育学研究生的综述被导师批「像文献清单,没有自己的判断」。2026年AI生成文献综述已经很普及,但多数同学…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞