STM32G4系列片内模拟器件-比较器的使用
- 1.前言
- 2.CubeMX配置
- 3.HAL库函数
1.前言
STM32G4系列内置了片内模拟比较器,为电机控制、电源监测等方面的应用提供了很大的便利。要使用片内比较器,只需使用STM32CubeMX进行简单配置即可。
2.CubeMX配置
首先,在CubeMX中打开比较器的接口,这里展示了比较器1的输入输出端口。
在比较器配置界面中设置好正负输入端口,其中负端可选择配置为外部引脚输入、连接到DAC输出以及参考电压输入。输出端口不是必须的,可以在用示波器观察比较器输出结果的时候选择打开它。
其他可配置的参数如下
Trigger Mode:可选上升沿、下降沿或双边沿触发,产生触发中断或事件。
Hysteresis Level:迟滞量设置,0~70mV共8个档位可以选择,主要是为了滤除信号扰动导致比较器输出不稳定。(注意:迟滞量只有在向下比较时才有效)。
Blanking Source:配置消隐源信号(TIMx),防止比较器误触发,比如电机在换相续流时可能会导致端电压迅速上升,从而使比较器误检测。
Output Polarity:配置输出是否取反。
配置完成后需要打开中断,这样一来,每当比较器触发时就能够进入中断中进行相应的处理。
3.HAL库函数
启动比较器
HAL_COMP_Start(&hcomp1);
中断回调函数
void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp);