☰
STM32L431RCT6最小核心板原理图设计与低功耗验证
2026/11/3 4:29:14 网站建设 项目流程

简介:这份STM32L431RCT6核心板原理图面向嵌入式入门者、STM32/ARM学习者以及需要进行芯片评估与替换验证的工程师,提供基于ARM Cortex-M4内核、主频80MHz、256KB Flash和64KB RAM的LQFP-64封装最小系统参考设计。资源包仅含1个PDF文件,整体约455KB,轻量便于查阅、打印和对照设计;图纸聚焦MCU外围电路,串口、SPI等外设未在板上集成,而是通过排针引出,方便按项目需要扩展。目前已有2812人学习下载。读者可从中梳理核心板的电源管理、复位、指示灯及调试接口等典型模块,理解电源树、引脚分配与外围器件选型之间的对应关系,为STM32L431RCT6的芯片替换评估、开发板验证以及AD18环境下的原理图设计提供直接参考,也可作为新手建立嵌入式硬件认知、练习读图和核对封装的图纸样例。

1. 只做最小系统的核心板,反而最难画

LQFP-64 封装的 STM32L431RCT6 拿在手里只有 10mm 见方,64 个引脚里能当 IO 用的有五十多个,可真正开始画板子时,最先卡住的往往不是代码,而是这块板子到底该引出什么、该砍掉什么。我见过不少第一次做 L431 的同学,把 SPI Flash、OLED、传感器一股脑堆上去,板子回来越调越乱,最后连是哪颗器件把 3.3V 拉垮的都定位不了。这份 mini 核心板原理图走的是相反的路子:只保留主芯片、双路 5V 输入与 3.3V 稳压、复位与按键、8MHz 主时钟、板载 USB 转串口、四路指示灯,其余外设全部用 2.54mm 排针引出。它适合刚入坑嵌入式、想先让一颗 STM32L431RCT6 稳稳跑起来的人,也适合拿这颗芯片做低功耗评估、型号替换验证的工程师,板子本身不抢戏,拿来当量具用。

2. 需求边界与器件选型:为什么是 L431RCT6 加 AMS1117 加 CH340G

2.1 芯片定位:Cortex-M4 加 256KB Flash 与 64KB RAM 的取舍

STM32L431RCT6 是 Cortex-M4 内核带单精度 FPU,主频 80MHz,Flash 256KB,SRAM 64KB,封装 LQFP-64,本体 10x10mm,引脚间距 0.5mm。这套参数放在核心板上意味着两件事:一是 64KB RAM 跑 RT-Thread Nano 或者裁剪过的标准版都够用,开两三个线程加一个串口 shell 不会紧;二是 0.5mm 间距手工能焊,用尖头烙铁加助焊剂拖焊的成功率不低,比 0.4mm 的 QFN 友好得多。

选 RCT6 而不是 48 脚的 CBT6,主要看中的是 PC 口那十来个引脚和更多的 ADC 通道。做低功耗评估时,经常要同时挂一个 LPUART 做唤醒源、一路 ADC 采样电池电压、再留几个 IO 做状态指示,48 脚很快就会不够分。选 L4 系列而不是更常见的 F103,是因为这颗芯片真正的价值在 Stop2、Shutdown 这些低功耗模式,以及 LPUART、LPTIM 这类低功耗外设,核心板如果连这些都验证不了,就失去意义了。

外设一律不做进板内,这是边界。核心板的职责是让芯片跑起来、能被下载、能被观察,至于挂什么传感器、接什么屏幕,交给排针和杜邦线。这样做的代价是板子看起来"功能少",好处是任何一个异常都能收敛到很小的范围里——要么是电源,要么是时钟,要么是复位,排查路径是确定的。

2.2 电源链路选型:双 5V 入口与 AMS1117-3.3 的散热余量

板子上有两路 5V 来源:一路是 DC 电源座,一路是 USB 的 VBUS。两路都汇到 VCC5V 网络,中间串一颗磁珠 FB1 做隔离,再送进 AMS1117-3.3 降到 VDD_3V3。磁珠在这里的作用不是"滤波好听",而是把 USB 侧和 DC 侧的高频噪声挡一挡,同时在后级短路时提供一点限流阻抗。

