news 2026/11/3 9:07:34

工业现场SPI通信隔离设计:从STM32到MAX14431的完整链路实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
工业现场SPI通信隔离设计:从STM32到MAX14431的完整链路实战

工业现场里跑SPI这件事,说简单也简单,四根线接上就能通;说麻烦也麻烦,一旦两端地电位不同、现场有变频器或者继电器在频繁动作,通信就开始随机出错,严重的时候连芯片都保不住。我前两年做一个电机控制柜里的数据采集板,主控用STM32F103RC,前端采集模块和主控之间隔着两米多的线缆,一开始图省事直接对接SPI,实验室跑了一周没问题,装到现场第二天就开始丢包,示波器一挂上去,地线上几十伏的共模跳变,SPI的时钟沿直接被干扰得乱七八糟。后来换成MAX14431BAEE+做隔离,问题才算彻底压下去。这篇就把这套隔离SPI链路的完整设计思路、选型逻辑、实操细节和踩过的坑,从头到尾捋一遍,给正在做工业或嵌入式隔离通信的朋友一个可以直接抄作业的参考。

1. 为什么工业现场的SPI必须做隔离

1.1 直连SPI在实验室能跑、到现场就崩的根本原因

很多人对SPI的印象停留在"短距离板级总线",这个认知在实验室环境里完全成立。STM32F103RC的SPI接口在PCB上跑几兆赫兹,走线几厘米,地平面完整,信号质量好得不得了。但工业现场是另一回事:主控板往往由开关电源供电,前端采集模块可能由另一路电源甚至隔离电源供电,两边的"地"名义上都是0V,实际上因为线路阻抗、电源回流路径、现场大功率设备的电磁耦合,两地之间会存在几十伏甚至上百伏的共模电压差。

这个共模电压差带来的问题有两层。第一层是信号层面:SPI的参考电平是本地地,当从机的地相对主机的地在跳动时,主机发出的时钟和数据在从机看来阈值就飘了,采样点可能落在不确定区域,误码率飙升。第二层是器件层面:如果两地电位差超过IO口的绝对最大额定值,STM32的引脚ESD结构会导通,轻则漏电、发热,重则直接击穿。我见过最惨的一次是现场雷击感应,一块板子的SPI引脚全烧了,连带着把主控也带走了。

所以隔离的本质不是"让通信更稳",而是"把两边的电气域彻底切开",让信号通过光、磁或者电容的方式跨过隔离带传递,两边的地各自为政,共模电压差再大也传不过来。

1.2 隔离SPI和普通光耦方案的区别在哪

一提到隔离,很多老工程师第一反应是"上光耦"。光耦确实能隔离,但用在SPI上问题不少。SPI是同步总线,时钟、MOSI、MISO、CS至少四根线,每根线都要一个光耦通道,四通道光耦加上外围限流电阻、上拉电阻,PCB面积一下就上去了。更关键的是速度:普通光耦的传输延迟在微秒级,而且上升下降沿被拉得很缓,SPI时钟跑到1MHz以上波形就惨不忍睹,边沿畸变导致采样错误。高速光耦能到10Mbps,但价格贵、功耗高,而且通道间延迟不一致,MISO回读的时序容易出问题。

MAX14431BAEE+这类数字隔离器走的是另一条路。它内部用的是变压器或者电容耦合,把数字信号调制后跨过隔离栅再解调回来,延迟在纳秒级,通道间匹配好,支持几十兆赫兹的SPI时钟,而且集成度高,一颗芯片搞定多个通道。对于SPI这种对时序敏感的总线,数字隔离器是比光耦更合适的选择。当然成本上数字隔离器单颗比普通光耦贵,但算上外围器件、PCB面积和调试时间,综合成本未必高。

1.3 MAX14431BAEE+在SPI隔离链路里的角色定位

