ADC 采样状态与资源释放
本文对应 2026-10-04 主目录后继候选。实现与测试准备已完成,集中 Host/Native/九环境验证尚待运行,不能据此认定设备固件已更新。实际校准、内存恢复和长稳仍待验收。
参数与接线说明见 ADC 模拟输入。
如何判断读数
有效零和读取失败必须区分:成功采样的零保留为数值;SDK 读取失败时 rawValue 为 null,工程值无效,质量为 read_failed。校准换算失败可以保留已采得的 raw,但工程值仍无效,不能用于规则阈值或测量通过判定。低/高量程质量仍表示真实样本超出配置范围,不自动冒充有效端点。
HTTP 模拟输入读数、协议上报和执行器由同一批样本生成 raw、电压、工程值与质量。芯片校准不另取样,也不等于传感器或仪表的溯源标定。电流、电压、NTC 和电流环旧传感器路径(sensorType 4..7)同样检查整批读取;中途失败会使本次结果无效。
禁用后为什么引脚仍被保留
同一 ADC unit 可以由多个通道共享。当前 SDK 没有单独删除通道的接口,因此删除某一配置后,只要同 unit 仍有其它采样者,已配置的 channel/pin 仍保留到最后一个使用者退出。运行资源信息分别显示 unit、channel 和 consumer,不应只依据配置数量判断资源释放。
PM ADC 使用实际外设 ID 的持久租约;旧传感器采样使用 Sensor 角色和实际 pin 的临时租约,在非缓存读取后释放,不生成假的外设 ID。SDK 获取、配置、采样或释放失败会明确报错;部分分配或清理失败会保留可能仍有效的资源,防止其它 GPIO/PWM/DAC/NeoPixel 复用。失败临时租约需要排障后受控重启,不通过反复采样隐式清除。
项目引脚准入同时检查 PM 管理的其它驱动与 Arduino periman;检测到其它 owner 时不自动拆除对方资源。绕开项目管理器的第三方 SDK/GPIO 改配不在已证明的全局并发保护范围内。
配置兼容及实物验收
候选固定硬件采样为 12 bit,配置的 9~12 bit 由同一 raw 右移得到。classic ESP32 原先会改变原生硬件分辨率,因此旧标定、噪声与量程需要重新验收。校准对同一滤波样本换算,无法恢复已丢弃的低位。
校准 scheme 依芯片而定;不支持、缺标定、ADC2 被 Wi-Fi 等占用或 SDK 拒绝时应报告失败,不能用零或假定 vRef 代替“校准成功”。资源快照零等待且不启动 ADC,忙时表示本次未观测;数量不等于内存字节,也不覆盖未登记的第三方驱动。
当前未操作设备、串口、现场配置或物理输出。继续验收需要确认具体固件、设备身份与安全接线,使用已知电压/电流源测试,分别保留 ADC2/Wi-Fi、异常接线、内存恢复及 24h/7d 记录;软件测试通过不能代替这些结果。

