用途:配置 MCU 的 ADC 与 DAC 外设,包括通道选择、采样时间、校准序列、DMA 循环缓冲,以及 DAC 的静态与动态输出。适用于读取模拟传感器(温度、电压)、通过 DAC 输出音频或控制电压、用 DMA 连续采样,以及 STM32 复位后的 ADC 校准。
主要能力:STM32 ADC 单次转换(使能 ADC1 与 GPIOA 时钟、PA0 模拟模式,设置 SMPR2 采样时间 84 周期、SQR3 选择通道 0,SWSTART 启动并等待 EOC 后读 DR);按 F1/F4 参考手册执行 ADC_Calibration() 或 ADC_CR2_RSTCAL/CAL;DMA 循环 ADC(ADC1 到 DMA2 Stream0,外设到存储器、半字、存储器增量、循环模式写入 buffer[64],用半传输/传输完成中断做双缓冲);DAC 输出(使能 APB1 的 DAC 时钟与 DAC_CR_EN1,DHR12R1 写 2048 表示 3.3V 参考的中点)。
使用方式:可通过 /adc-dac-baremetal 命令描述需求,例如“Set up ADC1 channel 0 with DMA circular buffer”。
常见问题与限制:读数噪声大常因采样时间过短,可增大 SMP 位;EOC 卡住检查 ADC 时钟是否使能;电压不对需确认 Vref/VDDA 是否 3.3V 并校准;DMA 数据损坏注意缓冲区对齐,使用 uint16_t 对齐缓冲。相关资料未提供收费、价格、支持平台清单及除 STM32 外的具体实现细节。