news 2026/10/7 1:19:12

智能车PCB升级四层板全流程:从原理图到打样的实战经验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智能车PCB升级四层板全流程:从原理图到打样的实战经验

调试智能车时,我遇到过最折腾的一次:检查了半个多月代码,觉得中断没问题,滤波没问题,控制逻辑也没问题,可电机一启动,单片机就复位,摄像头图像全是雪花,电磁传感器数值跟过山车一样。最后实在没招了,把主板从双层板换成四层板重画了一版,问题当场消失。那会儿我才彻底明白,Altium Designer 20画四层板不是"赶时髦",而是一个智能车项目从"能跑"走向"稳定跑"的分水岭。这篇我把当时从原理图到四层板成品的完整设计过程、参数选择、踩坑记录一次说清,给准备打板做车的同学一个可以直接照抄的参考。

1. 为什么智能车PCB值得换成四层板:先从双层板的痛点说起

1.1 双层板在智能车上的三大死穴

很多队伍第一辆练习车都用双层板,毕竟入门教程多、打样便宜、看着也简单。但跑过几轮后你会发现,双层板在智能车这个场景下有三个很难绕开的硬伤。

第一个是地线噪声。双层板没有完整的地平面,所有的"地"都是走线连出来的。电池负极到电机驱动、到单片机、到编码器,都得靠一根根细铜箔串起来。而电机是大电流器件,堵转的时候十几安培的电流在地线上形成的压降非常可观。地线不是理想导体,它是有电阻的,十几安培乘以十几毫欧就是几百毫伏的压差。单片机的地参考点如果和电机驱动的地参考点不在同一个电位上,ADC采样就会飘,复位线就可能被拉低。

第二个是串扰。双层板只有两层,信号线躲不开动力线。H桥的PWM输出是低压大电流方波,峰值电流变化率di/dt非常吓人,旁边的摄像头PCLK时钟线、SCCB数据线只要平行走几厘米,干扰就直接耦合进去了。我不是说双层板一定做不成智能车,而是说要在双层板上把这些干扰都处理好,对布线的功力要求相当高,新手基本必踩一遍。

第三个是布线资源紧张。智能车主板其实不大,通常不超过10cm x 10cm,但上面要塞下电源接口、防反接、主控、晶振、排针排母、电机驱动、编码器接口、摄像头接口等等。双层板绕来绕去,绕出来的环路面积越来越大,环路就是天线,干扰就是这么被接收和辐射出来的。越绕,噪声越大,形成恶性循环。

1.2 四层板解决了什么,代价又是什么

四层板最大的改变在于,信号的"返回路径"不再需要你专门画一根地线,而是有一整层铜箔地平面兜底。电流总是走阻抗最低的路径,信号线上的高频回流电流会直接贴着信号线正下方的地平面走,环路面积接近零,串扰和辐射被压到很低。电源也是同样的道理,一整层电源平面相当于一个超大电容,对高频噪声有很好的吸收能力。

代价主要是三样:打样价格比双层板翻个两三倍,设计难度高一截,出错之后调试也麻烦一些。但对一辆投入了几百上千小时去调算法的智能车来说,这几百块的成本绝对值得。更关键的是,四层板把"电气底子"打稳了,你调车时遇到的问题才是真正的算法问题,而不是被PCB噪声掩盖的假问题。

1.3 什么情况下可以先不上四层板

四层板虽好,但不是所有场景都适合。如果你只是练习单片机最小系统、点亮OLED、跑个蓝牙遥控,双层板完全够用;如果是在功能验证阶段,电路可能要来回改好几遍,那也别急着上四层板,先用双层板验证逻辑,等功能冻结了再重新布局布四层板。我最开始的练习板一直是双层板,直到正式比赛车的硬件方案确定下来,才动手画四层板。分清"练手"和"定稿"是两件事,能帮你省下不少冤枉钱。

2. 层叠设计先行:四层板的"地基"在哪儿,怎么在AD20里搭

2.1 两种主流层叠方案怎么选

层叠是四层板最先要定的事,它决定了整块板的电磁环境和走线策略。常用方案有这么两种。

方案顶层内层2内层3底层适用情况
A信号地电源信号绝大多数智能车主板
B信号电源地信号电源分区多、地相对完整时

我强烈推荐方案A,就是"信号-地-电源-信号"。原因很直接:顶层是信号最密集的层,把地平面放在第二层,顶层所有信号的回流路径最短,开关噪声被地平面直接吸收;底层作为辅助信号层,也有地平面和电源平面替它挡住干扰。内层第三层放电源平面,它和地平面之间形成紧耦合,等效于一个分布电容,这个电容在高频下能提供非常低阻抗的电源去耦路径,效果比你在板子上放几十个0.1uF电容都实在。

方案B把电源放第二层、地放第三层,顶层信号的回流距离稍远,而且当电源层被分割成好几块时,第二层满目疮痍,顶层信号很容易跨分割,所以除非你有特殊的电源分区要求,否则不推荐。

2.2 在AD20里搭好层叠的具体操作

打开Altium Designer 20后,新建PCB,然后进入Design -> Layer Stack Manager,快捷键D+K。默认是一个双层板结构,你需要点左下角的Add Layer,依次插两层。

我实际设置的参数是这样的:

  • 顶层:Signal,铜厚1oz(考究一点的可以设2oz,但常规打样价格会上浮)
  • L2:Internal Plane,网络分配为GND
  • L3:Internal Plane,网络分配为VCC(后续做电源分割时可改成多个网络)
  • 底层:Signal,铜厚1oz
  • 板厚:1.6mm,智能车对板厚不敏感,1.6是最常见的

这里有个容易搞混的概念:Internal Plane是负片层,默认整层都是铜,你只需要用线条在Plane层把不同电源区域分割开;而信号层是正片,画出来的线才是铜。很多新手在电源层上用Place -> Track画了一堆走线,结果发现导出来的铜皮根本不是自己想要的,就是因为没搞懂正负片的区别。电源平面层的分割要使用Place -> Line在Plane层画分割线,而不是普通走线。

2.3 介质厚度和阻抗,智能车要不要讲究

四层板厂默认的芯板介质厚度一般都能保证100欧姆或50欧姆阻抗控制附近,你不需要专门去算阻抗。智能车上真正称得上高速信号的就是摄像头像素时钟PCLK,频率通常在几十MHz量级,对阻抗没那么敏感。你只要保证这类信号线尽量短、尽量少打过孔、下方参考平面完整,就不会有大问题。真正的坑反而是"底层信号跨越电源分割缝隙",这个后面专门讲。

3. 在AD20里把规则一次定死:线宽、过孔、间距的量化配置

3.1 打开PCB Rules,建网络类

很多人画PCB的习惯是边画边改线宽,结果画完才发现3.3V的走线只有6mil,电机驱动的线又细得离谱。我的习惯是动手布线之前,先把Design -> Rules(快捷键D+R)里的规则全部配好,后面布线只是机械执行。

先把关键网络分类建好。在PCB面板中选中某个网络,右键Properties,在Net Class里分配到对应类别。我是这样分组的:

  • POWER_12V:电池/电源板直接进来的电压网络
  • POWER_6V:降压后的电机/舵机供电(如果有舵机)
  • POWER_3V3:单片机及逻辑电源
  • POWER_5V:如果需要5V给传感器
  • SIGNAL_CLK:摄像头PCLK等时钟信号
  • SIGNAL_ADC:电磁传感器或电流采样模拟信号
  • SIGNAL_DIGITAL:普通IO、SCCB、SPI、UART
  • MOTOR_PWM:驱动桥PWM信号

3.2 线宽规则的具体数值参考

网络类最小线宽推荐线宽说明
POWER_12V40mil60mil12V进线可能直接带电机,按峰值电流留余量
POWER_6V30mil50mil给舵机供电的线要粗
POWER_3V315mil30mil单片机功耗不大但电流瞬变快,走线粗一点顺便当滤波
MOTOR_PWM12mil15mil驱动桥控制信号,短、直、远离ADC
SIGNAL_CLK8mil12mil且必须包地处理
SIGNAL_ADC8mil12mil走线要短,周围包地
SIGNAL_DIGITAL6mil10mil普通信号线

很多人不知道线宽和载流能力怎么对应,我给出一个常用的经验值:1oz铜厚下,1mm(约40mil)线宽大约能走1A电流,前提是温升控制在10度以内。电机正常工作可能只要1~2A,但堵转瞬间10A都很正常,所以电机驱动回路我用的是正面60mil+底层60mil并联,再铺铜加厚,确保短时间大电流不会把铜箔烧掉。

3.3 过孔怎么选,别在这个地方省

Altium Designer 20里,过孔设置也在Design -> Rules -> Routing -> Routing Via Style。我的智能车四层板统一用外径0.6mm、孔径0.3mm的过孔,这是绝大多数打样厂不用额外加钱的常规工艺尺寸。

但过孔的载流能力是真的容易被忽略。一个0.3mm孔径的过孔,铜厚1oz下大概只能过0.5~1A电流,电机驱动回路上如果只打两个过孔,在大电流时过孔就是瓶颈,轻则发热,重则烧断。我的做法是在电机驱动和电源路径上并排打6到8个过孔,孔间距1mm左右,相当于把载流能力翻了数倍。你不需要给每个过孔都派一个网络标签,只要它们连接的是同一片铜皮,打孔越多越好。

3.4 间距和短路规则

Clearance规则我设置成6mil起步,这是大多数四层板厂的最低生产门槛,但我在关键网络会单独加严。比如3.3V电源网络和GND之间,我会设为10mil,防止低压电源被尖峰干扰;摄像头时钟线SIGNAL_CLK与其它非地网络间距我会设成12mil,确保包地时能塞进安全间距。这些都是我踩过坑之后慢慢调出来的数,不代表唯一正确,但至少是经过板子验证的保守值。

4. 按"动力-供电-控制-感知"分区布局:智能车主板的具体走线逻辑

4.1 先摆结构件,再布器件

很多人画智能车PCB上来就摆芯片,这是错误的。第一步是先把机械约束放进去:四个/六个螺丝孔的位置、电池仓干涉区、车模底盘开孔位置,这些决定了板子的形状和器件能不能放。在Altium Designer 20里用Mechanical 1层画板框,把螺丝孔放在Keepout层上,然后其他所有的器件都要给这些固定结构让路。

我画车的时候会习惯性把车模底盘模型拆下来量一遍,把轮子、电机、电池、万向轮的位置投影到PCB平面上,标记出"绝对禁区"。这样后面布局再拽也不会把器件塞到装不下的位置。

4.2 电源入口与电机驱动是第一个要塞

智能车主板一般就这么几个功能区:电源输入接口、驱动桥及其栅极驱动、主控MCU、摄像头排针/排母、电磁运放(如果是电磁组)、编码器接口、调试口。

我建议的布局顺序是:先摆电源入口和电机驱动区,因为这个区域的走线最粗、电流最大、干扰最强,它占据的位置要提前锁定。电源接口放在板边一角,紧跟着是防反接MOS管、大容量电解电容、主电源开关。电机驱动区紧挨着电池接口,让大电流路径尽量短,不要穿过板子中央。

H桥驱动芯片(或MOS管阵列)放在板子的一侧,靠近电机输出接口。栅极驱动电阻和续流二极管要紧贴MOS管引脚,连线的寄生电感越小越好。大电流回路(电池正极-驱动桥-电机-电池负极)所包围的面积要尽可能小,这句话怎么强调都不过分。

4.3 主控和电容布局

主控MCU放在板子中心靠前的位置,离摄像头接口近一点,摄像头数据线就能短一些。晶振紧挨MCU的OSC引脚,晶振底下尽量不要走其它信号线,这是我早期双层板踩过坑的地方——晶振下方穿过一根I2C线,结果I2C通信偶尔莫名其妙地失败。

去耦电容的摆放比很多人想的更重要。每个电源引脚配一个0.1uF陶瓷电容,这个电容要放在MCU电源引脚的正下方或最近位置,走线顺序是"电源→电容→引脚",不是"电源→引脚→电容"。如果电容放得远,它起不到滤除高频噪声的作用,因为引脚和电容之间的走线电感会把高频噪声隔离在外。另外在板子的电源入口处放一个10uF~47uF的电解电容或钽电容,负责低频储能。

4.4 模拟信号区与感知器件接口

电磁组的运放输出、摄像头组的模拟摄像头数据(如果走模拟信号),这些是最敏感的信号,它们的参考地一定要干净。我的做法是在布局阶段就把这些模拟器件放在一起,靠近MCU的ADC引脚,中间不穿插任何数字信号线或PWM线。

摄像头排针或排母我会放在板子最前方,让它和镜头的位置天然对应。编码器接口放在板子侧边,和电机驱动区保持一点距离,走线不要和PWM信号并排绕。调试口、按键、LED这些非关键的东西放板尾、放板边,怎么方便怎么来。

4.5 布线先后顺序:先电源后信号,先模拟后数字

我的布线顺序是固定的:先布电源网络,再布模拟信号,然后布时钟和高频数字信号,最后布普通IO。电源线是全局最粗的线,先走完它们,你才知道留给信号线的空间还剩多少。模拟信号和时钟信号要优先保证路径短、参考面完整。普通IO就随意多了,哪里空就往哪里走。

底层信号线的方向尽量和顶层错开,不要上下两层平行走太长,否则层间串扰会找上你。Altium Designer 20的交互式布线有个推挤模式,布线的体验比老版本好很多,我一般用Shift+R切换一下布线模式。

5. 地平面完整性与覆铜:四层板的成败全在这层铜上

5.1 四层板到底该不该分割地平面

很多教程会告诉你"模拟地要单点接地、数字地和功率地用磁珠隔开",这话在双层板上是金科玉律,但在四层板上要谨慎。四层板的地平面是一整块高导电率的铜箔,低频电流会按电阻路径走,高频电流会按电感最小路径走。你如果非要在中间开一条缝,把地平面分成"模拟地"和"数字地"两块,那跨过这条缝的信号线就倒霉了——回流电流绕了一大圈,环路面积急剧增大,辐射和串扰全都回来了。

我在设计智能车四层板时,GND平面保持完整,不做任何分割。功率地噪声和模拟地噪声之间,靠"在空间上隔离"和"完整参考平面"来解决,而不是靠切割地平面。事实证明这个方案完全可行,电磁组的ADC采样在电机转动时依然稳定,摄像头图像也不出雪花。单点接地、磁珠隔离等技巧,主要是在双层板上没有完整地平面时用来亡羊补牢的。

5.2 信号跨分割:四层板最隐蔽的坑

信号跨分割是四层板设计里最容易犯、也最难肉眼发现的错误。L3是电源平面,如果你把3.3V、5V、12V用一圈分割线划分成几块区域,那么底层走线一旦跨越了这些电源区域之间的分割缝隙,信号的回流电流就没办法从紧贴的下方平面直接流回,只能绕到分割线的两端去"挤过去"。这个绕行的路径就是一个大环路,它会带来两个问题:信号完整性变差,以及EMI辐射增强。

怎么避免?一个可靠的办法是:底层尽量不走关键的模拟和时钟信号,把这些信号全都放到顶层去走。顶层下面就是完整的地平面L2,怎么跨都没有问题。如果底层实在要走信号线,那就要在整板布局阶段规划好,L3电源区域的分割线尽量避开底层信号密集区。还有一个技巧:在分割线底下补一个跨接电容(例如0.1uF),给回流电流提供一个高频通路,但这是权宜之计,能避免还是要避免。

5.3 覆铜和过孔缝合的操作细节

电源和信号布完之后,顶层和底层还有大量空白区域,不要留着。用Place -> Polygon Pour(快捷键P+G)给顶层和底层铺GND铜皮。铺铜间距设置成Clearance规则一致,一般10~12mil。地铜皮不要选择全连接,用十字花连接方式,焊接时散热慢、容易上锡;高速信号过孔的接地焊盘如果全连接,会造成局部热不均和阻抗不连续,所以90%场合下我建议用十字花。

地铜皮铺完,还有一个重要动作:过孔缝合。在板边的地铜皮上,以及所有铜皮孤岛附近,打上一圈地过孔,把顶层地、底层地、L2内地平面全都连起来。这些过孔间距一般1mm~2mm。板边过孔缝合的作用就像给整板加了一圈"铜墙铁壁",可以显著降低边缘辐射。我的板子上通常会有几十个这样的缝合地过孔,它们看起来是多余的,但实测对抑制EMI非常有帮助。

5.4 电机驱动区的局部处理

电机驱动区是板上的噪声源,也是大电流热源。四个MOS管或驱动芯片的下方铺铜,我会用一小片独立的GND铜皮,然后通过多个过孔连接到L2地平面。这样既保证了散热路径,又给L2地平面留出了控制噪声耦合的余地。为了让驱动区的大电流铜皮散热更好,可以在Top Layer上用Polygon Pour再铺一层覆盖走线的同网络铜皮,铜皮越大越好,但注意和周边信号保持足够间距。

另外,电机驱动芯片或MOS管的散热焊盘下面,至少要打9个以上的过孔阵列,孔径0.3mm,把它连接到内层地平面。这些过孔既是导热通道,也是电气连接通道。如果打孔太少,芯片满载时温度会迅速飙升,我第一版驱动板就只打了4个过孔,测个十几秒就烫得不能碰,后来加到12个才稳定。

6. 制板、检查、打样:从Gerber到样板生产的最后一公里

6.1 DRC检查别只跑一遍默认规则

画完之后,运行Design -> Board Check,或者Tools -> Design Rule Check,快捷键T+D。默认的DRC检查只能抓到短路、断路这类低级错误,但高级问题需要你自己定义规则去抓。

我每次出板之前固定的检查项是这样的:

  • 所有网络是否都已连接:Un-Routed检查为0
  • 最小间距:Clearance约束检查通过
  • 短路:Short-Circuit为0
  • 过孔孔径和焊盘外径:是否达到工厂工艺下限
  • 丝印是否压到焊盘:这是板厂经常给你打回来的原因
  • 走线是否跨过L3电源分割线:这个得用眼睛配合3D预览检查,DRC默认抓不到
  • 每个电源引脚附近是否有去耦电容:手动目检

6.2 输出Gerber文件和钻孔文件

出Gerber之前在AD20里做一次视图检查,切到3D模式(数字键3),看一下有没有器件装不上、干涉明显的地方。然后File -> Fabrication Outputs -> Gerber Files,选RS-274X格式,勾选你要输出的所有信号层、内层Plane、丝印层、阻焊层和机械层。注意钻孔文件要单独输出NC Drill,格式一般选2:4,单位用英寸或毫米都行,但要和板厂约定一致。

输出完Gerber之后,我强烈建议用CAM编辑器(比如AD自带的CAMtastic)打开检查一遍,看看每一层的Gerber是否和设计一致,尤其是内层平面的分割是否正确,铜皮有没有出现意外的窄桥或孤岛。我见过有人内层Plane分割线画错了方向,结果整块地平面被切开,板子回来完全不工作,这种问题如果在CAM里提前看一层,一眼就能发现。

6.3 和打样厂沟通时怎么核参数

常规打样,四层板我会选择1.6mm板厚、1oz铜厚、喷锡工艺(如果大电流区多,就选沉金或局部沉金),最小线宽线距按6mil来定。如果你画板时把间距都控制在6mil以上,板厂不会额外收精细工艺的钱。还要跟板厂确认一下阻抗:智能车板一般不需要,但如果你做的摄像头接口走的是平行差分线,可以问一句"是否默认为JLC7628之类的阻抗结构",确认他们板子的介质厚度。

到手检查样板时,先用万用表量一遍电源对地有没有短路,然后空载上电量电压,再慢慢往下测。所有的这些检查动作,做足了,你才敢把板子装到车上跑。

7. 实测与踩坑记录:样板回来后的验证与返工经验

7.1 上电前的"三查三测"

新板子到手别急着接电池。先看外观,焊点有没有桥连、丝印和实际器件是否一致;再用万用表蜂鸣档测电源输入正负极、3.3V对地、5V对地,确保没有短路;接着空载上电,用示波器量每个电源轨的电压和纹波。

空载上电这一步最容易发现问题。我当时一版板子,3.3V电源纹波高达80mV,示波器一看,全是100kHz左右的开关噪声,排查了半天发现是LDO的反馈电阻走线绕太远,把噪声耦合进去了。把反馈网络移到LDO旁边后重画,纹波降到10mV以内。这种问题在双层板上更隐蔽,四层板至少让你多一个可排查的维度。

7.2 动力系统的实测到底该量什么

电机驱动部分要先采用"限流模式"给电,就是在电源输入端串一个限流电阻,防止控制逻辑写错导致全桥直通、电流爆表。我常用一个12V的灯泡串在电源线里,电机驱动有短路,灯泡就会亮起来保护。等确认驱动逻辑正常了再撤掉限流电阻。

正常跑起来之后,示波器探头接在MCU的3.3V电源脚和GND之间,然后把电机油门拉到最大和堵转,观察电压跌落幅度。一个合格的四层板设计,在这种工况下3.3V跌落不应该超过100mV,否则就是电源走线太细、储能电容不够或者地平面被切得太多。另外还要测编码器信号在电机高速时的边沿,看有没有抖动,智能车电机一开编码器读数乱跳,多半就是编码器信号线和电机驱动线没有保持距离。

7.3 我返工过的一次真实教训

我踩得最狠的一个坑是STM32H7的SPI Flash通信偶发错误。排查了两天,逻辑分析仪抓到的波形极少数情况下数据位出错,并不规律。后来拿放大镜对着板子看,发现底层有一根SPI时钟线正好横跨了L3电源平面上12V和3.3V之间的分割缝隙,回流路径被强行拉长了几十倍,过孔也打得少,相当于一个天线在接收电机PWM的噪声。最后重画板子时把这根线移到顶层走,问题再也没出现过。

这块板给我留下的教训非常深刻:四层板不是铺完内层就等于"稳了",而是每一个走线决策都在和物理世界做交换。你为了省一点布线空间跨了一条分割线,迟早会在某种工况下以某种奇特的现象还回来。

7.4 一块长期可维护的主板还差什么

最后,板子上一定要预留调试接口。串口调试口、SWD下载口、复位按键、LED指示灯,看起来占地方,实际上在调试阶段能帮你省下无数时间。我甚至习惯在每个关键电源轨上预留一个测试点(叠一个焊盘,方便飞线或示波器勾),在3.3V、5V、电池电压上留一颗0欧跳线,方便逐级断电排查故障。这些小设计每个成本几乎为零,但在车上出问题时的排查效率差好几倍。

还有一个容易忽略的点:丝印标注。除了标注好每个排针的引脚定义,还要把版本号、日期印在板上。我早期吃过亏,两版长得差不多的板子叠在一起,刷程序刷错了,白折腾一下午。现在每版都在丝印层标注V1.0、V1.1,搭配Git记录,再也不会搞混了。


做智能车PCB设计这件事,画板的时间其实只占很小一部分,真正花时间的是在布局和规则阶段把"为什么这样放、为什么这样走"想明白。等到多层板到手那一刻,你会发现整辆车最稳定的部分不是电机、不是轮胎,而是那张不起眼的PCB——它沉默地扛着十几安培的电流、几十兆赫兹的时钟、无数模拟信号,不让它们互相打扰,这就是硬件工程师能送给自己车最好的礼物。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 1:18:54

MFC版植物大战僵尸源码解析:从编译到游戏循环的完整指南

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

作者头像 李华
网站建设 2026/10/7 1:18:46

SAP新子公司财务账套配置实战:从公司代码到记账期间变式

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

作者头像 李华
网站建设 2026/10/7 1:18:45

多重背包三个层次:从朴素循环到二进制与单调队列优化

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

作者头像 李华
网站建设 2026/10/7 1:17:47

PADS VX2.4缝合孔设计原理与实战避坑指南

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

作者头像 李华
网站建设 2026/10/7 1:16:32

VNA阻抗测量实战:S11反射系数、校准去嵌与多场景应用

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

作者头像 李华
网站建设 2026/10/7 1:16:32

STM32CubeMX架构解析与自研配置工具设计选型复盘

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

作者头像 李华