MAX14431BAEE+是一颗多通道数字隔离器,具体通道配置和方向要根据实际SPI链路来定。SPI通信里,主机到从机的信号有时钟SCK、片选CS、数据MOSI,从机到主机的有MISO。如果只隔离单向,那主机侧发出的三根线需要主机到从机方向的隔离通道,MISO需要从机到主机方向的通道。MAX14431BAEE+的通道数和方向配置需要对照数据手册确认,选型时核心是看通道数够不够、方向对不对、速率能不能覆盖你的SPI时钟。

它在链路里的位置很明确:夹在STM32F103RC的SPI引脚和从机器件之间,主机侧的引脚接隔离器的输入侧,从机侧接输出侧,隔离器两侧各用各自的电源和地。这样STM32看到的是本地信号,从机看到的也是本地信号,中间那一段共模电压差被隔离栅挡住了。

2. 硬件链路设计:从STM32F103RC到隔离器的每一根线

2.1 STM32F103RC的SPI资源分配与引脚选择

STM32F103RC这颗片子有3个SPI接口,SPI1挂在APB2上,最高时钟72MHz分频后能到36MHz,SPI2和SPI3挂在APB1上,最高18MHz。做隔离通信的时候,SPI时钟不建议跑太高,因为隔离器本身有传播延迟,加上线缆延迟,时钟太高时序余量就没了。我一般把SPI时钟设在1MHz到5MHz之间,具体看从机器件的能力和线缆长度。

引脚选择上,SPI1的默认引脚是PA5(SCK)、PA6(MISO)、PA7(MOSI),NSS可以用PA4做软件片选。如果这几个脚被占用了,可以重映射到PB3、PB4、PB5。我建议优先用SPI1,因为它的时钟源质量好,分频灵活。片选我强烈建议用软件片选,也就是普通GPIO控制,原因后面会讲。

配置的时候有个细节:MISO引脚在主机模式下要配置成上拉输入或者浮空输入,具体看隔离器输出侧的状态。如果隔离器输出在空闲时是高阻,那STM32这边最好加上拉,避免悬空导致误触发。SCK和MOSI配置成推挽复用输出,速度等级选中等就行,别选最高档,减少EMI。

2.2 隔离器的电源域划分与地平面处理

隔离器的两侧必须用独立的电源和地,这是隔离的前提。主机侧用STM32系统的3.3V,从机侧用从机系统的电源,两边各自有独立的LDO或者DC-DC。如果从机侧没有独立电源,那就需要一个隔离电源模块,把主机侧的电源隔离后给从机侧供电。这一点很多人会忽略:光有信号隔离没有电源隔离,两边的地还是通过电源连在一起,隔离等于白做。

地平面处理上,隔离器下方要开隔离槽,把两侧的铜皮彻底分开,爬电距离和电气间隙要满足安规要求。如果是强电场合,隔离槽的宽度要按工作电压来算,一般1mm对应100V左右,具体查安规标准。信号线跨过隔离带的时候,只能在隔离器正下方走,不能从其他地方绕,否则隔离效果打折扣。

2.3 SPI四根线的隔离方向与通道映射

把SPI四根线映射到隔离器通道上,方向一定要理清楚。以STM32为主机、外部器件为从机为例:

SPI信号方向隔离通道方向备注
SCK主机到从机主机侧输入,从机侧输出时钟,时序关键
MOSI主机到从机主机侧输入,从机侧输出数据
CS主机到从机主机侧输入,从机侧输出片选,建议软件控制
MISO从机到主机从机侧输入,主机侧输出回读数据

如果从机侧还有中断或者状态引脚要回传,也要占用反向通道。选隔离器的时候,正向通道数和反向通道数要数清楚,别到时候发现方向不够用。MAX14431BAEE+的通道配置要对照手册,确认正向反向各几路,能不能满足你的链路需求。

2.4 上拉电阻、限流电阻和去耦电容的取值逻辑

