新闻详情

新闻详情

首页 / 资讯中心 / 详情

国产32位MCU替换STM32F103实战指南:GPS定位器项目移植全记录

发布时间:2026/9/28 14:02:44来源:尧图网络
国产32位MCU替换STM32F103实战指南:GPS定位器项目移植全记录
把STM32F103换掉搁五年前很多人会摇头但这两年问这个问题的人越来越多了。GPS定位器、车载追踪终端这类产品以前十台里有八台主控都是STM32F103Cortex-M3内核、72MHz主频、三路串口、一堆定时器性能和价格的平衡点卡得刚刚好说是“国民单片机”一点都不过分。但芯片交期拉长、价格波动、供应链要多备一手准备这些现实问题把国产32位MCU推到了台前。我因为工作关系接触过国芯思辰那边的替换方案他们不是简单给你一颗芯片让你自己折腾而是从硬件引脚到软件工程帮你把雷都排一遍。这篇文章就结合我自己做过的一个GPS平台项目聊聊国产32位MCU替换STM32F103时那些真刀真枪的选型思路、移植步骤和调试踩坑给正在做类似评估的朋友一个参考。1. 为什么STM32F103会被替换从GPS硬件方案说起1.1 STM32F103凭什么是“国民MCU”要说清楚替换的逻辑先得明白STM32F103为什么这么能打。这颗芯片是意法半导体的经典款ARM Cortex-M3内核主频最高72MHzFlash从64KB到512KBSRAM从20KB到64KB外设配置非常均衡3个USART、2个SPI、2个I2C、1个USB从机、3个通用定时器加1个高级定时器还有12位ADC。对GPS平台来说这些资源几乎是为嵌入式定位终端量身定做的。更关键的是生态。STM32F103的标准外设库、HAL库、寄存器版代码在开源社区一抓一大把大部分工程师手头直接就有现成的F103工程模板改几行配置就能跑起来。GPS模块的NMEA解析代码、4G模组的AT指令驱动、低功耗管理逻辑网上全有现成参考。生态红利让F103成了默认选项照着抄就完了很少有人会去质疑“这颗芯片到底合不合适”。但这恰恰是替换时要警惕的地方。生态强大意味着很多代码是“能用但没深究为什么”比如时钟树配置、Flash等待周期、中断优先级分组方式全是照搬默认值。真到了换国产芯片那一步这些默认值不一定还成立。1.2 GPS平台对MCU到底要求什么先看一个典型GPS定位器的硬件架构MCU通过UART串口连接GPS模块接收NMEA报文通过另一路UART连接4G或者NB-IoT通信模组把定位数据上传到平台电源部分负责电池充放电管理和电压转换可能还外挂一个Flash用于轨迹缓存。MCU在这一整套系统里的活儿很明确实时接收GPS模块输出的NMEA数据解析出经纬度、速度、航向、UTC时间。管理通信模组的开关机、AT指令交互、数据打包上传。处理低功耗逻辑比如定时唤醒、运动检测唤醒、深度睡眠。维护本地RTC时间甚至在掉电后还能靠电池保持时间。异常状态下做软硬件复位、故障记录。从这些需求反推MCU的核心资源要求其实很清晰至少两路UART最好是三路GPS占一路、通信模组占一路、调试或扩展占一路要有足够的定时器做时间基准和PPS秒脉冲捕获Flash容量要把协议栈、日志存储和OTA升级空间都算进去最关键的是低功耗能力电池供电的定位器在待机态往往要求微安级电流这在选型时是硬指标。我做的那个平台用的是u-blox NEO-M8N GPS模块9600波特率输出语句格式是标准的$GNRMC、$GNGGA。MCU要持续接收这些数据流UART中断稍微处理不好就会出现丢字段的问题这一点后面细说。1.3 替换不是拍脑袋三种替代路线的取舍国产替换方案一般分三条路每条路的成本和风险差很多第一种是Pin-to-Pin硬兼容。国产芯片的引脚排列和STM32F103基本一致PCB板不动直接把芯片换上去这种情况下硬件改动成本最低但外设寄存器和中断向量表未必完全一样代码层还是要动。优点是生产物料切换方便缺点是如果两家芯片的引脚复用关系有差异硬件上的坑会很难排查。第二种是软件层迁移。引脚不一定兼容PCB需要调整但目标芯片的SDK结构和外设API会尽量向ST的写法靠拢开发人员上手快。一般适合新产品设计或者改板周期可控的项目。第三种是功能级重新设计。等于完全抛开原来那颗芯片按目标MCU的能力重新画板、重写驱动和底层最彻底也最费时间但可以把以前的兼容性包袱全扔掉。GPS平台项目我一般建议先用路线A做评估原因很实在定位器结构紧凑PCB改动成本高而且产品已经通过了很多环境测试动硬件意味着重新过一遍认证。先确认能不能Pin-to-Pin用起来再决定要不要做深度定制。国芯思辰那边给的替换方案也是从引脚兼容性表格开始和你对这个思路我觉得是对的。2. 选型与硬件设计替换过程中绕不开的5个关键点2.1 引脚兼容性别迷信“Pin-to-Pin”很多人的第一反应是“Pin-to-Pin就是直接换”但实际对下来坑多得很。首先是电源引脚的数量和位置有的国产MCU虽然是LQFP48封装但VDD、VSS的引脚编号和ST的并不完全一致PCB上的去耦电容位置就得跟着调。其次是复位电路ST的NRST引脚内部有上拉有些国产芯片还需要外加电容上电时序也有差异。更隐蔽的是引脚复用功能。比如某个引脚在STM32F103上是USART2_TX到了国产芯片上可能是普通GPIO或者SPI的SCK这种差异靠肉眼看封装看不出来必须拿着目标芯片的Datasheet和参考手册一格格对。我还遇到过Boot引脚默认电平不一样的情况ST的BOOT0拉低进Flash运行某国产芯片的BOOT0浮空时状态不确定导致板子老跑不进用户程序。我的做法是画一张引脚对照表把每个引脚在旧芯片上的功能、在新芯片上的功能、在PCB板上的网络名一次列齐逐项打勾。这一步省时间的程度远超你想象至少能避免后面焊好板子才发现串口对不上的尴尬。2.2 晶振和时钟GPS应用尤其关注时间精度时钟是替换过程中最容易被忽视、又最容易出隐性问题的环节。STM32F103常用8MHz外部晶振经PLL倍频到72MHz给内核和外设供时钟另外还有一路32.768kHz的RTC晶振。国产MCU虽然同样有HSE和LSE引脚但PLL配置寄存器、Flash等待周期设置、时钟树切换顺序可能全不一样。GPS平台对时钟精度的要求比普通消费电子要高原因在于GPS模块会输出PPS秒脉冲精度可以达到纳秒级MCU如果要做授时或者时间同步就得捕获这个脉冲并和本地时间戳对齐。如果MCU主时钟误差太大串口波特率计算也会有偏差9600波特率下每位大约104微秒时钟偏差累计到一定比例收上来的数据就是乱码。我在这里吃过一次亏替换后为了省成本没焊外部晶振直接跑内部RC振荡器表面上看GPS数据也能收但长时间运行后串口偶尔出现帧错误排查了很久才发现是内部RC温漂太大导致的。GPS类产品外部8MHz晶振和32.768kHz RTC晶振真的不建议省这是稳定性的底线。2.3 串口资源规划GPS模块通信模组至少要几个UART串口是GPS平台的生命线。GPS模块占一个UART通信模组占一个UART调试口最好再占一个。如果目标国产芯片只有两个UART那就得做资源取舍了。我的做法是给调试口和GPS口做物理复用板子上留一个拨码开关或者跳线调试时把UART切到调试口量产时切回GPS模块。这种方案在小型定位器上很常见唯一的代价是调试时拔插一次跳线帽。软件层面用宏定义把串口编号抽象出来切换只是改头文件里的一个注释比改代码方便得多。还有一种方案是GPS模块用9600波特率、通信模组用115200两个UART各司其职调试口临时用通信模组那个UART通过AT指令裸透传也能凑合但前提是调试过程不频繁。对串口数量确实不够的场景还可以用定时器模拟软件串口这个放到后面实战部分详细说。2.4 电源与低功耗设计GPS定位器基本都靠锂电池供电功耗预算卡得很死。举个例子GPS模块搜星时电流大约30到40毫安MCU全速运行时约20到30毫安4G模组发射时电流可能短时间冲到1到2安培。要让产品撑过待机状态MCU的低功耗能力是关键指标之一。国产32位MCU在低功耗方面这几年的进步很明显很多都提供了Sleep、Stop甚至Standby模式待机电流能到微安级别。替换时要重点确认三个东西一是从唤醒源看RTC闹钟、GPIO外部中断、UART唤醒是否都支持二是掉电后RAM能否保持这直接决定唤醒后能不能快速恢复现场三是低功耗模式下的时钟配置有些芯片在Stop模式下串口是彻底睡死的得设计好唤醒后再初始化外设的时序。电源本身也要留意。模块电压从3.4V到4.2V波动时DC-DC输出3.3V要稳住否则GPS模块的供电纹波会直接影响射频灵敏度。换MCU后如果发现GPS收星比原来差先量一下3.3V纹波是不是超标了很多时候问题根本不在天线在电源。2.5 GPS天线走线的几个细节天线走线是GPS硬件的老话题但替换MCU后往往会忽视一个连锁反应新芯片的封装或者引脚布局变化可能导致天线馈线被迫绕线。GPS天线馈线最好走50欧姆微带线参考层要完整不能有断层走线尽量短远离DC-DC电感、时钟线和通信模组的射频线。有源天线还要注意供电。天线内部的LNA需要偏置电压通常会从MCU板的电源经过一个LC滤波后馈入天线馈线替换后要重新确认滤波参数的截止频率别把GPS的L1频段信号滤掉了。净空区处理同样重要天线正下方不要铺铜否则等效天线效率下降搜星会变慢。这块我个人的经验是如果替换后GSM或4G信号和GPS信号互相干扰不要急着改天线先看MCU的IO翻转产生的谐波是不是落在GPS频段附近。有的国产芯片GPIO驱动能力默认调得比较高边沿太陡反而引入高频噪声把GPIO的 slew rate 调低一档往往能改善。3. 代码迁移实战从STM32F103到国产MCU的移植全过程3.1 第一步搭最小系统和点灯替换工程的第一步永远是最小系统不是整个项目。先搭一个最小板或者直接用现有的开发板把启动文件、链接脚本、系统时钟配置跑通然后用点亮LED验证GPIO输出。这里有个容易出问题的地方ST的标准外设库和国产芯片SDK的启动文件命名、中断向量表排列顺序不一样。如果你直接把startup_stm32f10x_hd.s拿过来用大概率启动就卡死或者进HardFault。正确做法是用目标芯片厂商提供的启动文件和链接脚本再对比看中断向量表里有没有遗漏的异常处理入口。时钟树配置是另一个重点。STM32F103的SystemInit函数里会把HSE启动、PLL倍频到72MHz、Flash等待周期设成2国产芯片虽然也照着这个思路来但PLL配置寄存器位段定义不同而且有的芯片主频最高不是72MHz而是96MHz或者108MHz照搬ST的8MHz倍频9倍是不对的。要对着参考手册的时钟树重新算一遍分频系数。我习惯在点灯之前先写一个小的时钟验证函数翻转一个GPIO用示波器量翻转频率是否和理论一致。这一步能最快暴露PLL配置错误。3.2 第二步UART驱动适配与GPS数据接收GPS模块是把数据吐给MCU的源头串口驱动适配是整个迁移最核心的部分。STM32F103的USART在国产芯片上不可能是100%寄存器兼容所以不要直接抄ST的库函数要看目标芯片参考手册里的UART章节。GPS数据接收我推荐中断环形缓冲区方案。每收到一个字节就触发一次UART接收中断中断服务函数里只做一件事把数据写进环形缓冲区。主循环里再解析缓冲区数据。这样做的好处是中断处理时间极短不容易发生高频数据流下的字节丢失。环形缓冲区的大小有讲究。GPS模块在9600波特率下每秒大约输出1KB左右的数据缓冲区至少要开到512字节我习惯直接开1KB。缓冲区太小的话如果主循环在做别的事情比如处理4G模组的AT指令响应缓冲区被写满后新数据就直接丢弃表现就是定位信息跳变或者缺字段。还有一点要特别提醒国产芯片的UART接收FIFO可能需要手动使能。有的芯片默认关闭FIFO每收到一个字节就产生一次中断对高波特率场景不友好打开FIFO后可以攒到一定字节数再触发中断中断次数大幅减少CPU负载也降下来了。3.3 第三步NMEA协议解析与坐标转换GPS模块输出的是NMEA-0183格式语句最常见的是$GNRMC和$GNGGA。解析思路大致是按行接收一行以$开头、以回车换行结束中间以逗号分隔字段最后两位是校验和与前缀异或值相等才算有效行然后按字段索引取需要的值。经纬度转换是个经典细节。NMEA里的纬度格式是ddmm.mmmm比如3103.48231表示31度03.48231分要转成十进制度数就是31 03.48231 / 60。经度同理。这个转换写错的话地图上打点会差出去好几公里而且很难靠人工看出来。时间字段也要注意。$GNRMC里的UTC时间是hhmmss.sss格式国内使用要加8小时变成北京时间同时要注意跨天问题时日期字段也要跟着变。很多人在这一步偷懒结果产品上线后每天凌晨定位数据的日期比实际慢一天。下面给一个简化版的RMC解析示例只解析核心字段#include stdio.h #include string.h #include stdlib.h // 解析 $GNRMC 中的经纬度 // 输入ns, ew 分别为 N/S 和 E/Wdm 为 ddmm.mmmm 形式字符串 // 输出degree 为转换后的十进制度数 int parse_coordinate(const char *dm, char ns_ew, double *degree) { if (dm NULL || degree NULL) return -1; char buf[16]; strncpy(buf, dm, sizeof(buf) - 1); buf[sizeof(buf) - 1] \0; char *dot strchr(buf, .); if (dot NULL) return -1; // 点前部分长度ddmm 或 dmmm int int_len dot - buf; if (int_len 3) return -1; double mm atof(dot); // 小数部分代表分钟 char deg_str[4] {0}; strncpy(deg_str, buf, int_len - 2); deg_str[int_len - 2] \0; double deg atof(deg_str); char min_str[4] {0}; strncpy(min_str, buf int_len - 2, 2); min_str[2] \0; double min atof(min_str) mm; *degree deg min / 60.0; if (ns_ew S || ns_ew W) { *degree -*degree; } return 0; }解析的工程实现还有个常见坑不要在主循环里用阻塞式的strstr或者长循环去找语句尾。GPS数据流是持续的最好在中断接收时就把一行数据完整截出来再交给一个解析状态机去处理。这样即便某一行数据校验失败也不会影响下一行数据的接收。3.4 第四步定时器模拟软件串口的终极方案当硬件UART确实不够用的场景软件串口算是一个低成本救命方案。原理很朴实发送端用定时器中断按波特率计算每个bit的时间到点就把GPIO拉高拉低把要发的字节一位一位移出去接收端同样定时采样RX引脚电平拼成字节。ST官方有一个经典的应用笔记就是讲这个的。但放到国产MCU上有几个现实问题要面对一是中断响应延迟。软件串口全靠定时器中断里干活如果系统里还有其他高优先级中断抢占就会出现位偏移。9600波特率下每个bit大概104微秒看着时间很充裕但定时器中断必须在误差不超过百分之几的窗口内动作否则连续几个bit偏出去接收端的字节时序就乱了。二是接收端的采样时机。推荐做法是在每位的中点采样这样可以容忍一定的信号边沿抖动。但实现起来要处理位同步一个字节省设置方式。我实际用下来发送方向用软件串口很稳接收方向除非你特别有把握否则还是尽量用硬件UART。GPS模块只管向外吐数据我们可以让GPS模块接硬件UART通信模组的响应通道如果需要则可以用软件串口做发送接收还是走硬件。三是中断嵌套问题。如果软件串口用了一个高优先级定时器中断所有在中断里被调用的库函数都要确保是可重入的不能有阻塞等待。3.5 代码兼容层的重要性迁移做完一遍之后我最大的一条心得是应用层代码永远不要直接碰寄存器。不管原先是ST还是国产芯片都要在中间加一层薄薄的驱动抽象层。比如定义统一的接口uart_write(port, data, len)、uart_read(port, buf, len)、delay_ms(ms)、get_tick()。上层业务逻辑像NMEA解析、AT指令交互、状态机切换只调用这些接口和目标芯片SDK相关的所有底层实现都被隔离在这层里。这样做的价值在第二次换芯片时体现得最明显。我后来有一个项目从A家国产芯片又切换到B家国产芯片应用层代码一行没改只是重写了底层驱动适配和启动文件整个迁移工作量从一个月压缩到三天。顺带提一句这种设计也方便做状态机。GPS平台的上报逻辑、休眠逻辑、OTA升级逻辑都很适合用状态机表达空闲态、搜星态、定位态、上报态、超时重试态。状态机的实现不依赖具体芯片只要底层驱动抽象够干净上层逻辑的逻辑性会强很多。4. 实测总结与踩坑记录4.1 串口中断接收掉数据包这是我在替换初期遇到的最闹心的问题GPS模块9600波特率持续输出运行一段时间后定位数据会突然跳回很久之前的位置而且越是频繁上报越容易出现。刚开始以为是通信模组的问题后来抓串口数据才发现是UART接收环节丢字节。排查过程大概三步。第一步检查接收中断服务函数里有没有做耗时的操作比如处理AT指令、解析NMEA——这些全部不能在中断里做必须挪到主循环。第二步检查UART的FIFO有没有开启国产芯片UART默认FIFO状态各有不同不确认一下就会漏数据。第三步检查缓冲区大小和读缓冲区的频率如果主循环被通信模组的AT指令等待阻塞住缓冲区会迅速填满。最终解决方案是打开UART FIFO把串口接收中断优先级提到最高环形缓冲区从256字节加大到1KB同时把解析逻辑从主循环中提取出来放到一个更高优先级的任务里用简单的前后台调度即可。改完后连续跑了一周再没出现过丢数据包。4.2 内部温度采集不准的问题有段时间客户反馈设备在高温环境下上报的温度偏高排查后发现不是外部传感器的问题是MCU内部温度传感器读数不准。STM32F103内部温度传感器的校准值是出厂时写在芯片里的很多代码直接忽略这一步直接从ADC通道读取原始值就套公式误差自然大。国产芯片同样也有这个坑。内部温度传感器的计算公式大致是T (V25 - V_sense) / Avg_Slope 25其中V25是25℃时的典型电压值Avg_Slope是温度变化斜率这两个参数在芯片手册里都能找到但不同芯片的值可能不同。还要特别注意ADC参考电压VDDA。有的板子VDDA没接干净纹波比较大ADC采样结果会跟着抖。把VDDA引脚加一个10uF和一个0.1uF去耦电容通常能解决大半问题。如果产品对温度精度要求高还是老老实实外接一颗数字温度传感器内部传感器只用来做趋势判断比较稳妥。4.3 GPS搜星慢与定位漂移替换MCU之后搜星变慢这是硬件设计问题里最容易被误判的一类。第一次遇到时我先查了GPS模块的配置又怀疑天线坏了折腾半天最后发现是MCU的SWD调试口附近有一根走线从天线馈线正下方穿过调试接口的时钟谐波干扰了GPS的L1频段。后来总结排查顺序先看天线本身有源天线要看偏置电压是否正常再看馈线走线是否被改动过有没有绕线过长、参考层断裂然后检查MCU的GPIO配置特别是高速翻转的IO可能的话把slew rate调低最后再确认电源纹波。定位漂移的软件层面原因也很好查没有检查$GNRMC的status字段。这个字段在定位有效时是A无效时是V表示数据无效或者漂移。如果解析代码不判断有效状态就直接更新经纬度那么城市峡谷或者高架桥下产生的无效定位就会被当成有效数据上报轨迹自然就乱飘了。4.4 硬件SPI和软件SPI的取舍GPS平台如果需要外挂SPI Flash存轨迹数据就得决定用硬件SPI还是软件模拟。硬件SPI的优势是速度快、不占CPU但国产芯片的SPI外设在时序细节上和ST可能有差异比如时钟极性和相位的默认配置、FIFO深度、以及主模式下的SCK最高频率。我遇到过一个问题硬件SPI在16MHz时钟下从设备读取数据时偶发错位看示波器发现SCK上升沿和MOSI数据变化沿之间的距离太近从设备采样时采到了跳变边沿。最终把SPI时钟降到8MHz就正常了说明芯片的时序裕量没那么大。如果SPI只用来存日志或者配置数据对速度要求不高我反而推荐软件模拟SPI。只要GPIO翻转速度够快软件SPI在2MHz时钟以内非常稳而且不依赖芯片外设的差异换芯片时不需要重新调时序。代价是CPU占用高一些但在GPS这种低负载场景下完全可接受。4.5 排查速查表现象可能原因排查与解决措施串口丢字节UART FIFO未开启、中断处理过长、缓冲区太小打开FIFO、缩短中断函数、加大环形缓冲区定位数据跳变串口丢字段、NMEA解析未校验有效性检查UART驱动、解析时判断status字段是否为AGPS搜星慢天线馈线干扰、有源天线供电异常、净空区铺铜量天线偏置电压、检查馈线参考层、调整走线内部温度不准校准参数缺失、VDDA纹波大确认芯片出厂校准值、改善ADC供电滤波硬件SPI读错数据时钟边沿时序裕量不足降低SPI时钟频率、改用软件SPI上电不进程序Boot脚电平不定、时钟配置失败检查BOOT引脚上下拉、确认晶振起振待机电流偏大部分外设未进低功耗模式、IO浮空漏电逐个外设确认低功耗状态、浮空IO设成输出低开机概率性硬件故障复位电路时序、电容参数不匹配对比新旧芯片复位电路要求、调整复位电容这块排查速查表算是综合了我在GPS平台替换国产芯片过程中最常处理的几个问题。每一条背后基本都有真实的项目案例支撑照着这个表格排查能省不少走弯路的时间。个人体会与建议最后说一点个人感受。替换STM32F103这件事本质上不是选一颗芯片的事而是一个供应链风险分摊的工程决策。我做了几次完整替换之后最大的一条体会是兼容层设计永远比一次性移植重要不要在应用代码里直接绑死某一家的SDK选型评估也尽量留出至少两周的测试窗口专门用来做时序、功耗、串口压力、温漂这些容易翻车的测试。如果手头正好有GPS相关产品要评估国产MCU替换我建议从最小系统和串口驱动开始先把GPS数据流完整解析出来再逐步加入通信模组、低功耗、存储这些外围功能。前期的引脚对照和时钟配置确实枯燥但这一块做扎实了后面调试阶段能省掉大量“这也能出问题”的惊喜时刻。这个方向的技术细节还有很多可以深挖的比如PPS秒脉冲捕获的精准实现、结合状态机的低功耗调度流程、以及国产MCU的OTA差分升级方案。后续如果大家对这些话题感兴趣我也可以结合具体的芯片型号再展开讲一讲。
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

