dd8210867a
缺陷(真机实测发现):本层只有一份 s_stm32_raw[],有效标志此前只在成功时 置 1、失败时从不清零 -> 超时拍消费侧照样取数、照样压入采样环(且超时前 几个 Rank 已写本拍新值、后面几个是上一拍旧值 = 半新半旧混合帧),直接污 染 20 点 DFT 相量窗;adc_input_poll() 返回值只由 TPAFE 决定,s_frames_skip 也抓不到它。 修复:stm32_scan() 两条失败支路(HAL_ADC_Start 失败 / 轮询超时)都清 s_stm32_valid -> 本拍 adc_input_raw() 对 STM32 语义通道返 -2 -> adc_task 走既有 skip 整帧跳过路径;下一拍扫描成功自动置回 1(自愈)。 测试:新增 TC-AI-070..078(70 -> 79 用例)。旧用例 TC-AI-034/039b 都是 init 后立刻失败(valid 本就是 0),照不出成功过之后再失败这条路径,故新 用例先成功一拍进入有效态再注入失败。**反向验证已做**:把支路改回旧行为 -> TC-AI-039b/073/074 立即 FAIL(76/79),证明用例有效。 验证:主机单测 79/79 PASS;@build 0 错 0 警(Code 256868 -> 256872); @test PASS(本轮无超时:adc1_err=0、skip=0、idle=0、frames=20001); 18 钩子全绿。文档同步 4 处(停摆分析 4.4 / ADC采样节拍 10.4 / ADC输入层 单测说明 / test-host README)。 遗留:2 ms 忙等本身未消(硬化 2 = DMA,方案 B2 待 CubeMX 配置)。