
核心改动非阻塞状态机:原来一次调用阻塞完成 2688 次转换,现在每次调用只做 1~2 次,需要外部按固定节奏(比如 1ms Systick 或主循环)反复调用,累计 1408 次调用后完成一整轮采集+计算。不管放在 ISR 还是主循环都不会长时间占用 CPU。EOC 等待加超时:AdcWaitEoc()不会再永久卡死,硬件异常时能跳出。M0 无硬件除法优化:4096/1024/256/128 全部换成移位,因为 Cortex-M0 没有 SDIV/UDIV,原来的多次/会走软件除法库,比较慢。修复 vFloat 溢出风险:改成 64 位中间变量一次性移位计算,避免之前"接近 uint32_t 上限"的溢出隐患。使用方式:把AdcTransferHandler()挂到一个固定周期的调用点(定时器中断/Systick/主循环轮询均可),让它自己持续推进状态机即可,不需要额外传参或起始触发。需要你确认/对齐的地方(因为我这边看不到完整工程文件):AdcType_t、xAdc、AdEnMap[]、USERS_ADC_CHN_SIZE、ADC_VREF