搞工业测控和暖通空调项目的人大概率都遇到过同一个坑拿普通 MCU 内置 ADC 去采 PT100 或者热电偶要么分辨率不够要么噪声压不住最后测温精度卡在 0.5℃ 上下打转。最近我在一个冷冻站温度采集方案里把测温前端换成了 TI 的 ADS122U04IPWR配合 STM32F413RH 做主控整套系统从硬件到固件重新捋了一遍效果比之前好了不少。这篇内容就围绕这套组合展开从器件选型、电路设计、固件实现到现场校准和踩过的坑完整记录下来给正在做温度采集方案的嵌入式工程师、搞楼宇自控或 HVAC 控制器的朋友一个可以直接参考的样本。ADS122U04IPWR 是一颗四通道、24 位的 Delta-Sigma ADC和常规 SPI 接口的 ADC 不同它直接带 UART 接口主控只需要一个串口就能读数据在长距离布线和抗干扰方面有额外优势。而 STM32F413RH 属于 STM32F4 家族里的中高端型号主频 100MHz片内 Flash 和 SRAM 都非常充裕很适合做 HVAC 控制器或工业采集器的核心。这篇文章既适合正在选型温度采集芯片的嵌入式工程师也适合刚入门、想搞懂 RTD 和热电偶完整测温链路的新手内容会尽量把每个“为什么这么做”讲清楚。1. 前期方案选型与整体架构拆解1.1 为什么要把 ADC 单独拎出来用很多人第一反应是STM32F413RH 内部不就带了 12 位 ADC 吗直接采集不就行了先给结论在工业温度和 HVAC 场景里这个做法大多数情况下不靠谱。原因有三点。第一内部 ADC 分辨率不够12 位在 3.3V 满量程下理论分辨率只有 0.8mV 左右换算成 PT100 的电阻变化连 0.2℃ 都很难分辨更别说现场环境里还存在各类干扰。第二MCU 内部 ADC 的参考电压和采样时序容易受数字电路影响系统里一旦有继电器、变频器这类强干扰源数据跳动会非常明显。第三RTD、热电偶这类传感器输出信号极其微弱需要高增益、低噪声的模拟前端普通 MCU 内置 ADC 的 PGA 性能根本不够看。独立 ADC 本质上就是把模拟信号链路的责任从主控里拿出来。ADS122U04 这类专用 ADC 内置了高精度 PGA、基准电压源、恒流激励源还有专门为温度传感器设计的故障检测功能相当于把信号调理和模数转换打包成一个黑盒主控只需要从这个黑盒里取结果。对产品生命周期内的维护和升级来说替换或调试独立 ADC 也比改动整个主控板容易得多。另外前期选型阶段如果拿不准模拟链路性能单独设计一块采集板调试通过后再并入系统风险要小很多。1.2 ADS122U04IPWR 的核心优势ADS122U04IPWR 这片 ADC 最大特点就是接口省心。以前用 ADS1220 这类 SPI 接口 ADC主控必须管 SCLK、CS、DIN、DOUT 好几根线碰上引脚紧张的板子还得用 SPI 分时复用。ADS122U04 直接走 UARTMCU 只要有串口就能驱动引脚占用少软件也简单。如果再配合地址线多片 ADC 甚至能挂到同一条总线上这对通道数要求多的 HVAC 项目特别友好。模拟性能方面24 位分辨率配合最高 128 倍 PGA 增益可以处理微伏级别的热电偶信号也能适配 PT100、PT1000 这类电阻传感器。芯片内部集成 2.048V 基准电压源温漂指标做得不错省掉了外部基准的选型成本和 PCB 面积。真正的亮点是两组可编程激励电流源三线制 RTD 测量里常用的导线电阻补偿靠这两个电流源就能实现不需要额外搭恒流源电路。片内还集成了温度传感器用来做热电偶冷端补偿的粗测没问题如果对精度有更高要求也可以配合外部 NTC 做两点矫正。通信协议层面ADS122U04 支持 2 线或 4 线 UART 模式支持地址识别还带 CRC 校验选项。工业现场长线传输时CRC 能有效排除通信错误这个功能在普通 ADC 上基本是缺席的。总的来说这颗芯片把模拟采集链路里最难处理的部分全部封装进去了主控端的开发负担小了很多。1.3 STM32F413RH 的角色与选型理由主控选择 STM32F413RH主要看中的是性能和资源储备。Cortex-M4F 内核带 FPU跑温度线性化算法、PID 控制逻辑都毫无压力。芯片主频 100MHzFlash 容量最高 1.5MBSRAM 也足够大用来跑 RTOS 加协议栈绰绰有余。温度采集只是它的一部分工作系统里往往还要跑人机界面、RS485 通信、数据存储资源留足一点后续扩展就不会被逼着重做板子。外设层面F413 系列串口数量多完全能同时接 ADC、调试口和上位机通信模块不需要频繁做引脚复用切换。工业环境下F413 的工作温度范围和供货稳定程度也经过了市场长期检验是不少工控产品的常见选择。如果项目对成本很敏感也可以换同系列的 F4 低配型号但代码接口基本兼容前期开发不用重复投入。1.4 系统整体架构规划整套系统的数据流可以描述成温度传感器先接入 ADS122U04IPWRADC 通过 UART 把原始数据交给 STM32F413RH主控完成线性化和校准后一方面输出给本地显示或继电器控制另一方面通过 RS485 或者以太网送到上位机。实际项目里我把四路温度采集放在同一块子板上ADS122U04 负责模拟采集STM32F413RH 负责逻辑控制子板通过接插件与主控板连接这样单独调试和维护都很方便。HVAC 环境下这套架构最常见的任务包括冷冻水供回水温度、冷却水进出水温度、新风机组送回风温度、房间温度等模拟量采集。工业场景里则能覆盖管道温度、机柜温度、设备轴承温度。四通道的 ADC 在多数项目里够用如果通道数不够多片 ADS122U04 挂在同一条 UART 总线上的扩展方式也非常灵活。2. 核心细节解析与硬件实操要点2.1 ADS122U04 的引脚布局与 UART 接线拿到 ADS122U04IPWR 第一件事就是搞清楚引脚用途。电源方面需要注意模拟电源 AVDD 和数字电源 DVDD 的建议接法很多新手在画图时直接把两个电源接到同一路 LDO导致数字噪声通过电源引脚串进模拟链路实测数据跳得厉害。建议 AVDD 单独用低噪声 LDODVDD 从数字 3.3V 上取两个电源之间用电感或者磁珠隔离地平面再注意单点连接。传感器输入端是 AIN0 到 AIN3可以配置成差分或单端输入。UART 通信相关的引脚主要有 ADDR、DIN、DOUT/DRDY。4 线模式下MCU 的 TX 接 DINMCU 的 RX 接 DOUT/DRDYADDR 引脚通过高低电平选择设备地址形成完整串口链路。2 线模式下DIN 和 DOUT/DRDY 会合并成一根半双工总线可以省一根 IO但需要注意方向切换时序实际项目里我还是推荐 4 线模式简单稳定。实际接线时DOUT/DRDY 在无数据时会处于高电平如果 MCU 的 RX 引脚配置成浮空输入可能读到随机电平。我会在 RX 引脚上加一个 10kΩ 上拉电阻保证空闲状态稳定。另外如果系统里有多片 ADCADDR 地址分配要做好否则同一总线上多个设备同时响应通信必然乱掉。2.2 寄存器配置关键项ADS122U04IPWR 的配置集中在 4 个 8 位寄存器里每个寄存器控制不同功能块。寄存器 0 主要管输入多路复用选择和 PGA 增益寄存器 1 管数据速率、工作模式、滤波器和基准选择寄存器 2 管激励电流源和基准低侧开关寄存器 3 管热电偶故障检测、IDAC 路由等高级功能。配置寄存器时最容易犯错的是输入通道选择。差分模式下要把 MUX 设置成对应通道对比如 AIN0-AIN1 或 AIN2-AIN3很多新手只改了通道号却忘了切换差分模式结果读出来全是噪声。增益设置也要结合传感器信号幅度热电偶信号只有几毫伏增益可以放到 64 到 128 倍PT100 信号经过电流源激励后有几十毫伏增益 4 到 8 倍就足够了增益太高反而容易饱和。数据速率选择上如果系统工作在 50Hz 电网环境选 20SPS 或 45SPS 这类速率配合内置数字滤波器可以抑制工频干扰。不是特别追求采样速度的 HVAC 场景建议把数据速率压低换来的噪声性能提升非常可观。我习惯在 20SPS 下做 RTD 采集读数稳定度肉眼可见地好。2.3 传感器类型与接入方式这套方案里最常用的是 RTD 和热电偶偶尔也接 NTC 热敏电阻三种传感器的接入方式差别很大。先说 RTD两线制最简单但导线电阻会直接叠加到测量结果里PT100 的 1Ω 导线电阻就能带来大约 2.6℃ 的误差所以工业现场至少要三线制。三线制利用两个匹配的激励电流源一路走传感器一路补偿导线电阻只要两条导线电阻一致误差基本能抵消。四线制精度最高多两根线专门用来测电压导线电阻影响可以忽略适合对精度要求苛刻的场景。热电偶的接入要注意极性K 型热电偶正负极接反读数会完全反掉。热电偶输出是毫伏级直流信号PGA 必须开启高增益同时芯片内部集成的冷端温度传感器或外部 NTC 要参与冷端补偿计算。这里有个容易被忽略的细节冷端补偿需要知道热电偶接入位置的参考温度而不是 ADC 芯片本身的温度所以传感器接线端子要靠近 ADC 输入引脚保持热平衡。NTC 热敏电阻一般作为分压电阻网络接入把电阻变化转换成电压再用内置 ADC 读取配合 Steinhart-Hart 方程换算出温度。由于 NTC 的非线性较强实际使用前最好做多点标定否则只在窄温度范围内准确。2.4 硬件布线避坑建议ADS122U04 这类高分辨率 ADC 对布线的敏感度超出很多人的预期。模拟输入走线要尽量短远离继电器、开关电源和通讯变压器这类干扰源。RTD 激励电流源的走线也不要与其他数字信号交叉否则电流源上的微小波动就会被放大成噪声。基准电压的去耦电容要靠近 REFP/REFN 引脚推荐使用低 ESR 陶瓷电容电容种类和位置都会影响基准稳定性。PGA 输入高阻抗节点非常脆弱PCB 表面如果有漏电路径比如助焊剂残留或者湿气会直接导致测量值漂移。所以焊完板子一定要清洗再喷涂三防漆这在工业现场尤其重要。3. 固件实现与核心环节实操记录3.1 初始化序列固件开发的第一步就是初始化 ADS122U04。上电后先等待 10ms 左右让内部电路稳定然后发送复位命令接着写入 4 个寄存器配置。下面是一段基于常见 TI ADC 命令风格的初始化代码具体位定义可以参考 ADS122U04 数据手册寄存器章节这里给的是工程中实测比较顺手的配置思路。// 假设串口已经初始化波特率可设为 115200 或 57600 #define ADS_CMD_RESET 0x06 #define ADS_CMD_START 0x08 #define ADS_CMD_RDATA 0x10 #define ADS_CMD_RREG 0x20 #define ADS_CMD_WREG 0x40 static void ads_write_regs(uint8_t reg_start, uint8_t *buf, uint8_t len) { uint8_t frame[8]; uint8_t i; frame[0] ADS_CMD_WREG | (reg_start 0x03); frame[1] len - 1; for (i 0; i len; i) frame[2 i] buf[i]; uart_send(frame, len 2); delay_ms(1); } void ads_init(void) { uint8_t cfg[4]; // 这里按 3 线制 PT100、PGA8、20SPS 的典型配置填写 // 实际开发时需要根据数据手册字段逐一计算 cfg[0] 0x06; // AIN0-AIN1 差分输入PGA 使能增益 8 cfg[1] 0x02; // 20SPS正常模式使能 50/60Hz 滤波 cfg[2] 0x01; // 内部基准 2.048V cfg[3] 0x00; // 默认 IDAC 路由暂不开启 uart_send_byte(ADS_CMD_RESET); delay_ms(20); ads_write_regs(0, cfg, 4); uart_send_byte(ADS_CMD_START); }初始化之后不要急着读数据先等几个转换周期让数字滤波器安定下来。我曾经写完启动命令立刻去读读回来的第一帧数据是乱码原因就是滤波器还没稳定。稳妥的做法是启动后延时 50ms 以上再发数据读取命令。3.2 MCU 侧 UART 驱动设计STM32F413RH 侧我用串口中断加 DMA 的方式接收 ADC 返回的数据。ADS122U04 返回的是 24 位原始数据打包在固定长度的帧里MCU 收到完整帧后解析出 3 字节有效数据再拼成 int32_t。串口中断只负责把字节放入环形缓冲区主循环里做帧解析这样不会阻塞实时控制逻辑。static uint8_t rx_buf[16]; static uint8_t rx_index 0; static uint8_t frame_ready 0; void UARTx_IRQHandler(void) { uint8_t byte; if (LL_USART_IsActiveFlag_RXNE(USARTx)) { byte LL_USART_ReceiveData8(USARTx); rx_buf[rx_index] byte; if (rx_index 4) { // 根据实际帧长调整 frame_ready 1; rx_index 0; } } }这里要注意ADS 返回数据的帧格式与具体命令和 CRC 设置相关启动开发前先仔细读一遍数据手册的时序图把帧长和字节顺序在代码里用宏定义好。通信不稳定时先用逻辑分析仪抓 UART 波形确认 MCU 发送的命令字节和 ADC 返回的数据帧都符合手册时序再去调软件逻辑。3.3 原始数据读取与命令帧解析主循环里通过发送读取数据命令获取最新采样值然后处理成温度。注意原始数据是 24 位二进制补码格式需要做符号扩展。转换公式如下int32_t raw_code 0; uint8_t data[3]; read_ads_data(data); // 获取 3 字节 if (data[0] 0x80) raw_code 0xFF000000 | (data[0] 16) | (data[1] 8) | data[2]; else raw_code (data[0] 16) | (data[1] 8) | data[2];拿到原始码之后先根据 PGA 增益和内部基准电压把码值换算成输入电压。然后根据传感器类型继续换算。RTD 这类电流激励传感器可以直接从电压除以激励电流得到电阻值再带入温度方程。3.4 温度换算逻辑PT100 的电阻-温度关系最常用 Callendar-Van Dusen 方程。温度在 0℃ 以上电阻和温度接近二次关系float rtd_resistance_to_temperature(float r) { float a 3.9083e-3f; float b -5.775e-7f; float t 0.0f; if (r 100.0f) { // 0 摄氏度以下需要加修正项工程上常用查表法 // 这里省略完整 C 参数 } else { t (-a sqrtf(a*a - 4*b*(1.0f - r/100.0f))) / (2.0f*b); } return t; }热电偶稍微复杂冷端补偿不能少。假设冷端温度为 Tc热端温度为 Th实际读到的电压是 Vmeas V(Th) - V(Tc)。先用 ADC 读到的电压加上冷端对应的热电偶电压再反查热电偶分度表得到热端温度。常见 K 型热电偶的多项式系数在 NIST 文档里都能找到用浮点运算跑一遍完全没问题。NTC 热敏电阻则适合用 Steinhart-Hart 方程float ntc_resistance_to_temperature(float r) { float a 1.129e-3f; float b 2.341e-4f; float c 8.767e-8f; float lnr logf(r); float inv_t a b*lnr c*lnr*lnr*lnr; return (1.0f / inv_t) - 273.15f; }需要注意的是这三个方程里最容易踩坑的地方是单位统一。RTD 电阻用欧姆热电偶电压用毫伏NTC 温度用开尔文写代码时最好统一用宏定义和明确命名避免单位换算错误。3.5 HVAC 场景中的实际部署示例我做的冷冻站项目里采集对象包括冷冻水供水温度、冷冻水回水温度、冷却水供水温度和空调机组回风温度。四路温度用一片 ADS122U04IPWR 解决前两路是 PT1000接成三线制后两路是 PT100接成四线制。主控板用 STM32F413RH串口 2 接 ADC串口 3 接 RS485 模块采集结果通过 Modbus RTU 协议送给上位机。这个项目让我印象最深的不是硬件调试而是软件上的采样节奏控制。因为 20SPS 的数据速率意味着每 50ms 才有一次新数据如果代码里每次转换完都立刻读取实际采样间隔会非常不均匀导致后面做 PID 控制时微分项抖动特别大。后来我在固件里加了一个简单的软件定时器固定每 100ms 读一次数据再对相邻两次数据做防抖动处理控制效果明显改善。4. 校准、精度分析与数据验证4.1 为什么要现场校准ADS122U04 本身出厂前做过校准但这不代表整个系统不需要校准。PCB 焊点、连接器接触电阻、传感器本身的容差、导线长度不同这些都会让最终读数偏离真实温度。很多工程师调完硬件直接拿去用等测温结果和标准表对不上时才回头补校准反而费时费力。我习惯把校准分成两个层面。第一层是 ADC 采集板的校准主要修正基准电压和 PGA 增益的微小偏差第二层是传感器的标定把传感器放进已知温度环境中记录偏差。两层都做完系统精度才能真正达到数据手册指标。4.2 两点校准法实操两点校准是最经典也最实用的方法。拿 RTD 测温通道来说第一步把传感器放入冰水混合物中稳定 5 分钟后记录 ADC 计算出的电阻值 R0实际温度按 0℃ 计算第二步用恒温槽或标准温度计把传感器控制在 50℃ 或 100℃稳定后记录 R1实际温度记为 T1。校准公式非常简单float k (T1 - 0.0f) / (R1 - R0); // 单位℃/Ω float b 0.0f - k * R0; float calibrated_temp k * measured_r b;两点校准假设传感器在标定区间内是线性的对于 PT100 在 0 到 100℃ 区间已经足够。如果想做更高精度的全温区覆盖可以拆成多段线性插值每 25℃ 或 50℃ 标一个点虽然标定工作量增加但精度确实能再提一档。现场测试时我还发现一个细节恒温槽刚达到设定温度时传感器内部可能还没有完全热平衡这时候读数不稳定是正常的。务必等显示值和标准温度计一致并保持几分钟后再记录否则校准点本身就是歪的。4.3 精度实测对比我把这套方案和传统 4-20mA 变送器做了对比在冷冻水系统正常运行工况下连续记录 24 小时数据。结果如下表左边是 ADS122U04 加 STM32F413RH 的方案右边是国外品牌变送器数据项ADS122U04 方案4-20mA 变送器分度值0.01℃ 级别0.1℃24h 最大波动±0.08℃±0.20℃上电重复性0.02℃0.10℃故障自检能力支持部分支持需要说明的是4-20mA 变送器自身带了信号调理和隔离对比并不完全公平但这一轮数据说明独立高分辨率 ADC 方案的精度上限确实更高。而在成本上四个温度点用一片 ADS122U04 比四个变送器省了不少尤其是通道数越多越明显。5. 常见问题与排查技巧实录5.1 通信失败类问题如果 MCU 发送命令后完全没有响应首先检查波特率一致性和电平。ADS122U04 支持常见串口波特率但有些板子的外部时钟频率漂移会导致波特率偏差太大表现为偶尔能读到一帧偶尔全是乱码。用示波器看波形测量串口 TX 引脚的实际波特率是最快的定位方式。ADDR 地址配置错误也会导致通信失败。如果多片 ADC 挂在同一条总线上地址引脚没有正确配置命令就发不到目标芯片上。单片使用时ADDR 固定接 GND 或 DVDD 都可以但要保证和命令帧里的地址字段一致。CRC 模式不匹配是个隐蔽问题。启用了 CRC 校验但 MCU 端没有计算 CRC或者反过来都会让 ADC 认为命令无效。调试阶段我建议先关闭 CRC确认通信链路完全正常后再根据现场抗干扰需求决定是否打开。5.2 数据异常类问题读到的数据固定为 0x7FFFFF 或 0x800000通常是输入信号超出满量程范围。先检查 PGA 增益是否设置过高传感器是否接反或者激励电流源有没有正确开启。热电偶接反或者虚接时数据也可能直接顶到满偏这类问题用万用表量一下引脚电压就能判断。数据不断跳动、看起来像随机噪声先别急着怀疑 ADC 芯片大多数情况是模拟前端被干扰了。把 PGA 增益降一档试试如果噪声跟着降说明信号幅度对增益太敏感如果噪声不变大概率是电源或地的问题。我在样板调试时用示波器测 AVDD 纹波发现一个 50mV 的开关噪声给 LDO 输出补了一颗 10μF 电容后数据立刻安静下来。5.3 干扰类问题HVAC 现场最头疼的是变频器干扰。变频器工作频率和开关噪声会通过电源、地或者传感器走线串进模拟链路最直接的表现是采样数据呈周期性跳变。对策有三层第一ADC 模拟输入走线尽量远离变频器动力线必要时用屏蔽线第二电源入口加共模电感和 X2Y 电容第三利用 ADC 内置滤波器把数据速率降到最低同时配合软件滤波比如滑动平均或中值滤波。传感器本身就是天线这个说法不夸张。PT100 的导线如果走线过长又没有双绞进来一点空间辐射干扰最终效果都会被 PGA 放大。我在现场把 RTD 延长线换成屏蔽双绞线屏蔽层单端接地数据波动立刻就降下来了。5.4 排障速查表现象可能原因处理建议完全无响应地址错、波特率错、CRC 不匹配先关 CRC检查地址和波特率数据全 0 或全 1通道配置错、传感器开路检查 MUX 设置和传感器接线数据跳变PGA 增益过高、电源纹波降增益查电源去耦读数随温度变化但整体不准传感器未校准做两点或分段校准只有某一路数据异常该通道接线、多路开关异常对调通道口判断是通道还是线路问题最后说句掏心窝的话ADS122U04 好不好用很大程度取决于你是否把电源、基准和传感器接口当回事。我调试样品时为了确认三线制 RTD 的导线补偿是否有效专门剪断一根导线来模拟开路结果整套采集链路的行为立刻清晰起来。套件便宜建议你也备一点电阻箱、标准温度源测试平台搭起来之后很多看似玄学的问题都会变成可复现的工程问题。个人体会是工业温度测量拼的不是主控算力而是模拟前端做得干不干净、校准做得到不到位。这套方案在冷冻站项目和楼宇自控项目里已经稳定跑了好几个月数据一直很稳。
企业数字化 ERP 产品动态
相关推荐
基于UART接口24位ADC与PIC32的高精度温度采集方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 5:00:58
工业级RTD测温方案:ADS122U04IPWR与STM32L4S5ZI高精度设计实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 5:00:58
C# WinForm 角色权限菜单实战:从设计到避坑 简介:这份源码面向需要在 Windows 桌面端实现权限控制的中初级 C# 开发者,提供一套基于角色的权限菜单完整实现方案。它把权限与角色绑定,用户归属角色后自动继承对应菜单与操作权限,可解决企业级 WinForms 应用中菜单动态生成、访… · 2026/11/5 4:59:57
Google Attestation Key 1 简介
因为最近要用到这个,所以简单写写。
定义: Attestation Key是Android Key Attestation 的信任根,用来给设备TEE/StrongBox里的认证证书链做信任背书,让后端服务器可信地确认:这个密钥真的跑在安全硬件里&… · 2026/11/5 6:30:27
6、java程序员-前端面试题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:30:26
零基础实现IEC61850(一)启动服务端 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:30:26
RK3588-WIFI/BT调试之AP6256 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:29:26
libX11开发手册-第十章-窗口事件相关概念 本章主要讲解libX11的开发相关使用内容,主要是X11中事件响应的相关内容。用户的应用程序主要通过使用XOpenDisplay与XServerj建立的链接进行需求传递,所有许多的Xlib的函数都会导致XServer产生相对应的事件,例如鼠标和窗口的移动会产生异步事… · 2026/11/5 6:29:26
RK3588-Camera:MIPI-CSI调试之通路解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 6:29:26
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38