AMS1117-3.3 是 SOT-223 封装,固定 3.3V 输出,压差在 1.1V 到 1.3V 之间。5V 进 3.3V 出,压差 1.7V,耗散功率就是 1.7V 乘以负载电流。核心板本身只带 MCU 加 CH340G,实测电流一般在一百多毫安,算下来耗散 0.2W 出头,SOT-223 靠 PCB 铜箔散热完全扛得住;但如果后面通过排针给外部模块供电,电流上到 400mA,耗散就接近 0.7W,这时候芯片会明显发烫。通常的做法是把排针上的 3.3V 只当参考电平用,给外部模块供电另走一路,别指望这颗 LDO 当电源用。

滤波配置是 10uF 加 1uF 加 100nF 三级:10uF 管低频储能,1uF 管中频,100nF 贴着芯片引脚管高频。这套组合在 1117 这类老牌 LDO 上很稳,输入输出各放一组,输入侧再加一颗 100nF 抑制 USB 插拔时的振铃。

2.3 调试链路选型:板载 CH340G 还是外接 USB-TTL

新手最容易翻车的地方不是代码,是"下载器没认到板子"。所以这块板把 USB 转串口直接做上去了,用 CH340G 配 12MHz、10ppm 的晶振,USB 座是 Micro 型的 USB-226,D+ 和 D- 上各挂一颗 PESD3V3S1BA 做 ESD 保护,串口侧 TX、RX 各串 22Ω 电阻,再各挂 10K 上拉到 VDD_3V3。

为什么不做成"只留排针、用户自己插 USB-TTL 模块"?因为一旦引入外部模块,接线错误、共地不良、电平不匹配这三个问题会同时出现,新手根本分不清是板子的问题还是模块的问题。板载之后,一根 USB 线解决供电加下载加串口打印,变量少了,问题也就好定位了。

代价是 CH340G 的 V3 引脚需要特别处理:3.3V 供电时 V3 直接接 VCC 并配 100nF,5V 供电时 V3 必须改成 100nF 下地。这个细节后面在避坑章会单独讲,因为它是最典型的"照抄电路结果不工作"的场景。

2.4 扩展方式:2.54mm 排针的间距与分组

引出用的是 2.54mm 单排针,四组 10P 加两组 4P。选 2.54 而不是 1.27 或者邮票孔,理由很实在:杜邦线、逻辑分析仪夹子、示波器探头钩子,全都是按 2.54 设计的。做单片机教学和验证,能用最粗糙的工具接上去,比省那点板子面积重要得多。

分组按端口走:一组出 PA 口,一组出 PB 口低段,一组出 PB 口高段加 PC 口,一组出 PB3 到 PB9 加 PD2。这样接外设的时候,SPI 一组、I2C 一组、UART 一组,找引脚不用来回翻原理图。SWD 单独用一组 4P 排针引 3.3V、GND、SWDIO、SWCLK,避免和普通 IO 混在一排里插错。

3. 总体原理图设计:两张图纸、六个功能块的职责划分

3.1 图纸拆分:电源页与 MCU 页之间的网络接口约定

整个工程拆成两张原理图:一张 POWER 页,装 DC 座、USB 座、磁珠、LDO、电源指示灯、CH340G 及其外围;一张 MCU 页,装主芯片、晶振、复位按键、四路指示灯、五组排针和全部去耦电容。跨页之间不画长连线,只靠网络标号对接。

这样拆的好处是评审和排错时视野干净。查电源问题只看一页,查引脚分配只看另一页。坏处是网络标号必须严格统一,一旦某页把 VDD_3V3 写成 VCC3V3,编译检查里可能就是两个网络,板子回来才发现某块电路没供电。我一般的做法是:拆页之前先把网络名清单列出来,两页都按清单写,不改名、不缩写。

3.2 六个功能块与各自的职责边界

电源块负责把 5V 变 3.3V,包括磁珠、滤波、LDO 和电源指示;调试块负责 USB 转 TTL,包括 CH340G、晶振、ESD 保护和串阻;主控块是 MCU 本体加全部去耦;复位块包含 NRST 上的 10K 上拉、100nF 电容和轻触按键,另外单独做一个 Reload 按键接在 PA0 上,留给测试用;时钟块是 8MHz 晶振加两颗负载电容;指示与扩展块是四路 LED 加五组排针。

六个块之间的耦合点只有三个:VDD_3V3、GND、以及 UART1_Debug_TX/RX 这一对网络。把耦合点压到三个,意味着任何一块出问题,只需要在那三个网络上量波形,不用全板乱找。这种划分方式在带学生做课设时特别好用,谁负责哪块一目了然,出问题也好追责。

3.3 关键网络连接表

网络名起点终点备注
VCC5VDC 座、USB VBUSFB1 输入端、CH340G 可选供电双入口,二选一供电
VDD_3V3AMS1117 输出MCU 全部 VDD、排针、上拉电阻全板唯一 3.3V 网络
USB_UD+、USB_UD-USB 座 D+、D-CH340G UD+、UD-各挂 ESD 管,走差分
UART1_Debug_TX、RXCH340G TXD、RXDPA9、PA10各串 22Ω,各挂 10K 上拉
SWDIO、SWCLK4P 排针PA13、PA14单独一组,不与 IO 混排
MCU_RST按键、10K 上拉、100nFNRST 引脚低有效
OSC_IN、OSC_OUT8MHz 晶振PH0、PH1各配 20pF
LED1 到 LED4S8050 集电极PC0 到 PC3 经 4K7 驱动基极低电平点亮

表格里"经 4K7 驱动基极"这一列很关键:很多板子把 LED 直接挂在 IO 上,代码里点得挺欢,一做低功耗测试就发现 Stop 模式电流比手册高一个量级,因为 IO 在复位后是高阻,但外部电路还在漏电。用三极管隔一层,只要基极不被拉高,LED 支路就是断的。

3.4 位号与网络命名规则

位号按器件类型分前缀:U 给芯片,R 给电阻,C 给电容,Q 给三极管,LED 给发光二极管,J 给接插件,Y 给晶振,FB 给磁珠,K 给按键。同一功能块内的位号连续编号,电源块的电阻从 R1 开始,指示灯那组的电阻单独从 R7 往后排,这样看位号就知道大概在图纸哪个位置。

网络名用"功能_方向_电平"的组合:UART1_Debug_TX 表示 USART1 的调试发送,USB_UD+ 表示 USB 的差分正端,MCU_RST 表示主控复位。千万不要出现 N1、NET123 这种自动生成的网络名,改板的时候没人知道那是什么。这套规则不复杂,但坚持下来,后期改型和交接能省掉大量时间。

4. 模块实现细节:从电源入口到排针引出

4.1 电源入口、磁珠隔离与 3.3V 稳压

DC 座进来先过磁珠 FB1,再并 10uF 和 100nF 到地,然后进 AMS1117 的 Vin。输出侧并 1uF 和 100nF,其中 100nF 尽量贴着 LDO 的 Vout 引脚放。电源指示灯是一颗红色 LED 串 1K 电阻直接接在 VDD_3V3 和地之间,只要 3.3V 起来它就亮,是最直观的上电自检手段。

这里有个容易被忽略的细节:USB 的 VBUS 和 DC 座的 5V 是并在一起的,如果两个电源同时插上,理论上会互相倒灌。通常的做法是在两路各串一颗肖特基二极管做或门,或者在 DC 座上用带开关的插座,插入时自动断开 USB 供电。这份图用的是后者思路,靠插座机械结构切换,成本低,压降也小。做验证板够用,但如果是长期插着 USB 又要外接电源的场景,建议补上二极管或者理想二极管电路。

LDO 的散热焊盘要和 GND 铜箔充分连接,SOT-223 的那个大焊盘就是散热路径,铺铜面积给足,别只留一个焊盘。

4.2 复位、BOOT0 配置与 Reload 按键

NRST 上挂 10K 上拉到 VDD_3V3、100nF 到地、再并一个 4.5x4.5 的轻触按键到地。按下时拉低复位,松开后靠 10K 充电,时间常数 1ms 量级,足够芯片完成复位。100nF 这个值不要随意加大,加到 1uF 之后,配合内部上拉和外部 10K,上电复位时间会拖长,某些调试器会在这段时间里连不上目标。

BOOT0 用 10K 电阻下拉到地,固定从主 Flash 启动。做核心板时这一步不要省,悬空的 BOOT0 在干扰环境下可能出现偶发不进用户程序的现象,排查起来极其痛苦——现象是"有时候能跑有时候不跑",很多人会怀疑晶振、怀疑电源,其实是启动模式选错了。如果确实需要从系统存储器启动烧写,把 BOOT0 引到一个 3P 排针上,用跳帽选择,比直接悬空靠谱。

Reload 按键接在 PA0 上,配 10K 上拉和 100nF。它不属于复位电路,只是一个留给应用程序自己定义的输入,用来做"恢复默认配置"或者"进入测试模式"。命名上别叫 KEY1、KEY2,叫 Reload 更清楚它想干什么。

4.3 8MHz HSE 时钟与负载电容的取值

主时钟用 8MHz、10ppm 的无源晶振,接在 OSC_IN 和 OSC_OUT 之间,两端各配一颗 20pF 电容到地,另外并一颗 10K 反馈电阻。选 8MHz 是因为 L4 的 PLL 输入范围宽,8MHz 经 PLL 倍频到 80MHz 很方便,而且 8MHz 也是 USB 时钟树里比较常用的基准。

负载电容的算法是 CL 等于两颗电容串联值加上 PCB 杂散电容。两颗 20pF 串联得 10pF,加上 3 到 5pF 的走线杂散,实际负载在 13 到 15pF。如果晶振手册标称 CL 是 12pF 或 10pF,这个值就偏大,频偏会往负方向走,表现为串口波特率误差偏大或者 RTC 走时偏慢。我一般会先按 CL 减杂散反算,标称 10pF 的晶体配 15pF 左右更合适。10ppm 的晶体本身精度够,配错电容等于白花钱。

配置代码用 HAL 写出来是这样:

/* SystemClock_Config:HSE 8MHz -> PLL -> SYSCLK 80MHz */ RCC_OscInitTypeDef osc = {0}; RCC_ClkInitTypeDef clk = {0}; osc.OscillatorType = RCC_OSCILLATORTYPE_HSE; osc.HSEState = RCC_HSE_ON; /* 板上 Y2:8MHz、10ppm */ osc.PLL.PLLState = RCC_PLL_ON; osc.PLL.PLLSource = RCC_PLLSOURCE_HSE; osc.PLL.PLLM = 1; /* 8MHz / 1 = 8MHz 进入 PLL */ osc.PLL.PLLN = 20; /* VCO = 8MHz * 20 = 160MHz */ osc.PLL.PLLR = RCC_PLLR_DIV2; /* 160MHz / 2 = 80MHz 给 SYSCLK */ osc.PLL.PLLQ = RCC_PLLQ_DIV2; /* 48MHz 给 USB,本板未用 */ HAL_RCC_OscConfig(&osc); clk.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; clk.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; clk.AHBCLKDivider = RCC_SYSCLK_DIV1; /* HCLK = 80MHz */ clk.APB1CLKDivider = RCC_HCLK_DIV1; /* APB1 = 80MHz,已是上限 */ clk.APB2CLKDivider = RCC_HCLK_DIV1; /* APB2 = 80MHz */ HAL_RCC_ClockConfig(&clk, FLASH_LATENCY_4); /* 80MHz 需 4 个等待周期 */

参数之间的关系是 PLLM 做输入分频、PLLN 做倍频得到 VCO、PLLR 做输出分频,最终 SYSCLK 等于 HSE 除以 PLLM 乘以 PLLN 再除以 PLLR。L4 的 VCO 有上下限,8 乘 20 得 160MHz 落在合法区间内。FLASH_LATENCY_4 是 80MHz 对应的等待周期,写少了会在高频下读到错误指令,现象是程序跑飞但仿真器看着正常,属于典型的玄学问题。

4.4 CH340G 转串口电路的四个细节

第一是供电,本板用 3.3V 给 CH340G,V3 引脚和 VCC 短接,并在 V3 上挂 100nF 到地。如果改成 5V 供电,V3 必须改成只接 100nF 到地,不能再接 VCC,否则芯片内部稳压会被顶坏。第二是晶振,CH340G 需要 12MHz,配两颗 20pF,频率偏差会影响 USB 枚举的成功率。

