1. 从一块点不亮的屏说起LT9211到底解决了什么问题去年帮朋友调一块10.1寸的工业屏主板端只有MIPI DSI输出屏幕却是LVDS接口中间差了整整一个信号体系。当时第一反应是找现成的转接板翻了一圈发现要么贵得离谱要么资料残缺。后来选了LT9211这颗芯片从画板到点亮前后折腾了差不多两周中间踩的坑足够写一篇长文。这篇就把整个硬件设计过程、配置逻辑和那些文档里不会写的细节完整梳理一遍。LT9211是一颗MIPI DSI/CSI到LVDS的桥接芯片输入端支持1到4 lane的MIPI输出端支持单路或双路LVDS最高能跑到154MHz的像素时钟。它的定位很明确主控只有MIPI输出但手头的屏幕或者下游设备只认LVDS中间需要一颗翻译官。这类场景在工业控制、车载显示、医疗设备里非常常见因为大量成熟稳定的LVDS屏还在服役而新一代主控芯片越来越倾向于只保留MIPI接口。为什么不用FPGA做这个转换我实际对比过。用FPGA实现MIPI DSI接收加LVDS发送逻辑资源倒不是问题但MIPI的D-PHY物理层对时序要求极严自己搭PHY或者外挂PHY芯片成本和调试周期都上去了。LT9211把PHY和协议解析都集成在里面外围只需要少量阻容和一颗配置用的MCU整体BOM能控制在很低的水平。对于不需要灵活处理视频流、只做透明转发的场景专用桥接芯片是更务实的选择。这篇文章适合正在做MIPI转LVDS方案选型的硬件工程师也适合已经选了LT9211但卡在某个环节的调试人员。我会从芯片的引脚功能讲起把电源、时钟、差分走线这些硬件设计要点拆开说然后重点讲新唐N76E003怎么做初始化配置最后把调试过程中遇到的典型问题逐个分析。内容基于实际项目经验涉及参数计算的地方会给出推导过程方便你根据自己的屏幕规格调整。2. LT9211的引脚功能拆解与最小系统搭建2.1 电源域划分与上电时序的隐藏要求LT9211的电源引脚分了好几组初次看数据手册容易懵。它主要有三组供电1.2V核心电压、1.8V的MIPI和LVDS IO电压、3.3V的普通IO和控制逻辑电压。这三组电不是随便接上就行上电顺序有讲究。我第一版板子就是三路电同时上结果芯片偶尔能工作偶尔不工作概率大概三七开。后来查了半天才发现数据手册里有一行小字写着建议1.2V核心电压先建立然后1.8V最后3.3V。虽然芯片内部有上电复位电路但三路同时上电时如果3.3V先到而1.2V还没稳内部逻辑可能进入一个不确定状态。实际设计中如果嫌麻烦不想做复杂的时序控制有个取巧的办法在1.2V的LDO使能脚上加一个RC延时让它的使能比3.3V晚个几毫秒。具体参数我用的是10k电阻配1uF电容时间常数10ms左右实测下来足够让3.3V先稳定。当然更稳妥的做法是用一颗带PGPower Good信号的LDO把前一级的PG接到下一级的使能形成级联。每组电源的滤波电容也有讲究。1.2V核心电压对噪声最敏感我用了两个1uF加一个0.1uF尽量靠近芯片引脚。1.8V那组因为要给MIPI的HS信号做参考纹波要求也高同样配置。3.3V相对宽松一个1uF加一个0.1uF就够了。所有电容的接地端要就近打过孔到地平面不要走长线。2.2 MIPI输入端的差分对处理与端接电阻MIPI DSI的输入有1到4对差分数据线加一对差分时钟线。LT9211的MIPI接收端内部已经有100欧姆的差分端接电阻外部不需要再加。这一点和某些PHY芯片不同我第一次设计时习惯性地在外面并了100欧姆结果信号幅度被拉低怎么调都不出图。去掉之后立刻正常。差分对的走线要求比较严格。阻抗要控制在100欧姆差分单端50欧姆。我用的是四层板MIPI走线走在顶层第二层完整地平面线宽和间距用SI9000算了一下大概线宽5mil、间距5mil能到100欧姆。走线尽量等长对内偏差控制在5mil以内对间偏差控制在20mil以内。如果板子空间紧张对间偏差可以放宽到50mil但不能再多了否则采样窗口会偏移。还有一个容易忽略的点MIPI差分对下面不要走其他信号尤其是时钟或者电源。我有一版在MIPI走线下面穿了一根3.3V的电源线结果屏幕上出现规律的横向条纹。把电源线挪走之后条纹消失。原因是电源线上的噪声通过寄生电容耦合到了差分对上而MIPI的HS信号幅度只有200mV左右非常容易被干扰。2.3 LVDS输出端的差分走线与终端匹配LVDS输出这边LT9211支持单路和双路两种模式。单路就是一组时钟加三组数据双路就是两组时钟加六组数据像素时钟能翻倍。具体用哪种取决于你的屏幕分辨率和刷新率。比如1920x108060Hz像素时钟大概148.5MHz单路LVDS的时钟频率是像素时钟的7倍那就超过1GHz了肯定跑不了。这时候要么用双路LVDS要么降低刷新率。LVDS的差分阻抗也是100欧姆但终端匹配电阻需要加在接收端也就是屏幕那一侧。如果你的屏幕已经内置了100欧姆端接那就不用管。如果没有需要在LT9211的输出端靠近连接器的地方加100欧姆电阻。我遇到过一块屏规格书上没写有没有内置端接量了一下发现没有加上电阻后图像立刻稳定。LVDS的差分对走线要求和MIPI类似但容错度稍高一些。对内等长控制在10mil以内对间等长控制在50mil以内。LVDS的时钟对和数据对之间的偏差要特别注意如果偏差太大接收端采样会出错。我一般会把时钟对走在数据对的中间这样到各组数据对的距离比较均匀。2.4 配置接口与N76E003的硬件连接LT9211的配置接口是I2C从机地址固定。新唐的N76E003作为配置MCU通过I2C总线往LT9211里写寄存器。硬件连接上N76E003的I2C引脚需要上拉电阻典型值4.7k接到3.3V。如果总线上还有其他I2C设备上拉电阻可以共用但要注意总线电容不要超过400pF。N76E003这边除了I2C的两根线还需要一根复位线接到LT9211的复位引脚。复位引脚是低电平有效N76E003上电后先拉低复位延时一段时间再拉高然后开始I2C配置。这个延时我一般给100ms确保LT9211的内部LDO和PLL都稳定了。还有一根中断线LT9211如果有异常会拉低中断引脚。这根线可以接到N76E003的外部中断引脚也可以不接看你的系统需不需要实时监控。我一般会接上方便调试时判断芯片状态。3. 寄存器配置的底层逻辑从像素时钟到LVDS时序3.1 像素时钟的计算与PLL参数推导LT9211内部有一个PLL用来从MIPI的时钟或者外部晶振产生LVDS需要的像素时钟。配置的核心就是算清楚PLL的分频和倍频参数。假设你的屏幕是1024x60060HzLVDS单路。先算像素时钟总像素数是1024加水平消隐600加垂直消隐。假设水平消隐是160垂直消隐是30那么总像素是(1024160)乘以(60030)等于1184乘以630约745920个像素每帧。乘以60Hz得到约44.75MHz的像素时钟。LVDS的时钟频率是像素时钟的7倍约313MHz在LT9211的范围内。然后看PLL。LT9211的PLL输入可以是MIPI的时钟也可以是外部晶振。如果用外部晶振常见的是25MHz。PLL的输出频率需要等于像素时钟乘以一个固定系数具体看数据手册的公式。假设输出需要44.75MHz晶振25MHz那么分频比和倍频比需要凑出这个频率。一般PLL的公式是输出频率等于晶振频率除以参考分频再乘以反馈倍频。通过调整这两个参数可以逼近目标频率。实际配置时LT9211的寄存器里有一组PLL参数包括参考分频、反馈倍频、输出分频。我一般会写一个小脚本穷举这些参数组合找到误差最小的那一组。误差控制在0.1%以内屏幕基本不会闪。如果误差超过0.5%可能会出现画面抖动或者间歇性黑屏。3.2 MIPI接收端的lane数与时序参数设置MIPI接收端需要配置lane数、数据格式和时序参数。lane数根据你的主控输出决定1到4 lane都支持。数据格式一般是RGB888也有RGB565的情况。如果主控输出的是RGB565LT9211内部会自动扩展到RGB888再输出LVDS这个不需要额外配置。时序参数包括HS Settle和HS Term Enable这两个参数决定了MIPI接收端在高速模式下的采样时机。HS Settle是进入高速模式后等待多少个时钟周期才开始采样HS Term Enable是端接电阻使能的时机。这两个参数如果设得不对会出现花屏或者完全无图。我的经验是HS Settle先设一个中间值比如0x0A然后根据示波器看MIPI差分信号的眼图来微调。如果眼图张开度不够适当增大HS Settle。HS Term Enable一般比HS Settle早几个周期具体看PHY的特性。调试时可以用LT9211的测试模式输出固定图案这样更容易判断是MIPI接收的问题还是LVDS发送的问题。3.3 LVDS输出格式与双路模式的配置差异LVDS输出这边需要配置颜色格式、映射方式和时钟极性。颜色格式一般是VESA或者JEIDA这个取决于你的屏幕规格。VESA和JEIDA的区别在于数据位的映射顺序配错了会出现颜色错乱比如红色变成蓝色。我一般先试VESA如果颜色不对再换JEIDA。双路LVDS的配置和单路有几个关键差异。首先需要使能双路模式然后把奇偶像素分别映射到两组LVDS上。奇偶像素的划分方式有几种常见的是按像素交替也有按行交替的。具体用哪种要看屏幕的规格书。如果配错了画面会出现左右分屏或者奇偶行错位。双路模式下两组LVDS的时钟是独立的但频率相同。走线时要注意两组时钟的等长偏差控制在100mil以内。如果偏差太大两组数据的到达时间不一致画面会出现撕裂。3.4 N76E003的I2C配置代码框架与写入顺序N76E003的配置代码不复杂核心就是I2C的读写函数加上一个寄存器配置表。但写入顺序有讲究不能随便打乱。我的做法是分几个阶段写。第一阶段写电源相关的寄存器确保各路电源正常。第二阶段写PLL参数等PLL锁定。第三阶段写MIPI接收参数。第四阶段写LVDS输出参数。最后写使能寄存器让芯片开始工作。每个阶段之间加一点延时给芯片内部状态机切换的时间。I2C的时钟频率不要太高100kHz就够了。LT9211的I2C接口支持400kHz但配置阶段用100kHz更稳。写入时每个寄存器写完后要读回来验证确保写进去了。我遇到过I2C时序不匹配导致某些寄存器写不进去的情况读回验证能及时发现。代码框架大概是这样的先初始化N76E003的I2C外设设置时钟和引脚。然后定义一个寄存器配置数组每个元素包含寄存器地址和值。写一个循环遍历数组依次写入。写完后读回关键寄存器和预期值对比。如果不对通过串口打印错误信息方便定位。4. 调试过程中那些让人抓狂的典型问题4.1 屏幕完全无显示从电源到时钟的逐级排查屏幕完全不亮是最常见也最让人焦虑的问题。我的排查顺序是先量电源再量时钟最后看信号。电源方面用万用表量LT9211的每组供电引脚确认电压值和纹波。1.2V的纹波要小于20mV1.8V小于30mV3.3V小于50mV。如果纹波超标先查滤波电容和LDO。我遇到过一颗LDO的反馈电阻焊错导致1.2V输出只有0.9V芯片根本不工作。时钟方面用示波器量LT9211的晶振引脚看有没有起振。如果没有起振检查晶振的负载电容和串联电阻。我用的25MHz晶振负载电容是12pF串联电阻是1M。如果晶振起振了但频率不对可能是负载电容不匹配。信号方面先量MIPI的差分时钟看有没有高速脉冲。如果没有说明主控那边没输出或者MIPI的lane数配置不对。如果有脉冲但幅度不对检查端接电阻和走线阻抗。然后再量LVDS的输出看有没有差分信号。如果LVDS没有输出可能是配置没写进去或者PLL没锁定。4.2 画面花屏与闪烁MIPI时序参数的微调过程花屏和闪烁通常是MIPI接收端的时序参数没调好。我的做法是先用LT9211的内部测试图案确认LVDS输出没问题。然后切回MIPI输入逐步调整HS Settle和HS Term Enable。调整时用示波器看MIPI差分信号的眼图。眼图的张开度越大采样余量越足。如果眼图闭合说明信号完整性有问题需要检查走线和端接。如果眼图张开但采样点不对调整HS Settle。我遇到过一次花屏眼图看起来没问题但画面就是有规律的噪点。后来发现是MIPI的时钟和数据之间的偏差太大导致采样窗口偏移。重新走线把时钟和数据对的偏差控制在10mil以内花屏消失。闪烁的问题通常是像素时钟不准。用频率计量一下LVDS的时钟频率和理论值对比。如果偏差超过0.5%重新算PLL参数。我一般会把PLL参数的误差控制在0.05%以内这样画面非常稳定。4.3 颜色错乱VESA与JEIDA格式的快速判断方法颜色错乱是LVDS格式配错导致的。VESA和JEIDA的区别在于数据位的映射顺序。如果红色显示成蓝色或者绿色显示成红色基本就是格式反了。快速判断的方法在屏幕上显示一个纯红色的画面。如果显示出来是蓝色说明红色和蓝色的数据位交换了需要切换VESA和JEIDA。如果显示出来是绿色说明红色和绿色的数据位交换了同样切换格式。还有一种情况是颜色整体偏暗或者偏亮这通常是数据位的极性反了。LT9211的寄存器里有一个位可以翻转数据极性改一下就好。4.4 双路LVDS的奇偶像素错位与走线等长修正双路LVDS最容易出的问题是奇偶像素错位。画面看起来像是被水平切成了两半左边和右边的内容对调了。这是奇偶像素的划分方式配错了。LT9211支持几种奇偶划分方式常见的是按像素交替和按行交替。如果屏幕规格书没写清楚可以两种都试一下。按像素交替时偶数像素走第一组LVDS奇数像素走第二组。按行交替时偶数行走第一组奇数行走第二组。走线等长方面两组LVDS的时钟对要尽量等长。我一般会把两组时钟走在同一层紧挨着这样长度自然接近。如果实在做不到等长偏差控制在100mil以内。超过这个值画面会出现撕裂或者闪烁。5. 从原理图到PCB那些影响成败的布局细节5.1 差分对的参考平面与跨分割处理差分对的参考平面必须完整不能有分割。我见过一版板子MIPI差分对下面正好是电源平面的分割线结果信号完整性一塌糊涂。跨分割会导致回流路径断裂差分信号的共模噪声急剧增加。如果板子空间限制实在避不开分割可以在分割处加缝合电容给回流信号提供一条低阻抗路径。缝合电容一般用0.1uF尽量靠近分割处。但这是补救措施能避开分割就避开。LVDS差分对同样需要完整参考平面。如果LVDS走线换层换层过孔旁边要加地过孔给回流信号提供通路。地过孔离信号过孔越近越好一般控制在50mil以内。5.2 晶振与PLL滤波的布局要点晶振要尽量靠近LT9211的晶振引脚走线越短越好。晶振下面不要走其他信号尤其是高速信号。晶振的负载电容要靠近晶振引脚接地端就近打过孔。PLL的滤波电路包括一个电阻和几个电容要靠近LT9211的PLL滤波引脚。电阻和电容的接地端要单独走线到地平面不要和数字地混在一起。我一般会在PLL滤波电路下面挖一块独立的铜皮通过一个过孔接到主地平面减少数字噪声的干扰。5.3 连接器选型与LVDS线缆的匹配LVDS连接器要选阻抗匹配的一般用100欧姆差分阻抗的连接器。如果连接器阻抗不匹配信号在连接器处会产生反射导致眼图变差。LVDS线缆也要选100欧姆差分阻抗的。我用的是一对双绞线外面有屏蔽层。屏蔽层要接到连接器的金属外壳外壳再接到板子的地。如果屏蔽层不接地线缆会变成天线引入外部噪声。线缆长度也要注意。LVDS的传输距离一般不超过10米超过这个距离信号衰减严重。如果必须长距离传输可以考虑加均衡器或者用光纤转换。5.4 散热与EMI的取舍实测数据分享LT9211的功耗不大正常工作时大概200mW左右一般不需要额外散热。但如果环境温度高或者芯片周围有其他发热元件还是要注意布局。我一般会在芯片下面铺一块铜皮通过过孔连接到地平面帮助散热。EMI方面LVDS的差分信号本身辐射较小但时钟信号的谐波可能会超标。如果EMI测试不过可以在LVDS的时钟线上加共模扼流圈或者调整走线的参考平面。我实测过加共模扼流圈后时钟谐波的辐射能降低6dB左右。MIPI的辐射相对较大因为频率高。如果EMI要求严格可以在MIPI走线上加屏蔽罩或者用屏蔽线缆。但屏蔽罩会增加成本需要权衡。6. 配置MCU的固件设计N76E003的实战代码与优化6.1 I2C读写函数的健壮性设计N76E003的I2C外设用起来不难但要做健壮需要加一些保护。我的做法是每次读写都加超时检测如果I2C总线被拉死超时后重新初始化I2C外设。这样即使LT9211偶尔不响应MCU也不会卡死。读写函数还要加重试机制。如果写失败重试三次。三次都失败通过串口打印错误信息然后继续写下一个寄存器。不要因为一个寄存器写失败就停止整个配置流程有些寄存器可能不是必须的。I2C的时钟延展也要处理。LT9211在某些情况下会拉低SCL延长时钟周期。N76E003的I2C外设支持时钟延展但需要配置正确。如果没配置可能会误判为总线错误。6.2 寄存器配置表的组织与版本管理寄存器配置表我一般用一个结构体数组来组织每个元素包含寄存器地址、值、延时和重试次数。这样配置流程可以统一处理代码也清晰。版本管理方面我会在配置表里加一个版本号每次修改都更新版本号。固件启动时通过串口打印版本号方便确认烧录的是哪个版本。我吃过亏调试时改了配置但忘了重新烧录结果对着旧版本调了半天。配置表还要加注释说明每个寄存器的用途和取值依据。尤其是PLL参数要写清楚是怎么算出来的。过几个月回头看没有注释根本看不懂。6.3 上电自检与异常状态上报N76E003上电后先做自检。自检包括I2C总线是否正常、LT9211是否响应、关键寄存器是否写入成功。如果自检失败通过串口或者LED指示错误码。异常状态上报方面我会把LT9211的中断引脚接到N76E003的外部中断。如果LT9211报异常N76E003读取状态寄存器通过串口打印出来。这样调试时能快速定位问题。自检和异常上报的代码要尽量简单不要依赖太多外设。我一般只用串口和GPIO这样即使其他外设有问题也能输出错误信息。6.4 固件升级的预留接口设计产品出货后可能需要升级固件所以N76E003的固件要预留升级接口。我一般会留一个UART接口通过Bootloader实现固件升级。Bootloader占用的Flash空间不大N76E003的18KB Flash足够。升级接口的协议要简单可靠我一般用XMODEM或者自定义的简单协议。升级时先擦除应用区然后接收数据写入最后校验。校验通过后跳转到应用区执行。预留升级接口的好处是如果现场发现配置有问题不用拆机就能升级。我有个项目就是通过升级接口修复了一个LVDS格式配错的问题省了很多事。7. 几个容易被忽略的细节与个人经验LT9211的复位引脚内部有上拉但上拉电阻比较大如果外部有噪声可能会误触发复位。我一般会在复位引脚上加一个0.1uF的电容到地滤掉高频噪声。这个电容不要太大否则复位信号的上升沿会变缓影响复位时机。MIPI的lane数配置要和主控输出一致。我遇到过主控输出4 lane但LT9211配成了2 lane结果只有一半的画面。配置时一定要确认主控的lane数不要想当然。LVDS的时钟极性可以配置如果画面左右镜像或者上下翻转可能是时钟极性反了。LT9211的寄存器里有一个位可以翻转时钟极性改一下就好。调试时善用LT9211的内部测试图案。测试图案不依赖MIPI输入直接由LT9211产生可以用来验证LVDS输出和屏幕。如果测试图案正常说明LVDS和屏幕没问题问题在MIPI接收端。如果测试图案也不正常说明LVDS配置或者屏幕有问题。最后说一个关于N76E003的小技巧。N76E003的I2C引脚是复用的配置时要先设置引脚功能再使能I2C外设。如果顺序反了I2C可能不工作。这个坑我踩过查了半天才发现是引脚功能没配。整个项目做下来最大的体会是LT9211的硬件设计不难难的是配置参数的推导和调试。数据手册给的信息有限很多参数需要自己算或者试。建议在做板子之前先用LT9211的评估板把配置跑通确认参数没问题再画板。这样能省很多调试时间。
企业数字化 ERP 产品动态
相关推荐
PX4 飞控接入 CUAV NEO 3X 防水防尘 GNSS 接收机:DroneCAN 配置与规格全解析 嵌入式物联网机器人自动驾驶智能硬件 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 点击查看 免费下载 CUAV NEO 3X 是一款具备 IP66 防水防尘能力的多星座 GNSS 接收机,内部集成… · 2026/9/25 2:01:29
ESP32应用平台实战:在MCU上实现可安装、可升级的固件管理 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:01:23
VASP中AIMD从头算分子动力学参数设置与跑稳实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 2:01:23
深入gnhf编排器架构:状态机如何让AI代理整夜循环不丢一行代码 深入gnhf编排器架构:状态机如何让AI代理整夜循环不丢一行代码 【免费下载链接】gnhf Before I go to bed, I tell my agents: good night, have fun 项目地址: https://gitcode.com/gh_mirrors/gn/gnhf
gnhf(good night, have fun)是一… · 2026/9/25 4:25:44
VirtualBox E_FAIL (0x80004005) 报错全解析:从驱动冲突到UUID修复 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:25:44
MIPI DSI转LVDS桥接方案:LT9211与N76E003配置实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:25:44
Windows 11锁屏机制深度解析与分版本禁用方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:25:44
必应搜索出现Ref A/B/C标签?原因排查与解决指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:25:37
Cadence Sigrity TDR仿真实战:从原理到阻抗曲线分析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:25:37
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37