ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

S32K144 ADC硬件触发详解:PDB与TRGMUX配置实战指南

S32K144 ADC硬件触发详解:PDB与TRGMUX配置实战指南 1. 为什么硬件触发才是正经的ADC采样方式在S32K144上做ADC采样第一反应大概率是直接读标志位、调ADC_DRV_GetChannelConversionResult这类API靠软件去触发转换。对于电机控制、数字电源这类需要精确控制采样时刻的场景软件触发方案有天然的硬伤——你永远没办法保证每次采样都落在PWM周期的同一个相位上。中断响应延迟、代码执行路径的差异都会让采样点抖动而这个抖动反映到电流环PI调节器里就是噪音反映到速度环里就是转速波动。硬件触发的思路是让ADC的转换启动不再依赖CPU。提前在硬件层面把触发链路搭好PWM事件或者定时器事件作为源头TRGMUX负责把触发信号路由到PDBPDB负责产生精确的延迟和周期信号最后由PDB的输出直接推动ADC启动转换。转换完成后可以通过DMA把结果搬到内存整个过程CPU完全不需要参与。这样做的收益有三个采样时刻和PWM载波同步相位抖动小到可以忽略CPU不用频繁进中断处理ADC释放算力给控制算法多通道采样之间的间隔可以通过PDB精确控制不用靠代码一步步操作。这篇内容围绕S32K144的ADC硬件触发展开重点讲PDB和TRGMUX的配置链路。配置过程中坑比较多TRGMUX的写保护、PDB的MOD值计算、ADC的连续触发机制这几个点是重灾区我会把实际调试中踩过的问题和排查思路整理出来给准备在S32K144上做硬件触发采样的朋友一个参考。2. ADC硬件触发的完整链路拆解2.1 触发信号从哪来、到哪里去S32K144的ADC硬件触发链路一共经过三个硬件模块TRGMUX、PDB、ADC。理解这条链路的信号流向是配置一切的前提。TRGMUX是S32K系列芯片里的触发器复用模块它的作用是完成外设触发信号的交叉连接。芯片内部并非每个外设都能直接连到PDB不同外设的触发输出信号需要经过TRGMUX这个交叉开关矩阵进行路由。TRGMUX内部是一个个独立的触发选择器每个选择器对应一个外设的触发输入通过配置寄存器中的SELx字段可以选择将哪个信号源连接到这个外设的触发输入端。对于ADC硬件触发应用来说PDB会作为触发源将PDB的通道输出信号连接到ADC的触发输入。具体到S32K144芯片PDB共有多个通道其中PDB0_CH0、PDB0_CH1等可以分别路由到不同的ADC。例如PDB0_CH0可以被TRGMUX路由到ADC0的触发输入PDB0_CH1可以被路由到ADC1的触发输入。信号路由到这里还没有完。PDB本身需要被触发才能开始计数而触发PDB的信号通常来自更高层级的定时器事件。在电机控制场景中最常见的做法是PWM的载波周期事件、PWM半周期事件或者PWM的脉冲调制事件。配置好TRGMUX后PWM的触发信号就会在对应的时机拉起PDBPDB开始计数触发对应的ADC开始转换。整体信号链路可以归纳为下面的传递路径PWM事件 - TRGMUX信号路由 - PDB开始计数 - ADC硬件触发信号 - ADC启动转换 - 转换完成标志/中断/DMA传输任何一环配置失误都会导致ADC没法按预期启动转换。我遇到过的一个典型错误是TRGMUX配置完成后没有解锁PDB的写保护导致后面PDB寄存器全部写不进去ADC始终没有触发信号。这类问题排查起来比较费时间因为代码编译正常、单步调试也正常但硬件层面就是没反应。2.2 PDB在链路中扮演什么角色PDB的全称是Programmable Delay Block可编程延迟模块。它在ADC硬件触发链路中的核心作用是产生精确的时间延迟让ADC的采样时钟和PWM的载波频率形成严格的同步关系。PDB的工作方式是这样的收到触发信号后PDB内部计数器开始从0向上计数当计数器的值和MOD寄存器的设定值相等时产生一个触发输出信号给ADC。因为ADC的转换速度远高于PWM周期实际应用中经常还需要在触发后延迟一段时间再启动采样这个延迟时间由IDLY寄存器和CHnDLY寄存器控制。这里需要澄清PDB内部两种延迟的区别IDLY是PDB模块级延迟控制的是从收到触发信号到PDB计数器启动之间的时间CHnDLY是每通道独立的延迟控制的是从PDB计数器启动到实际产生触发信号之间的时间两种延迟配合使用可以实现非常灵活的采样时序控制。比如三相电机控制中通常需要在PWM载波的不同时刻分别采集相电流和母线电压通过配置不同的CHnDLY值一条PDB通道就可以在不同的时间点触发多次ADC转换。PDB的计数时钟同样需要关注。S32K144的PDB时钟来自总线时钟可以选择1分频、2分频、4分频或8分频。分频系数直接决定PDB计数器的计数精度也就决定采样的时间分辨率。如果总线时钟是80MHz且选择1分频那么PDB计数器的分辨率为12.5纳秒足以满足绝大多数电机控制场景的采样精度要求。2.3 ADC侧如何响应硬件触发ADC硬件触发的最后一步是ADC模块内部配置这一步经常被忽视但它恰恰决定前面所有配置是否有效。S32K144的ADC模块在响应硬件触发时必须将SC2寄存器的TRGPRLAT位设置为1外部触发模式。如果这个位是0ADC会忽略来自PDB的触发信号继续使用软件触发方式工作。这个位在代码初始化中很容易被遗漏尤其当参考示例代码使用软件触发时完全不会涉及这个位置。另一个重要配置是SC1寄存器的DIFF位差分模式选择和ADCH位通道选择硬件触发时ADC启动后会自动执行当前SC1寄存器配置的通道转换无需软件再次指定。还有一点值得注意S32K144的ADC支持硬件触发连续转换模式。通过配置SC2寄存器的触发模式位和CTR寄存器的连续触发位可以让硬件触发信号到来后连续执行多次转换。这在需要多次采样取平均值的应用场景中非常有用可以显著减少CPU对ADC采样结果的干预次数。3. PDB参数计算的坑3.1 MOD值、IDLY值和CHnDLY值的选择PDB参数计算是整个配置中最容易出问题的部分。三个关键寄存器的值需要在初始化之前算清楚MOD模块计数上限、IDLY模块级延迟、CHnDLY通道延迟。MOD值决定了PDB计数器的溢出周期。假设我们需要ADC采样率和PWM载波频率完全同步PWM载波频率是20kHzPDB时钟是40MHz那么MOD值的计算方式是MOD PDB时钟频率 / 采样频率 - 1代入数值也就是40MHz / 20kHz - 1结果是1999。听起来很简单但实际配置时容易忽略的坑是PDB计数器是从0开始计数的MOD值等于周期数减去1不是直接用周期数。IDLY值的配置逻辑类似。如果希望在PWM周期开始后延迟一段时间再启动PDB计数器比如延迟10微秒那么IDLY值等于40MHz乘以10微秒也就是400。注意IDLY不能大于MOD否则PDB永远不会触发。CHnDLY的计算则是根据具体采样时刻需求来定。假设PWM周期是50微秒需要在PWM开启后第5微秒采样A相电流第10微秒采样B相电流那么CH0DLY和CH1DLY就分别配置为200和400。这里有一个实际调试中容易踩的坑IDLY和CHnDLY是叠加关系不是替代关系。PDB收到外部触发信号后会先等待IDLY时间才开始计数计数器到达CHnDLY指定值时输出触发信号。如果你设置了比较大的IDLY值却发现采样时刻比预期晚了很可能就是没有把IDLY和CHnDLY的延迟一起计算进去。3.2 时钟分频和总线频率对精度的影响PDB的时钟分频系数对采样精度影响显著分频倍数越大PDB计数器每一步对应的时间越长时间分辨率越低。从实际工程角度来说选择分频系数时要在计数溢出范围和分辨率之间做平衡。如果分频系数过大MOD值会很小计数器可能还没数几下就到上限了精度损失严重。如果分频系数过小MOD值会很大虽然分辨率高但寄存器位宽限制可能导致MOD值溢出。S32K144的PDB MOD寄存器是16位最大值65535配置时一定要确认计算出的MOD值小于65536。另外需要确认总线时钟频率。S32K144的总线时钟默认可能是80MHz也可能被配置为40MHz或其它频率。如果在初始化代码里改了时钟树却没有同步调整PDB的时钟分频所有时间参数都会整体偏移。排查这类问题时建议先把时钟树的PCC外设时钟控制配置读一遍确认PDB实际工作的时钟频率。我踩过的一个真实案例是代码里PDB参数完全按照80MHz总线时钟计算但实际工程的时钟树配置把总线时钟降到了40MHz结果采样频率整体砍半电流环带宽完全不对。这个问题从软件逻辑上完全看不出问题因为代码执行流程正常ADC也确实在触发但数值就是不对。后来用逻辑分析仪抓PDB的触发信号才定位到是时钟频率的问题从那以后我每次初始化外设前都会先用调试器确认各模块的时钟频率。3.3 连续触发和单次触发的选择PDB支持单次触发模式和连续触发模式具体由SC寄存器的CONT位控制。两种模式在实际应用中的差异非常大。单次触发模式下PDB收到一个触发信号后只执行一轮计数完成后等待下一个触发信号。这种模式适合PWM同步采样每个PWM周期PDB被触发一次完成一次采样。存在风险的是如果触发信号还没到程序就提前写了新的配置寄存器可能造成PDB状态机错乱。连续触发模式下PDB第一次收到触发信号后会自动重新加载并持续运行不再等待外部触发信号。这种模式的采样频率不再由PWM事件决定而是完全由PDB自身的MOD值决定。适合需要固定频率连续采样的场景比如振动监测或音频采集。针对电机控制场景建议使用单次触发模式。因为电流采样必须和PWM载波严格同步如果PDB自由运行采样点会逐渐漂移产生拍频现象。这个拍频在电机噪音里表现为周期性嗡嗡声排查起来很不直观。如果需要同时使用多个PDB通道交替触发不同的ADC要注意各通道的CHnDLY值必须小于MOD值否则对应通道永远不会触发输出。4. ADC侧配置的关键细节4.1 SC1和SC2寄存器配合硬件触发硬件触发能不能正常工作ADC侧的SC1和SC2寄存器配置是关键中的关键。SC2寄存器需要重点关注的位置是TRGPRLAT位。这个位置为1时ADC模块会对来自TRGMUX的硬件触发信号做出响应为0时硬件触发信号被忽略ADC只接受软件触发。这个位在不少参考代码里不会被初始化因为很多示例用的是软件触发方式。我建议在写ADC初始化函数时第一件事就是把SC2寄存器完整初始化不要遗漏任何一位确保硬件触发模式被明确使能。SC1寄存器决定硬件触发后ADC会转换哪个通道。SC1寄存器包含ADCH通道选择位和DIFF差分模式选择位。硬件触发到来后ADC会自动读取SC1寄存器完成对应通道的转换。这里有个易踩的坑如果对不同通道的采样间隔要求很严格不能直接改SC1寄存器当前值应该通过预加载功能提前配置好下一个要转换的通道让ADC在完成当前通道转换后自动切换到下一个通道。SC1寄存器还有一个值得注意的位置AIEN位转换完成中断使能。硬件触发模式下如果不需要CPU频繁进入中断可以不使能AIEN改用DMA搬运结果。这样配合PDB周期触发可以实现完全无CPU干预的持续采样。4.2 连续触发CTR配置的注意事项S32K144的ADC支持硬件触发下的连续转换模式具体通过配置SC2寄存器的触发源选择和CTR寄存器的连续触发计数来实现。这个功能的含义是一次硬件触发信号到来后ADC连续执行指定次数1到8次的转换。这个功能在应用层价值很大主要体现在两个方面降噪采样一次触发连续采样4次或8次取平均后作为最终采样值等效于一个简单的硬件级均值滤波器能有效降低随机噪声多通道同周期采样在一次触发内连续完成多通道的采样避免跨PWM周期采样带来的相位差异配置CTR寄存器时要注意连续转换的次数和SC1寄存器预加载通道数之间要匹配。如果CTR设为4次连续转换但SC1预加载的通道只有2个ADC会在转换完这2个通道后仍然按照SC1的预加载列表重复转换可能导致数据覆盖结果并不是预期效果。CTR配置的另一个坑是连续转换模式下SC1寄存器的通道预加载需要正确初始化。S32K144的SC1寄存器支持预加载功能可以通过SC1预加载寄存器提前配置好接下来要转换的通道避免在转换过程中CPU介入修改SC1配置。如果预加载配置不完整连续转换会在执行到未定义的通道时停止造成采样数据不完整。4.3 采样时钟和参考电压的选择ADC的采样时钟和参考电压配置直接影响采样精度硬件触发模式下同样需要关注。S32K144的ADC可选时钟源包括ADACK异步ADC时钟和总线时钟等。ADACK的优势是时钟频率不随总线时钟变化适合在对采样时间精度要求较高的场合下使用。缺点是需要配置ADC的时钟分频让ADACK频率落在ADC规定的工作范围内。参考电压选择方面S32K144通常支持两种参考基准VREFH引脚的电压外部参考和内部带隙参考。在电机控制系统中电流采样通常使用外部参考电压方便和电流传感器输出共地减少共模误差。如果选错参考电压最直接的后果是ADC满量程对应电压值不对导致电流计算结果偏大或偏小。选择采样时间时要注意ADC的输入阻抗和采样电容的匹配。S32K144数据手册里会给出最小采样时间要求如果驱动源阻抗较大采样时间不足会造成电荷共享效应导致测量值偏低。在实际电路中使用运放跟随器驱动ADC输入一般不会出现这个问题但如果直接连接高阻传感器就需要增加采样时间。5. 常见的坑和排查技巧实录5.1 ADC没有触发信号、始终无转换这个现象是硬件触发调试中遇到最多的一个问题也就是ADC完全不动读取状态寄存器永远是转换未启动状态。针对这种问题Setp 1需要确认TRGMUX的配置生效了。S32K144的TRGMUX寄存器是有写保护机制的直接写寄存器不会生效需要先往TRGMUX的LOCK寄存器写入解锁码。很多开发者在参考代码里看到TRGMUX初始化代码但没有注意到前缀的解锁操作导致配置没有生效。确认TRGMUX配置正确后用调试器检查PDB的SC寄存器确认PDB的EN位已经被置为1PDB是否处于使能状态。PDB的外设时钟是否打开同样值得检查S32K系列的PCC寄存器控制每个外设的时钟使能如果PCC里没给PDB打开时钟PDB寄存器根本写不进去。如果PDB配置也正确但ADC还是不动可以尝试通过示波器或逻辑分析仪测量PDB的输出信号。S32K144的TRGMUX支持将内部信号路由到外部引脚借助这个功能可以直观看到PDB的输出波形。这个方法非常高效推荐优先使用。5.2 ADC转换结果总是0或者满量程转换结果不对问题往往不在触发链路而在ADC本身的配置。结果总是0首先要检查SC2寄存器的TRGPRLAT位和ADC的参考电压选择确认不是硬件连线和参考电压源问题。其次是确认ADC的校准值是否正确加载。S32K144的ADC模块内含校准逻辑会在上电时自动执行高精度校准校准结果存放在校准数据寄存器中。如果应用中不小心修改了校准寄存器最终的转换结果会出现系统性偏差。结果总是满量程(0xFFF)需要检查差分模式的选择。S32K144的ADC支持单端输入和差分输入如果电路接线是单端输入但配置成了差分模式转换结果会异常。差分模式下输入引脚需要成对使用比如ADC0_SE0和ADC0_SE1作为一对差分输入只接单端信号到其中一个引脚导致另一个悬空结果会偏到满量程附近。5.3 触发频率和预期不一致触发频率不对表现是ADC采样的速率明显快于或慢于PWM的载波频率通常可以通过观察采样数据的周期性波动来判断。针对这个问题Setp 1确认PDB的MOD值是否正确。MOD值表示计数器溢出周期如果MOD值只有预期的一半触发频率会翻倍反之亦然。其次检查PDB的分频配置。PDB的分频系数影响计数器的时基如果分频配置过大即使MOD值算得再准最终触发频率还是不对的。如果是连续触发模式还需要检查CONT位和CTR寄存器的配置。有些应用会错把连续触发模式当成单次触发模式使用但又没正确配置CTR值导致每触发一次就连续执行多次转换看似频率不对实际是每次触发的转换次数不对。5.4 采样数值抖动严重且无规律采样数值抖动反映了信号链路的整体质量问题涉及模拟电路和数字配置的多个因素。硬件方面先检查ADC输入引脚是否有RC滤波以及参考电压是否干净。很多情况下输入信号毛刺比较明显数字滤波又不够抖动自然就出现了。S32K144的ADC支持硬件平均功能通过配置平均次数可以显著降低随机噪声的影响。数字配置方面检查采样时间的设置。如果采样时间过短采样电容没有充分充电每次采样的电荷差异会导致结果抖动。建议将采样时间配置为数据手册要求值的1.5到2倍通过延长采样时间来换取更稳定的转换结果。还有一个经常被忽略的点是PCB布局。为了调试方便有时会飞线连接传感器和开发板这种飞线在低频下问题不大但在PWM开关频率下会引入较大的开关噪声导致ADC采样值出现和PWM周期同步的抖动。遇到这类问题先排查飞线的长度和走线方式尽量缩短模拟信号路径。5.5 PDB触发信号到了但ADC响应不及时这种问题发生在触发信号链路没有问题PDB输出波形也能正常抓到的场景但ADC的转换开始时刻总比预期晚一些。首先要确认PDB的CHnDLY是否配置正确。CHnDLY表示从PDB开始计数到输出触发信号之间的时间差如果这个值太大ADC的转换开始时间会明显滞后于PDB触发时刻。其次检查ADC的SC1寄存器通道切换机制。硬件触发模式下ADC会先锁定当前SC1配置然后启动转换如果SC1寄存器正在更新过程中恰好到来一个硬件触发ADC可能会延迟一个周期才开始转换导致整体采样时刻偏移。排查这类问题的思路是给PDB触发信号到ADC转换开始之间建立一个时间基准用示波器同时观察PDB输出和ADC转换完成的标志信号测量两者之间的时间差。实测下来这个时间差通常只有几个微秒如果偏差明显偏大基本可以确定是配置层面的问题。5.6 避坑技巧速查表为了方便后续工程参考我把上面所有避坑要点整理成一个表格后续做S32K144的ADC硬件触发配置时可以对照着检查检查项排查方法常见错误TRGMUX写保护检查是否先写解锁码忘记解锁配置不生效PDB外设时钟检查PCC寄存器时钟未打开寄存器无法写入PDB MOD值核对计算公式没有减1触发频率不对PDB分频确认总线时钟频率时钟树变更后参数未同步调整IDLY与CHnDLY确认是叠加关系只算了其中一个采样时刻偏差ADC SC2确认TRGPRLAT为1使用软件触发示例代码未切换为硬件触发ADC SC1确认通道和差分模式单端/差分模式配置错误结果异常ADC CTR确认连续转换次数连续转换次数和预加载通道数不匹配采样时间检查采样时间参数采样时间过短结果抖动或偏低6. 一个完整的初始化代码参考下面给出一段基于S32 SDK的ADC硬件触发初始化代码覆盖了TRGMUX、PDB和ADC三个模块的关键配置代码中注释了每个关键寄存器的配置意图。这段代码假设的应用场景是PWM频率20kHz通过PWM触发PDBPDB延迟10微秒后触发ADC0通道0采样。/* 1. 使能外设时钟 */ PCC-PCCn[PCC_PDB0_INDEX] PCC_PCCn_CGC_MASK; PCC-PCCn[PCC_ADC0_INDEX] PCC_PCCn_CGC_MASK; /* 2. 解锁TRGMUX并配置路由 */ TRGMUX-LOCK 0xFFFFFFFF; /* 解除写保护 */ TRGMUX-TRGMUXn[TRGMUX_PDB0_INDEX] TRGMUX_TRGMUXn_SEL0(0); /* PDB0触发源选择PWM */ /* 将PDB0_CH0路由到ADC0 */ TRGMUX-TRGMUXn[TRGMUX_ADC0_INDEX] TRGMUX_TRGMUXn_SEL0(0); /* 3. PDB配置 */ PDB0-SC PDB_SC_PRESCALER(0) | /* 1分频 */ PDB_SC_TRGSEL(0) | /* 触发源选择 */ PDB_SC_CONT(0) | /* 单次触发模式 */ PDB_SC_EN(1); /* 使能PDB */ PDB0-MOD 1999; /* 20kHz采样率PDB时钟40MHz */ PDB0-IDLY 400; /* 延迟10微秒 */ PDB0-CH[0].DLY 0; /* 通道延迟0立即输出 */ PDB0-CH[0].SC PDB_CnSC_EN(1) | /* 使能通道 */ PDB_CnSC_TOS(0) | /* 触发输出 */ PDB_CnSC_BB(0); /* 回读使能 */ /* 4. ADC0配置 */ ADC0-SC2 ADC_SC2_TRGPRLAT_MASK; /* 硬件触发模式 */ ADC0-SC1[0] ADC_SC1_ADCH(0); /* 通道0 */ /* 等待校准完成此处省略详细校准流程 ADC0-SC3 ADC_SC3_CAL_MASK; while (ADC0-SC3 ADC_SC3_CAL_MASK); */这段代码只是一个最小化的参考配置。实际工程中还需要根据电路设计配置采样时间、参考电压选择、连续触发次数等参数。配置完成后可以通过一个简单的方法快速验证整条链路是否导通在调试器中给PDB一个软件触发然后检查ADC相关状态寄存器有没有转换完成的标志。如果软件触发能完成转换说明ADC本身没有问题如果PDB收到软件触发后ADC没有反应问题出在PDB到ADC之间的链路此时可以检查TRGMUX的路由配置是否正确。从链路验证的思路来说采用从后往前的策略效率最高。先用软件触发验证PDB能正常计数再检查PDB输出信号有没有到达ADC最后再检查ADC的出数链路这样可以快速定位问题在哪一环不必一上来就把整条链路都怀疑一遍。7. 调试工具和实测经验调试S32K144的ADC硬件触发有一些工具和技巧可以显著提升效率。示波器或者逻辑分析仪是最重要的调试工具。建议把PDB的触发输出信号路由到芯片引脚上用示波器实际测量PDB输出的波形周期和脉宽。我在调试过程中就多次发现代码配置的采样周期和实际输出的波形周期有偏差最终定位到是时钟树配置和分频系数不匹配的问题。没有实测波形作为参考这些偏差非常难发现。调试器方面使用Segger J-Link或者PE Multilink都可以。调试时重点关注PDB的CNT计数器和ADC的转换状态位通过观察计数器的运行轨迹可以快速判断PDB是停在原地还是在正常计数。如果计数器一直为0说明PDB没有被触发重点排查外部触发信号链路如果计数器每次都在增加到某个值后归零说明MOD值没有问题重点排查触发输出配置。实际测量中我还总结了一个小经验利用芯片的引脚复用功能将PDB的输出信号路由到空闲引脚观察PDB输出信号的波形可以确认PDB是否正常工作。这个方法在PCB已经完成之后特别有用不用拆板子就能确认芯片内部信号是否正常。DCUDebug Configuration Unit选项也值得关注。S32K144的调试器支持调试模式下暂停外设的功能。如果不小心使能了这个功能在调试器单步执行时PDB会停止计数单步结束后PDB又继续运行导致看起来好像PDB总是没有触发。这个问题在调试时特别容易误判为配置问题排查方向偏掉之后会浪费大量时间。在做ADC硬件触发调试以前我习惯先准备一份正常工作的参考波形。也就是先用逻辑分析仪抓一次正常的PDB触发波形后续调试中遇到异常时就拿实际波形和参考波形对比很快就能定位问题。8. 个人心得和最后一点建议S32K144的ADC硬件触发链路配置说难也不算难只要把TRGMUX、PDB、ADC这三个模块的配置逻辑理顺然后用示波器实测确认每一级信号基本都能很快搞定。真正容易踩坑的地方往往不是某个寄存器配置而是模块之间的配合关系——TRGMUX的路由必须知道PDB在等什么信号、PDB的延迟必须算上时钟分频和触发源延迟、ADC的触发模式必须真的使能硬件触发而不是留在软件触发。最后再分享一个我个人的调试心得。遇到ADC采样异常上电第一件事不是看ADC寄存器而是先确认PDB的计数器到底有没有在走。计数器不正常后面的采样自然是错的。ADC硬件触发链路一长排查要遵循从源头往后查的顺序先确认PDB有没有被触发并在计数再确认PDB的输出有没有到达ADC最后看ADC有没有正确出数。这个顺序在多个项目中都帮我快速定位到了问题所在。希望这些内容能帮到你如果调试过程中遇到不在这个范围内的新问题欢迎在实际项目中积累自己的排查经验这类问题多踩几次坑反而能让理解更深。
返回列表