第三是串口侧保护,TXD 和 RXD 各串 22Ω 电阻再进 MCU,同时各挂 10K 上拉到 VDD_3V3。串阻抑制反射和过冲,上拉保证 MCU 复位期间 CH340 的输出不被拉成浮空。第四是 ESD,D+ 和 D- 各挂一颗 PESD3V3S1BA 到地,位置要贴着 USB 座放,走线越短越好。

这四件事里最容易出问题的是第一件。V3 接错的表现是 USB 完全枚举不上,电脑设备管理器里连未知设备都不弹,非常容易误判成 USB 座虚焊。

4.5 四路指示灯:S8050 低边驱动与限流电阻

四颗蓝色 LED 分别由四颗 S8050 NPN 三极管做低边驱动,基极经 4K7 电阻接 MCU 的 PC0 到 PC3,集电极接 LED 阴极,LED 阳极经 1K 电阻接 VDD_3V3,发射极接地。IO 输出高电平时三极管导通,LED 点亮。

按 3.3V 减去 LED 压降约 2.7V 再减饱和压降 0.1V 算,1K 电阻上的电流大约 0.5mA,亮度偏低但足够看清。如果想让指示灯更亮,把限流电阻降到 330Ω,电流约 1.5mA,仍在 IO 驱动能力范围内。4K7 基极电阻把基极电流限制在 0.5mA 左右,乘以 S8050 的放大倍数,驱动能力绰绰有余,同时不会让 MCU 引脚过载。

用三极管而不是直接驱动,核心目的是隔离。做低功耗测试时,只要把四个 IO 拉低,LED 支路就完全断开,不会在 Stop 模式下贡献漏电流。这一点在评估 L431 的微安级待机电流时是决定性的——直接挂 LED 的板子,测出来的数字永远比手册高。

4.6 排针引出与去耦电容的布置

五组排针把可用 IO 按端口分组引出,SWD 单独一组。每组排针旁边留出 VDD_3V3 和 GND 各一根,方便接逻辑分析仪或者给外部小模块供电。排针的丝印要标清组号和引脚范围,别只写 J12、J13,标 PA1 到 PA7 这种更实用。

去耦电容是原理图上最没存在感、PCB 上最要命的部分。每对 VDD 和 VSS 引脚配一颗 100nF,VDDA 单独再配一颗,位置全部贴着引脚放,过孔直接打到地平面。原理图上这些电容看起来是并排摆的,实际布局时要按引脚就近分配,不能一个 100nF 管三个引脚。检查方法很简单:打开 PCB,看每颗电容到对应引脚的距离是不是比到下一颗引脚更近,不是就挪。

5. 避坑与常见问题:五处最容易翻车的地方

5.1 图框标题和器件型号对不上

现象:打开工程,图纸标题栏写的是一回事,主芯片位号 U4 上标的是另一回事,出 BOM 的时候型号和封装对不上,采购回来焊不上。

原因:这类核心板图纸大多是改型复用的产物,从上一版芯片的工程复制过来,改了主芯片符号和外围,但工程文件名、图框标题、图纸编号没跟着改。改型本身没问题,问题在于没做一致性检查。

解决:出图之前强制核三处——主芯片符号的器件型号、封装名、图框标题栏。三处一致才算过。我习惯在图框旁边加一行备注,写清"本图基于某型号改型",后面接手的人一眼就知道底细。

5.2 CH340G 的 V3 引脚接错

现象:插上 USB,设备管理器毫无反应,换线换口换电脑都没用,量 VBUS 有 5V,量 3.3V 也正常。

原因:V3 是 CH340G 内部稳压的输出脚,3.3V 供电时必须与 VCC 短接,5V 供电时只能接 100nF 到地。两种接法搞反,芯片内部稳压被外部电压顶住,USB 收发器直接不工作。

解决:先确认板子是 3.3V 供电还是 5V 供电,再决定 V3 的接法。量一下 V3 对地电压,3.3V 供电时应该接近 3.3V,明显偏低或者为 0 就是接错了。

5.3 复位电容偏大导致下载偶发失败

现象:SWD 有时候能连上,有时候报目标无响应,按一下复位键又能连上,换个调试器就好了,过两天又不行。

原因:NRST 上的电容从 100nF 加大到 1uF 甚至 10uF,上电复位时间被拉长到几十毫秒,调试器在芯片还没起来的时候就去握手,自然失败。另一个原因是复位走线太长,被旁边的信号耦合了毛刺。

解决:电容严格按 100nF 来,上拉电阻 10K 不要加大。调试器配置里打开 connect under reset,先拉住复位再连。复位走线尽量短,远离晶振和 USB 差分对。

5.4 晶振负载电容照抄导致频偏

现象:串口能通,但误码率偏高,高波特率下尤其明显;或者 RTC 一天差好几分钟。

原因:负载电容没按晶体规格算。两颗 20pF 串联得 10pF,加杂散 3 到 5pF,实际负载 13 到 15pF。如果晶体标称 CL 是 10pF,等于给多了,频率往负偏。

解决:先查晶体手册的 CL,反算外部电容值,再用频率计或者示波器量 OSC_OUT 的实际频率。10ppm 的晶体配错电容,精度可能掉到 100ppm 级别,花的钱全白费。

5.5 BOOT0 悬空和低功耗测试的漏电

现象:板子大部分时候正常,偶尔上电不跑程序,重新上电又好了;做 Stop 模式测试时电流比手册高几十微安。

原因:BOOT0 没做下拉,悬空引脚在干扰下可能被拉高,芯片进了系统存储器启动模式。低功耗这边则是 IO 状态没配置,指示灯或者其他外接电路在 Stop 模式下继续漏电。

解决:BOOT0 用 10K 下拉死,需要改启动模式就上跳帽。做低功耗测试前,把未使用的 IO 配成模拟输入,指示灯那四路 IO 拉低关断三极管,再量电流。这两个动作做完,测出来的数字才有参考价值。

6. 验收与答辩:怎么证明这块板子真的能用

板子焊回来,别急着写业务代码,按固定顺序过一遍自检,每一步都有明确的通过标准,出问题就停在那一格,不要往下跳。

步骤操作通过标准不通过先查
1只焊电源部分,上电电源灯亮,VDD_3V3 在 3.25 到 3.35V磁珠、LDO 焊接、5V 入口
2焊 MCU 和晶振,接 SWD调试器能识别到 Cortex-M4 内核NRST 电平、BOOT0、晶振起振
3下载点灯程序PC0 到 PC3 四路依次亮灭三极管方向、限流电阻、IO 配置
4插 USB,打开串口助手115200 下能收到打印,无乱码CH340G 的 V3、12MHz 晶振、TX/RX 是否对调
5进 Stop2 模式量电流与手册同量级,无异常漏电未用 IO 配置、LED 支路、排针外接负载

第三步用 RT-Thread 的 PIN 设备框架写起来最短,几行就能跑:

#include <rtthread.h> #include <rtdevice.h> #define LED_PIN GET_PIN(C, 0) /* 对应原理图 PC0 驱动的那一路指示灯 */ int main(void) { rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LED_PIN, PIN_HIGH); /* 三极管导通,灯亮 */ rt_thread_mdelay(500); rt_pin_write(LED_PIN, PIN_LOW); /* 三极管截止,灯灭 */ rt_thread_mdelay(500); } }

这段代码只做一件事:验证 GPIO 输出通路。灯能按节奏闪,说明电源、时钟、下载、IO 四层全通了。如果灯不亮但程序确实在跑,先量基极电压有没有跳变,再看三极管是不是焊反了——S8050 的 SOT-23 封装,丝印方向和原理图符号经常对不上,这是最高频的翻车点。

答辩或者交付评审的时候,讲法比内容更重要。我的建议是先讲边界:这块板做什么、不做什么,为什么外设全部引出而不做在板上;再讲电源树,从两路 5V 讲到磁珠讲到 LDO 讲到去耦,把每一级的职责说清楚;最后讲三个验证点——电源电压、SWD 能连、串口能打印。评审的人真正想听的不是你用了多少器件,而是你为什么砍掉那些器件,以及砍掉之后怎么保证剩下的部分可靠。把这三个问题答清楚,比堆一页参数表有用得多。

从那以后我每次画完原理图,出图前都会强制走一遍"型号、封装、图框"三处核对,再把电源树在纸上重画一遍,确认每个网络都有明确的来源和去处。这套动作花不了二十分钟,但能挡掉后面几天的返工。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询