隔离器两侧的电源引脚旁边都要放去耦电容,典型值是0.1uF加1uF或者10uF,0.1uF尽量靠近引脚,负责高频,大电容负责低频储能。这个没什么好省的,隔离器内部开关动作会产生电流尖峰,去耦不好会导致输出误翻转。

上拉电阻主要用在片选和MISO上。片选线在空闲时要保持高电平,确保从机不被误选中,所以在主机侧或者从机侧加一个10k上拉到对应电源。MISO如果从机输出是开漏或者高阻,也要加上拉。限流电阻一般不需要,数字隔离器的输入是高阻CMOS,不像光耦需要限流。但如果线缆很长,可以在隔离器输出侧串一个22欧到100欧的电阻,抑制反射和振铃,具体值根据线缆特性阻抗来调。

3. 软件时序:隔离器延迟对SPI模式的影响

3.1 隔离器传播延迟怎么吃掉时序余量

数字隔离器再快也有传播延迟,典型值几纳秒到几十纳秒,而且上升沿和下降沿的延迟可能不一样,这个差值叫脉宽失真。SPI通信里,主机发出SCK,从机在SCK边沿采样数据,MISO数据再经过隔离器回到主机,主机在另一个边沿采样。整个环路上,SCK去程延迟、从机响应时间、MISO回程延迟,三者叠加,如果超过半个SCK周期,采样就会出错。

举个例子,SPI时钟1MHz,周期1000ns,半周期500ns。假设隔离器单向延迟20ns,SCK去程20ns,MISO回程20ns,从机响应假设50ns,总共90ns,远小于500ns,余量充足。但如果SPI时钟跑到10MHz,半周期只有50ns,90ns的延迟直接超了,通信必挂。所以隔离SPI的时钟上限,本质上是被环路延迟卡住的,不是隔离器标称速率卡住的。

3.2 SPI模式0到模式3在隔离链路下的选择

SPI有四种模式,区别在时钟极性和相位。模式0是空闲低电平、第一个边沿采样,模式3是空闲高电平、第二个边沿采样,这两种是最常用的。在隔离链路下,我建议优先用模式0,原因是空闲低电平在隔离器输出侧更容易保持稳定,而且大多数从机器件默认支持模式0。

模式1和模式2用得少,因为它们的采样边沿和空闲电平组合在某些从机上不兼容。如果你必须用模式1或2,那要仔细核对从机手册和隔离器延迟,确保采样点落在数据稳定窗口内。实测下来,模式0在隔离链路上的容错性最好,能不用其他模式就不用。

3.3 软件片选相比硬件片选的实战优势

STM32的SPI硬件NSS在主机模式下有个毛病:它只能在传输一个字节的时候自动拉低,多字节连续传输时片选会中间跳变,导致从机误判帧边界。所以做SPI通信,尤其是和Flash、ADC这类需要连续读写的器件,几乎都用软件片选。

软件片选就是用普通GPIO,传输前拉低,传输完拉高,中间保持低电平。在隔离链路下,软件片选还有个额外好处:你可以精确控制片选和时钟的先后顺序。比如先拉低片选,延时几个微秒让从机准备好,再发时钟;传输完先停时钟,再拉高片选。这个顺序在隔离链路上很重要,因为隔离器有延迟,片选和时钟如果同时变化,从机可能看到片选还没稳定时钟就来了。

3.4 用HAL库配置SPI的完整代码路径

STM32F103RC用HAL库配置SPI,核心是初始化结构体的几个参数。下面是一段我常用的配置,SPI1主机模式,模式0,8位数据,软件片选:

SPI_HandleTypeDef hspi1; void SPI1_Init(void) { hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } }

BaudRatePrescaler选16,SPI1时钟72MHz,分频后4.5MHz,这个速率在隔离链路上比较稳。如果线缆长或者从机慢,可以选32或者64,降到2.25MHz或1.125MHz。片选GPIO单独初始化,推挽输出,初始高电平。

读写函数用HAL_SPI_TransmitReceive,注意它是阻塞式的,传输期间会占用CPU。如果数据量大,可以用DMA,但DMA在隔离链路上要注意传输完成中断的时机,别在隔离器还没把最后一个字节送出去的时候就拉高片选。

4. 实测中暴露的问题与排查链路

4.1 通信偶发丢包:从示波器抓波形开始

现场调试最怕偶发问题,一天出几次,抓不到现场。我的做法是先用示波器长时间抓,触发条件设在片选下降沿,看整个传输过程的波形。重点看三个地方:SCK的边沿是否干净、MISO的数据在采样点是否稳定、片选和SCK的时序关系是否正确。

有一次抓到的问题是MISO在SCK上升沿附近有振铃,导致主机采样到错误值。原因是线缆太长,阻抗不匹配。解决办法是在隔离器输出侧串了33欧电阻,振铃明显改善。还有一次是SCK占空比不对,高电平时间比低电平短很多,查下来是隔离器输出侧的负载电容太大,边沿被拉缓,换了小容值去耦电容后恢复正常。

4.2 隔离器发热:电源和负载的隐性陷阱

隔离器发热一般两个原因:一是电源电压超了,二是输出负载太重。MAX14431BAEE+的供电范围要对照手册,别想当然接5V,很多数字隔离器是3.3V或者5V兼容,但具体型号有差异。输出负载方面,如果隔离器输出直接驱动长线缆,线缆电容加上从机输入电容,总负载可能超过隔离器的驱动能力,导致内部输出级一直在大电流状态,发热就上来了。

排查方法是先量电源电压,确认在范围内;再断开负载,看发热是否消失。如果断开负载就不热了,那就是负载问题,需要在隔离器输出和负载之间加缓冲器,或者降低线缆长度。我一般会在隔离器输出侧加一个74LVC1G125之类的缓冲器,既隔离负载又增强驱动。

4.3 地弹导致误触发:隔离槽和回流路径的检查

地弹是隔离链路里比较隐蔽的问题。虽然隔离器把两边地切开了,但如果隔离器两侧的电源回流路径设计不好,比如去耦电容的地引脚离隔离器太远,回流电流会绕一大圈,产生地弹,影响隔离器内部逻辑。

检查方法是看PCB布局:去耦电容是不是紧贴隔离器电源引脚,隔离槽是不是完整,两侧地平面有没有被信号线割裂。我见过一个案例,隔离器下方没开槽,两侧地通过一小块铜皮连着,结果隔离效果大打折扣,共模干扰照样传过去。后来把槽开完整,问题解决。

4.4 上电时序不一致引发的初始化失败

上电时序问题在多电源系统里很常见。主机侧3.3V和从机侧电源如果上电顺序不一致,可能出现主机已经初始化完SPI开始发时钟,从机侧电源还没稳,隔离器输出乱跳,从机被误触发。解决办法是在软件里加延时,等从机侧电源稳定后再初始化SPI;硬件上可以在从机侧电源加一个电源监控芯片,电源稳了再给主机一个使能信号。

还有一种情况是隔离器本身的上电复位时间,手册里一般会给一个tPU参数,上电后要等这个时间隔离器才正常工作。软件初始化前加个几毫秒延时,基本能覆盖。

5. 从原理图到PCB的隔离设计细节

5.1 隔离器两侧电源的独立性与去耦布局

隔离器两侧电源必须独立,这是铁律。主机侧用STM32的3.3V,从机侧用独立的3.3V或者5V,两边不共地。如果从机侧没有独立电源,就用隔离电源模块,比如B0303S或者类似的小功率隔离DC-DC,把主机侧电源隔离后给从机侧。

去耦布局上,每个电源引脚旁边放0.1uF,尽量靠近引脚,走线短而粗。再在电源入口放一个10uF的钽电容或者陶瓷电容,负责低频。两侧的去耦电容地要接到各自的地平面,不能跨隔离带。

5.2 隔离带宽度与爬电距离的工程计算

隔离带宽度不是随便定的,要根据工作电压和安规要求来算。一般工业场合,工作电压250V以内,爬电距离要求2mm到3mm,电气间隙1.5mm到2mm。如果工作电压更高,距离要相应增加。具体数值查IEC 60664或者GB/T 16935标准。

PCB上实现的时候,隔离带就是一条没有铜皮的槽,宽度按计算结果来。槽的两侧铜皮边缘要光滑,不能有毛刺,避免尖端放电。如果空间紧张,可以用隔离器自带的爬电距离,但PCB上的槽还是要开,双保险。

5.3 信号线跨隔离带的走线禁忌

信号线跨隔离带,只能在隔离器正下方走,而且要走直线,不能拐弯,不能和其他信号线并行。跨隔离带的线越短越好,减少耦合面积。绝对不能从隔离槽的其他位置绕过去,那样等于把隔离带短路了。

还有一点,跨隔离带的信号线两侧不要铺铜,或者铺铜要离信号线足够远,避免形成耦合电容。如果信号线必须换层,换层过孔要放在隔离带同一侧,不能跨带打孔。

5.4 测试点预留与调试接口设计

调试阶段,测试点能救命。我一般会在隔离器两侧的每根信号线上留测试点,主机侧留一排,从机侧留一排,方便示波器双通道对比。测试点用小的焊盘或者测试环,不要用长引脚,避免引入额外电容。

调试接口方面,如果从机侧有MCU,可以留一个串口或者SWD接口,方便单独调试从机。但要注意,从机侧的调试接口如果和主机侧共地,调试的时候隔离就被破坏了,所以调试接口最好也经过隔离,或者调试时断开主机侧。

6. 隔离SPI链路的验证与长期稳定性

6.1 用回环测试验证隔离器通道完整性

板子焊好之后,第一步是回环测试。把隔离器主机侧的MOSI和从机侧的MISO短接(如果方向允许),或者用软件发已知数据,从机侧回读,对比数据是否一致。更简单的办法是在从机侧把MOSI和MISO短接,主机发什么就收到什么,验证正向和反向通道都通。

回环测试要覆盖所有SPI模式和数据模式,发0x00、0xFF、0xAA、0x55这些边界值,看有没有位翻转。如果发现某一位固定错,可能是通道接反或者虚焊;如果随机错,可能是时序或者干扰问题。

6.2 长时间跑数据统计误码率

回环测试通过不代表现场没问题,还要做长时间误码率测试。写一个测试程序,主机持续发递增数据,从机回读,统计错误次数。跑几个小时甚至几天,看误码率是否在可接受范围。工业场合一般要求误码率低于10的负9次方,消费级可以放宽。

测试的时候要模拟现场条件,比如用变频器或者继电器在旁边动作,看误码率是否上升。如果上升明显,说明隔离设计还有优化空间,比如加屏蔽、改走线、调时钟速率。

6.3 温度循环和电源波动下的通信稳定性

工业设备要过温度循环测试,隔离SPI链路也不例外。高低温下,隔离器的传播延迟会变化,从机器件的时序也会漂,如果余量不够,高温或低温下就可能出错。测试方法是把板子放进温箱,从-40度到85度循环,每个温度点跑通信测试,记录误码率。

电源波动测试也重要,把主机侧和从机侧电源分别拉到上下限,看通信是否正常。有些隔离器在电源电压偏低时输出幅度不够,导致从机识别错误。如果发现这个问题,要么换宽压隔离器,要么加电源监控。

6.4 现场EMC干扰下的表现与加固手段

现场EMC是终极考验。变频器、接触器、电机这些设备产生的干扰,通过空间辐射和线缆传导进入系统。加固手段有几个:线缆用屏蔽双绞线,屏蔽层单端接地;隔离器两侧加TVS管,抑制浪涌;PCB上隔离带附近加guard ring,引导干扰电流。

我做过一个项目,现场有台大功率变频器,一开始通信每天错几次,后来加了屏蔽线、TVS和guard ring,连续跑了一个月零误码。所以隔离设计不是一劳永逸,要结合现场情况不断加固。

7. 几个容易忽略的工程经验

7.1 隔离器不是万能药,共模干扰路径要堵死

隔离器能挡共模电压差,但挡不住空间辐射的共模干扰。如果干扰通过空间耦合到隔离器从机侧的线缆上,照样会影响通信。所以隔离设计要配合屏蔽、滤波、接地,多管齐下。我见过有人以为加了隔离器就万事大吉,结果线缆没屏蔽,干扰直接从线缆进去,隔离器也救不了。

7.2 从机侧电源的纹波对隔离通信的影响

从机侧电源如果纹波大,隔离器输出会跟着抖,从机器件可能误判。尤其是用隔离DC-DC供电的时候,DC-DC的开关纹波如果没滤干净,会直接调制到SPI信号上。解决办法是在隔离DC-DC输出加LC滤波,或者用LDO再稳一级。实测下来,从机侧电源纹波控制在50mV以内,通信就很稳。

7.3 软件重试机制和超时保护的必要性

再好的硬件也可能出偶发错误,软件层面要有重试和超时保护。我的做法是每次SPI传输带超时,超时后重试,重试三次还失败就报错。重试的时候要先拉高片选,延时,再重新拉低开始,确保从机状态复位。这个机制在現場能挡掉大部分偶发干扰,避免整个系统卡死。

7.4 选型时隔离器速率、通道数、封装的权衡

选隔离器不能只看速率,要综合考虑通道数、方向、封装、供电、成本。速率够用就行,别盲目追高,高速隔离器往往功耗大、价格贵、EMI难搞。通道数要留余量,万一以后要加信号,不用重新换芯片。封装方面,SOIC窄体省空间,宽体爬电距离大,根据安规要求选。MAX14431BAEE+的具体封装和参数要对照手册,结合你的链路需求来定。

7.5 备选方案:什么时候该考虑其他隔离方案

数字隔离器不是唯一选择。如果SPI速率很低,比如几百kHz,光耦也能凑合;如果通道数特别多,可以考虑隔离器阵列或者FPGA加隔离;如果成本极度敏感,可以评估电容隔离或者磁隔离的其他型号。但不管选哪种,隔离的基本原理和设计要点是一样的:电源隔离、地隔离、信号跨带、时序余量、EMC加固,这几条跑不掉。

整套链路做下来,我的体会是隔离SPI的难点不在隔离器本身,而在系统级的电源、地、时序、EMC设计。隔离器只是一颗芯片,把它用对,需要把整个链路当成一个系统来对待。从STM32的SPI配置,到隔离器的电源和地处理,到PCB的隔离带和走线,到软件的时序和重试,每一环都不能掉链子。现场跑稳了,回头看这些细节,都是值得的。

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

分体式超声波浓度计选型与实操避坑指南

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

作者头像 李华
网站建设 2026/11/3 9:07:10

工业SPI隔离实战:MAX14431数字隔离器解决地电位干扰与电平转换

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

作者头像 李华
网站建设 2026/11/3 9:06:59

STM32进阶必做:FreeRTOS、PID、FOC、BMS与综合项目实战

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

作者头像 李华
网站建设 2026/11/3 9:05:48

工业SPI隔离设计实战:MAX14431BAEE+与R7KA8T2LFLCAC选型、布局与排错

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

作者头像 李华
网站建设 2026/11/3 9:05:43

嵌入式LLM集成实战:从约束构建到硬件闭环的完整指南

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

作者头像 李华
网站建设 2026/11/3 9:05:26

macOS下用Luatools烧录LuatOS固件:驱动配置与调试实战

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

作者头像 李华