做温度测量的人多多少少都遇到过这样的问题热电偶信号只有微伏级别普通ADC根本读不出有效值而高精度ADC往往只有SPI接口传感器线一拉长时钟线和片选线就成了天线信号脏得没法看。我去年做的一套温控采集设备正好用了TI的ADS122U04IPWR——一颗带UART接口的24位Delta-Sigma ADC搭配STM32F101ZG做主控同时覆盖工业和HVAC环境里的温度测量需求。这篇文章把这个项目的完整设计拆开讲从为什么选这颗芯片到硬件接法、UART协议调通、温度换算与校准再到现场踩过的坑尽量写成一份可以照着做的记录。1. 这套方案解决什么问题先把需求和选型说透1.1 为什么是24位ADC为什么偏偏带UART热电偶这类传感器输出的信号天生就小。K型热电偶大约40µV/°C如果要求分辨率做到0.1°C采样前端至少要能分辨4µV级别的电压变化。普通单片机内置的12位ADC在3.3V供电下LSB大概是0.8mV拿来测热电偶基本等于拿米尺量头发丝完全不够用。所以高精度温度采集第一道门槛就是ADC的分辨率必须上去。ADS122U04IPWR属于TI的ADS122U系列核心指标是24位分辨率内部集成了可编程增益放大器PGA、低温漂参考电压、温度传感器和两个可编程激励电流源IDAC。一颗芯片基本把模拟前端需要的所有东西都装进去了。我在工业现场还经常遇到一个棘手问题控制器和传感器之间的距离可能隔着几米甚至几十米。SPI接口在这种场景下很吃亏SCLK要在长线上高速翻转EMC稍微一差就丢数据而且多一根线多一个故障点。ADS122U04的UART接口就友好很多串口线标准、调试方便现场还能直接桥接成RS485。你可能想问市面上带UART的高精度ADC不止这一款为什么是它我的理由有三条一是24位加PGA的配置在同类产品里性价比很高二是内部自带14bit温度传感器可以配合热电偶做冷端补偿省掉外部温度芯片三是供电范围宽2.3V到5.5V都能工作现场电源环境再怎么折腾也能兜住。1.2 STM32F101ZG在这套系统里扮演的角色STM32F101ZG是ST的一款Cortex-M3内核MCU144脚封装512KB Flash外设数量相当充足。在这个项目里它的工作非常明确负责通过USART与ADS122U04通信发出配置命令、读取转换结果然后完成温度换算对外提供Modbus协议的数据输出同时执行简单的逻辑判断和报警联动。选择F101ZG而不是F103系列是因为这个项目不需要USB不需要CAN也不需要太高的主频但需要足够多的UART和GPIO。F101ZG有5个USART一路接ADS122U04一路接外部的RS485通信模块还有一路做调试输出资源冗余得很舒服。实际跑下来主频虽然不高但处理24位数据的解析和温度线性化计算绰绰有余整机功耗也压得住。在工业设备里够用和稳定比堆料重要得多。1.3 工业和HVAC温度测量的两套需求逻辑工业场合和HVAC场合对温度测量的要求表面上看起来不一样骨子里其实是一回事。工业上要面对高温、振动、变频器干扰和长距离布线测温对象可能是锅炉排烟、压缩机的排气温度和过程管路的介质温度精度和可靠性排第一。HVAC领域要面对的是冷冻水进出水温度、风管送风温度、室内环境温度这种低中温区间的测量点数多、位置分散、成本敏感但长期稳定性同样关键。ADS122U04加STM32F101ZG这套组合能同时覆盖两套需求关键在于灵活性。ADC通道、增益、数据速率、激励电流都可配置做不同传感器时改配置就行STM32侧的程序结构天然支持多通道轮询配合RS485总线可以把几十个采集点串起来挂到上位机。我在同一个硬件平台上做过两版固件一版面向工业过程控制一版面向HVAC楼宇自控核心采集代码完全复用。这种复用性是项目能快速落地的重要原因。2. 硬件链路设计与关键连接2.1 传感器选型热电偶、RTD、NTC到底上哪个做温度采集第一个要决定的是传感器类型。这不是拍脑袋选的而是由量程、精度、成本和现场环境共同决定的。项目里常用的三类传感器我对各自的定位是这样看的。传感器类型测量范围灵敏度特征典型精度成本推荐场景热电偶-200°C ~ 1370°C微伏级约40µV/°C±1 ~ 2°C低高温管道、排烟、压缩机排气PT100/PT1000-200°C ~ 850°C约0.385Ω/°C±0.1 ~ 0.3°C中冷冻水、工艺介质、设备绕组NTC热敏电阻-40°C ~ 150°C阻值变化率约4%/°C中等需标定很低风管温度、室内温度、柜内温度实际选型时我会先划量程再谈精度。排烟温度三五百摄氏度NTC和PT100都扛不住只能上热电偶冷冻水管里的水温热电偶精度又不够PT100更合适风管里的环境温度要求不高且成本敏感NTC最划算。ADS122U04的好处是这三样都能接因为它既有高增益PGA处理热电偶的微伏信号也有IDAC电流源做RTD和NTC的激励。一个硬件平台三种传感器通吃库房里的备件种类也能少一些。2.2 ADS122U04的典型接法差分输入、PGA与IDAC激励热电偶的接法相对简单信号直接进ADC的差分输入即可。K型热电偶正极接到AIN0负极接到AIN1PGA增益设成64或128。因为热电偶信号本身是微伏级只有把增益拉高噪声地板才能压到足够低。这里有个容易忽略的细节热电偶线缆的屏蔽层必须单点接地否则屏蔽层两端都接地会形成地环路工频干扰全灌进ADC输入高增益反而把干扰也放大了。这个问题我在现场吃过亏后面详细说。RTD的接法要讲究得多。PT100的电阻变化很小导线本身的电阻就会引入误差。我用的是三线制比例测量方案两个IDAC电流源分别从RTD两端注入电流电流回路里串联两颗等值精密参考电阻REFP和REFN跨接在参考电阻两端产生参考电压。ADC测量的其实是RTD两端电压和参考电压的比值。这样设计的好处很直观激励电流的漂移、电源电压的波动在分子和分母里同时出现、互相抵消三根线中两根导线的电阻压降也通过差分输入被抑制掉。现场电源再闹腾读数照样稳得住。NTC的接法更简单IDAC电流流过NTC产生电压ADC读电压再用公式换算回电阻、查表得温度。NTC的阻值温度特性是非线性的但因为成本低HVAC项目里大量使用。接NTC时要注意自热误差激励电流别太大一般100µA以下就够电流过大NTC自身发热会把温度测高。2.3 电源、参考电压与PCB Layout的避坑记录ADS122U04的电源设计值得多说几句。我的板子上AVDD和DVDD都是3.3V但没有直接并在一起而是从主电源分出两路每一路都加了磁珠和一节LC滤波。ADC的精妙度再高电源纹波一大转换结果全是毛刺。模拟地和数字地在ADC芯片下方单点连接不要让数字信号线穿过模拟区域。这些属于基本功但基本功做不好后面全是坑。参考电压是决定精度的另一道命门。ADS122U04集成了内部参考我一般直接用2.048V这一档外部不再加参考芯片。对大多数工业采集需求来说内部参考的温度漂移已经足够好而且少一个器件就少一个失效点。如果项目要求全温度范围的高精度可以考虑外部精密参考源但板子成本和面积都会涨没必要的话不推荐。还有一个很多人不注意的点ADS122U04周边的地不要铺得太碎。模拟区域的地平面要保持完整RTD的激励电流回路和信号回路尽量靠近缩小回路面积能显著降低EMC风险。我第一次画板时为了走线方便把地铜皮挖了一块结果噪声比预期大了好几倍后来重新铺了完整地平面才解决。3. UART通信打通ADS122U04的寄存器读写与STM32驱动3.1 ADS122U04的串口命令机制ADS122U04的通信协议是典型的主从式MCU做主机芯片做从机所有交互都由主机发起。芯片上电后先复位然后通过寄存器写命令配置工作参数之后就可以循环发RDATA命令读取最新的24位转换结果。命令和数据都是标准的8位字节流没有特殊编码要求这对STM32来说非常友好。我在工程里把命令封装成了几个基础函数逻辑很清晰。上电后先发送复位命令等芯片内部稳定然后依次写入配置寄存器紧接着马上把配置读回来做回读校验。这一步在样机调试阶段帮了大忙如果写入的配置和读回来的不一致几乎可以断定是接线或波特率有问题而不是寄存器值写错。项目里用的通信波特率是9600bps虽然芯片支持更快但工业场合宁可慢一点把误码率压到最低。// 伪代码示意忽略具体命令字位定义以官方数据手册为准 void ADS122U04_Init(void) { ADS122U04_Reset(); DelayMs(2); ADS122U04_WriteReg(0x00, 0x80); // AIN0/AIN1差分输入PGA64 ADS122U04_WriteReg(0x01, 0x20); // 数据速率20SPS单次模式 ADS122U04_WriteReg(0x02, 0x50); // 内部参考2.048V ADS122U04_WriteReg(0x03, 0x00); // IDAC路由与电流配置 ADS122U04_ReadReg(0x00); // 回读校验 }很多初次接触这颗芯片的人会卡在一个地方发完命令之后不判断响应时间就干等。UART通信不像SPI那样有硬时钟同步命令发出后芯片可能几十微秒才回数据也可能几毫秒才回。正确的做法是在接收端设置超时机制超时就重发命令。我用的超时窗口是10毫秒实际运行下来从来没误触发过。3.2 STM32F101ZG的USART初始化与收发状态机STM32这一侧的驱动分三块USART初始化、数据发送、数据接收。USART初始化直接调用标准外设库把波特率、数据位、停止位、校验位配置好就行。这里有一个小坑ADS122U04是3.3V逻辑电平STM32也是3.3V两者直连没问题但如果你用5V供电的ADC就必须加电平转换不能直接怼进去烧IO。void USART3_Init(uint32_t baudrate) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); GPIO_InitStructure.GPIO_Pin GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; GPIO_Init(GPIOB, GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, GPIO_InitStructure); USART_InitStructure.USART_BaudRate baudrate; USART_InitStructure.USART_WordLength USART_WordLength_8b; USART_InitStructure.USART_StopBits USART_StopBits_1; USART_InitStructure.USART_Parity USART_Parity_No; USART_InitStructure.USART_Mode USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART3, USART_InitStructure); USART_Cmd(USART3, ENABLE); }接收部分我用了中断加环形缓冲区串口每收到一个字节就丢进缓冲区主循环里的状态机负责从缓冲区取字节、拼帧、判超时。状态机的状态不超过四个等命令字节、等数据高字节、等数据中字节、等数据低字节。24位数据正好三个字节状态机每完整收到一帧就置标志位主循环检测到标志位后去解析。有个细节值得提一下发送命令时一定要等发送寄存器空标志位TXE置位再写下一个字节中间不要加延时也不要用delay函数否则在9600波特率下虽然不会出错但代码写得不严谨换到高速波特率时就会暴露问题。3.3 数据就绪信号与转换模式选择ADS122U04有一个DRDY引脚转换数据准备就绪时会拉低。我把它接到了STM32的外部中断引脚上数据就绪触发中断中断里仅置一个标志位不做过重的工作。主循环看到标志位后发RDATA命令取数。这种设计的好处是MCU不需要轮询等待省出来的时间可以去做显示刷新、Modbus通信这些杂活。转换模式的选择要看应用场景。如果只是单通道慢速采集用单次转换模式最省心每次发命令启动转换DRDY拉低表示完成读走数据再来下一轮。如果需要多通道轮询我建议用连续转换模式配合低速数据速率切换通道后把前几轮数据丢掉等滤波器稳定再取值因为数字滤波器有群延迟通道刚切完就读数数据是上一个通道的残留。我项目里热电偶和RTD通道混用两种模式都测过。最终用的是连续转换加20SPS数据速率每通道各读三次取中间值既压住了噪声又保证了实时性。20SPS这个速率还有一个好处对50Hz工频干扰的抑制效果很好因为ADC内部数字滤波器的陷波点正好压在工频上。如果现场是60Hz电力系统数据速率要相应调整。4. 从原始码到真实温度的换算与校准4.1 24位原始码解析与电压换算ADC返回的是三个字节拼起来是一个24位有符号数。这里有个经典错误直接把三个字节按无符号数处理负温度时计算结果全乱了套。正确做法是先判断最高位如果是1就减掉0x1000000转成32位有符号数再做后续运算。int32_t raw (int32_t)((data[0] 16) | (data[1] 8) | data[2]); if (raw 0x800000) { raw - 0x1000000; } float voltage (float)raw * (2.048f * 2.0f) / (gain * 16777216.0f);换算公式里的分量值得解释一下2.048V是内部参考电压乘以2是因为24位ADC的输入范围是正负双极性总跨度是两个参考电压gain是PGA增益16777216是2的24次方。算下来当PGA为64时一个LSB对应大约3.8nV的理论电压。但注意这是理论值实际受噪声限制有效分辨率一般只有几十纳伏到几百纳伏级别。工程上不要指望每个码都稳得像理论值关键看噪声峰峰值是否满足温度分辨率要求。4.2 RTD的电阻-温度线性化处理RTD传感器的温度换算比热电偶简单但精度同样依赖算法。PT100的电阻-温度关系用Callendar-Van Dusen方程描述在0到850°C范围内R(t) R0 × (1 A·t B·t²)在-200到0°C范围内R(t) R0 × (1 A·t B·t² C·(t-100)·t³)对于PT100标准系数A3.9083×10⁻³B-5.775×10⁻⁷C-4.183×10⁻¹²。实际代码里我没有直接解这个方程而是用查表加线性插值预先存一张IEC 60751的分度表根据测得的电阻值二分查找区间再做线性插值。查表法在小端点MCU上比迭代解方程快得多精度也够用。唯一要注意的是表的分辨率不能太粗我这张表每2°C存一个点插值后的误差小于0.01°C。接RTD时我推荐把ADS122U04用于产生参考电压的精密电阻用好一点的。虽然比例测量能抵消激励电流的漂移但参考电阻本身的温漂没法抵消碳膜电阻绝对不行至少用25ppm或更低的金属箔电阻否则温度一变参考电压就跟着变读数当然跑偏。4.3 热电偶的冷端补偿与查表实现热电偶的测温原理是塞贝克效应输出的是热端和冷端之间的温差电动势。实际测量时冷端通常在接线端子处环境温度不是0°C所以测到的电压比真实值小了一个冷端电压。补偿方法就是把这个冷端电压加回去。冷端温度从哪来我是用ADS122U04片内温度传感器读芯片附近的温度。这里有一个必须明确的边界片内传感器测的是芯片封装温度不是热电偶冷端的真实温度。如果热电偶通过长线接到端子上而端子离芯片很远两者温度很可能不同这时候就必须在冷端附近放独立的NTC或RTD做补偿测量。热电偶的电压-温度反算我用的是NIST标准多项式。每一型热电偶都有不同的多项式系数K型最简单查表插值也可以。工程里我建议用查表加分段三次插值比直接用高阶多项式在低端点MCU上算更快也避免了多项式在量程两端发散的问题。冷端补偿的方向问题我踩过一次大坑补偿值加反了设备在冬天显示的温度比实际高了两三度。排查了半天后来用冰点法标定才发现是补偿符号搞反了。建议所有做热电偶的朋友第一次上电务必先拿冰水混合物做一次0°C验证确认方向和幅值都对了再投产。4.4 两点校准与系统误差修正即使传感器本身精度很高系统的失调误差和增益误差还是存在。我的校准流程分两步。第一步是失调校准把差分输入端短接读到的ADC原始码就是零点偏移存到EEPROM里之后每次读数都先减掉这个偏移。第二步是增益校准用精密信号源输入一个已知电压或者直接把传感器放进恒温槽的已知温度点算出实际增益和理想增益的偏差把它作为修正系数存起来。实际校准后的修正公式是T_corrected (T_raw - zero_offset) × gain_correction。零点和增益两个参数就能把系统误差拉回到标称精度范围内。两点校准的温度点选择也有讲究不要选量程两端选在常用工作区间的两端比如HVAC应用里选0°C和70°C校准后的效果最好。工业高温应用则选100°C和400°C这种贴近实际工况的点。校准完建议再用中间温度点验证一次我遇到过校准后中间点偏差反而变大的情况多半是传感器本身非线性太强这时候就要考虑多点折线校准。5. 实测记录在工业现场与HVAC工况下的表现5.1 实验室测试常温环境下的稳定性样机调通后我先在实验室做了一轮基础测试。PT100通道放进恒温槽温度稳定在25°C连续读取一分钟原始码波动对应温度大约正负0.02°C。20SPS数据速率下这个表现符合预期说明电源设计和地平面处理没有给ADC拖后腿。热电偶通道用干体炉提供稳定热源在100°C和300°C两个点核对扣掉冷端补偿的误差后读数偏差都在正负0.5°C以内。这个精度对工业过程控制来说已经足够。设定温度 (°C)实测温度 (°C)偏差 (°C)00.030.032525.010.015049.97-0.03100100.050.05实验室数据只能说明系统本身是好的到了现场还得看环境的脸色。真正的问题是在变频器旁边、在冷冻水管旁边暴露出来的。5.2 工业现场的干扰与处理第一台设备装在现场配电柜里旁边就是变频器。设备运行头几天一切正常等变频器一启动热电偶通道的读数就开始周期性跳变幅度能到两三度。排查过程很典型先用示波器夹在热电偶输入端看波形发现共模干扰很大确定不是ADC自身问题。再查传感器线缆发现铠装屏蔽层在传感器一端和控制器一端都接了设备地形成了地环路。把控制器这一端的屏蔽层悬空只保留传感器端单点接地干扰立刻减了大半。再把ADC的供电从开关电源那路挪到带隔离的DC-DC输出后面读数彻底稳了。这个问题的根源在于工业现场的地电位不是绝对干净的。变频器的开关动作会在地线上灌入电流两个接地点之间形成电位差屏蔽层两端都接地等于把这个电位差直接引进了信号回路。正确的做法永远是屏蔽层单点接地接地点选在信号源那端。另外一个常见问题是传感器线缆过长。在一条60米的热电偶线路上我试过直接传信号干扰很大。后来在靠近传感器的位置加了一个RS485桥接模块把UART转成RS485到控制器再转回来长距离传输的问题就解决掉了。如果预算允许做成数字传输比模拟传输抗干扰能力强一个数量级。5.3 HVAC现场的部署经验HVAC现场的挑战跟工业现场不太一样核心是环境潮湿和温度交变。风管里的传感器探头我遇到过结露问题。冷冻水管表面温度低探头装在管道外壁夏天湿度大探头附近直接凝水NTC的读数瞬间偏了好几度。解决办法是探头做密封处理灌封胶填满传感器和外壳之间的空隙接插件位置朝下防止水顺线流进去。HVAC项目里另一个常见问题是被测温度的波动幅度大。冷冻水出水温度正常7°C负荷变化时可能几分钟内从4°C冲到12°C。这时候如果数据速率设得太快控制系统看到的是剧烈跳动的温度容易误动作如果太慢反映又滞后。我最后用的是20SPS采集软件里再加一阶低通滤波时间常数设成几十秒既滤掉瞬态噪声又保留了真实的温度趋势。这套思路在工业炉温控制里同样适用只是时间常数的设定要重新匹配。多路传感器的部署也有讲究。同一根桥架里走强电和弱电是大忌24VAC的电源线跟NTC信号线并排走十几米读数的毛刺肉眼可见地出现。布线时分桥架或者加大间距成本为零收益极高这属于现场施工最容易被忽视的问题。6. 常见问题排查与经验速查表6.1 通信类问题排查UART通信出问题优先查三件事波特率、接线、时序。示波器是最直接的武器探头夹在TXD引脚上看发送波形和数据帧格式是否正确。如果发送正常但收不到响应多半是RX线没接对或者ADS122U04的复位时序不够长芯片还没准备好就发命令。我的经验是上电后至少等20毫秒再开始通信比理论复位时间长一个数量级能省掉非常多莫名其妙的调试时间。还有一种隐蔽的通信故障芯片配置寄存器写入后回读值跟写入值不一致。很多人第一反应是怀疑芯片坏了其实大部分是总线时序问题或电平不匹配。先用回读命令确认通信链路本身可靠再排查寄存器值的问题。6.2 数据跳变与精度问题排查数据跳变优先怀疑电源和地。量一下AVDD两端的纹波超过几十毫伏就需要改善去耦。然后是参考电压内部参考出问题概率不大但如果是外部参考电路电容选型不对很容易自激振荡。排查顺序是输入端短接看原始码、输入端接地看原始码、再接传感器看原始码。通过几个状态的对比能快速锁定干扰是从哪一级串进来的。温度读数偏差大分两类看。一类是整体偏移比如所有温度都偏高1°C多半是失调误差重新做失调校准就能解决。另一类是量程两端偏差方向不同的多半是增益误差或传感器本身问题。先把传感器拆下来用万用表量电阻值跟理论值对比能排除传感器标定的嫌疑。如果传感器没问题再做一次完整的两点校准。6.3 经验速查表把项目里遇到的典型问题汇总成一张表方便现场快速定位。现象可能原因排查步骤解决方案UART收不到任何响应波特率不匹配/复位时序短/接线错误示波器看TXD波形量RX电平调整波特率延长上电等待时间数据始终为0x7FFFFF或0x800000输入开路/供电异常/参考不对短接输入端测试检查供电和参考配置数据跳变幅度大电源纹波/地环路/屏蔽层误接示波器看输入波形加磁珠滤波屏蔽层单点接地读数整体偏高或偏低失调误差/参考电压偏差短接输入做零校写入失调校准值热电偶读数符号相反冷端补偿方向反冰水法验证修正补偿符号RTD读数超量程IDAC未开/通道配置错读寄存器回查配置重写配置并回读校验切换通道后前几组数据异常数字滤波器群延迟观察波形确认通道切换点丢弃切换后前几轮数据长线传输时数据丢包信号接收容错不足加长超时时间桥接RS485或调整波特率还有几个平时积累的小技巧。ADS122U04不用的模拟输入引脚最好接到固定电平而不是悬空防止浮空输入耦合杂散信号影响MUX切换。PCB上ADC芯片正下方不要走任何高速数字线过了两层板都要保持这个距离。软件上每个读到的原始码先做一遍范围检查超出合理区间直接丢弃宁可用上一帧数据也不要把异常值灌进温度换算逻辑。这套防御式写法在现场帮过我好几次数据里混入一个异常码时系统血压纹丝不动。最后再分享一个经验调试这种高精度ADC系统一定准备一个像样的信号源或者恒温槽。什么电位器、电阻箱模拟信号都只能验证通路验证不了精度。我后来买了一个二手的干体炉所有校准和排查效率立刻上升一个档次。做硬件的人都说高精度是校出来的这句话在ADS122U04这样的采集链路里体现得格外真实。
企业数字化 ERP 产品动态
相关推荐
工业与HVAC温度测量:ADS122U04IPWR与STM32F405ZG高精度方案实战 /* 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 1:06:28
ADS122U04与TM4C129X的工业温度采集方案设计 /* 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 1:06:28
工业级温度测量方案:ADS122U04IPWR+STM32F423RH高精度抗干扰设计 /* 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 1:05:28
8 款免费开源 Android 学习应用指南:按使用场景挑选 8 款免费开源 Android 学习应用指南:按使用场景挑选 【免费下载链接】open-source-android-apps Open-Source Android Apps 项目地址: https://gitcode.com/gh_mirrors/op/open-source-android-apps
想在通勤、课间和睡前把碎片时间用起来,却不想… · 2026/11/5 1:51:39
免费实现原生分辨率串流:Apollo 桌面流的搭建与调优 免费实现原生分辨率串流:Apollo 桌面流的搭建与调优 【免费下载链接】Apollo Sunshine fork - The easiest way to stream with the native resolution of your client device 项目地址: https://gitcode.com/gh_mirrors/apollo18/Apollo
Apollo 是一个基于 … · 2026/11/5 1:51:39
一文讲透 JVM 内存回收:GC Roots 与可达性分析如何决定对象生死 一文讲透 JVM 内存回收:GC Roots 与可达性分析如何决定对象生死 【免费下载链接】jvm 🤗 JVM 底层原理最全知识总结 项目地址: https://gitcode.com/gh_mirrors/jvm9/jvm
jvm 项目系统梳理了 JVM 底层原理,这篇聚焦 JVM 内存回收的判定… · 2026/11/5 1:51:39
bpftrace 入门指南:3 步跑通你的第一条内核跟踪脚本 bpftrace 入门指南:3 步跑通你的第一条内核跟踪脚本 【免费下载链接】bpftrace High-level tracing language for Linux 项目地址: https://gitcode.com/gh_mirrors/bp/bpftrace
项目速览:一句话讲清它凭什么存在
生产环境里出问题时,… · 2026/11/5 1:51:39
基于multisim的逆计时数显定时器电路设计 22、逆计时数显定时器 设计任务及要求: 设计一个可预置:30秒的显示报警系统。要求预置30秒减到0秒报警(也可预置0秒,计数到30秒时报警);每隔5秒显示一次时间(即30秒,25秒,……,5秒,0… · 2026/11/5 1:51:39
微信聊天记录导出:WeChatMsg 三步生成完整备份 微信聊天记录导出:WeChatMsg 三步生成完整备份 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg … · 2026/11/5 1:50: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
多智能体协作系统架构设计与实践优化 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