技术 Leader 说我不懂 Vibe Coding,我用 TaoToken 统一 Key 把 Codex 和 Claude Code 的配置摊开给他看 2026/9/28 19:19:09

技术 Leader 说我不懂 Vibe Coding,我用 TaoToken 统一 Key 把 Codex 和 Claude Code 的配置摊开给他看

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

阅读更多 →
EAAI,面向电力巡检中固定基站的无人机周期性任务分配与路径规划的深度强化学习方法 2026/9/28 19:19:09

EAAI,面向电力巡检中固定基站的无人机周期性任务分配与路径规划的深度强化学习方法

1.摘要 固定巢站模式下,变电站、输电塔和配电杆具有不同巡检周期,UAV 还受电池续航和每日飞行架次限制,因此任务分配与路径规划存在长期时序耦合。论文针对周期性电力巡检问题(PIPUFN)提出动态剪枝与拓扑感知深度强化学…

阅读更多 →
从设计图到网页:Doubao-Seed-Code 模型 + Claude Code 完整实战指南(TaoToken 配置版) 2026/9/28 19:19:09

从设计图到网页:Doubao-Seed-Code 模型 + Claude Code 完整实战指南(TaoToken 配置版)

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

阅读更多 →
vscode koroFileHeader注释插件使用教程:TaoToken统一Key接入与settings.json配置骨架 2026/9/28 19:19:09

vscode koroFileHeader注释插件使用教程:TaoToken统一Key接入与settings.json配置骨架

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

阅读更多 →
工控AI智能体基建实战:算力、上下文、散热与编排 2026/9/28 19:19:09

工控AI智能体基建实战:算力、上下文、散热与编排

1. 工控AI落地的真实拐点:从单点模型到智能体基建这两年跟不少做工业自动化的朋友聊天,大家有个共同感受:前几年谈AI进工厂,基本停留在“视觉质检”或者“预测性维护”这种单点模型上,模型跑完推理给个结果&#xff0c…

阅读更多 →
办公 Agent 工具怎么选:TaoToken 统一 Key 下 TraeWork、WorkBuddy 与 Kimi Work 的配置边界 2026/9/28 19:18:56

办公 Agent 工具怎么选:TaoToken 统一 Key 下 TraeWork、WorkBuddy 与 Kimi Work 的配置边界

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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