使用STM32 RT-Spark上的软件比较器监控模拟电压——电位器输入、LED输出,支持轮询和中断模式
电压监测是嵌入式系统中的基本任务。本项目在STM32 RT-Spark开发板上构建了一个软件比较器,通过ADC读取电位器的输出,并将其与电阻分压参考值进行比较。当电压超过设定阈值时,内置LED会改变颜色,从而提供即时的视觉反馈。实验中对比了轮询方式和中断驱动方式,以了解它们对系统效率和响应时间的影响。
硬件设置
硬件配置中,RT-Spark STM32 板连接到一个面包板上,面包板内包含一个电位器和电阻分压电路。电位器的输出被接入 PA2 作为可变输入电压,而 R1/R2 分压电路则为软件比较器提供一个约 1.65V 的固定参考电压。
电路连接
电位器被连接为电压分压器,接入RT-Spark板:
•VCC(3.3V)→ 水平电位器外引脚1
•GND → 水平电位器外引脚2
•雨刷(可变输出)→ PA0(ADC1通道0)
•PF11 → 车载LED输出
电位器刮板产生0至3.3V之间的可变电压,由TIM2触发的中断通过ADC1进行连续采样,并与约1.65V的软件阈值进行比较。
实施
系统的主要特点包括:
•电压阈值检测:模拟看门狗的阈值通过软件设置为约1.65V(ADC值为4095中的2048),可实现精确的比较器控制。
•实时LED反馈:当输入电压超过设定阈值时,PF11上的内置LED会立即闪烁。
•双模式操作:系统支持轮询和中断驱动两种方式,本实现通过 HAL_ADC_Start_IT 使用 TIM2 触发的 ADC 中断。
•模拟看门狗:STM32内置的模拟看门狗外设会监控ADC通道0(PA0),当电压超出设定范围时,会触发回调函数。
观察:
•LED 切换:当电位器电压超过约 1.65V 时,PF11 发生切换,阈值随之调整为 2035–4095,形成一个滞后窗口,从而防止闪烁。
•测量阈值:LED状态变化在约1.65V处被观察到,与3.3V电源下ADC的中点值2048一致。
•即时响应:调节电位器后,LED立即反馈,无明显延迟。
•稳定行为:阈值(2035年和2048年)之间的滞后间隙确保了在阈值点处无振荡的平滑过渡。
视频显示系统运行时,电位器正在被旋转。当电压超过阈值时,内置的LED灯会立即亮起或熄灭,表明软件比较器正在实时工作。
本文编译自hackster.io





