一、原理
STM32G4系列有4个DAC模块,两个为低速采集DAC(1MHz),后两个为高速(可达15MHz)。每个DAC都是12bit精度的,可软件设置为8bit精度。每个DAC都有7个通道:3个外部通道、4个内部通道。
多种触发源(软件、定时器、外部触发源)。
DAC1和DAC2可接外部引脚输出,DAC3和DAC4只能接内部输出,无外部引脚。
数字量以串行或并行方式输入,并存储在数码缓冲寄存器中;寄存器输出的每位数码驱动对应数位上的电子开关,将在解码网络中获得的相应数位权值送入求和电路;求和电路将各位权值相加,得到与数字量对应的模拟量。
二、代码实现
1、配置
2、代码实现输出一个正弦波
三、代码结果
我设置了34个点采样,得到这样的波形。
四、比较器COMP
正向输入端Vp、反向输入端Vo、HYST滞回。
Vp > Vn , Vo(VALUE) = 1;
Vp < Vn , Vo(VALUE) = 0;
HYST:假设HYST = 0.1,则当Vp > Vn + 0.1时,才会输出VALUE = 1;且当Vp < Vn - 0.1时,才会输出VALUE = 0;滞回曲线如图。
最后输出的VALUE可以选择直接输出,也可以选择通过非门后输出。
输出的结果可以去向GPIO、中断、定时器、高级定时器等。
五、比较器代码实现
1、配置
配置DAC3输出至内部外设中。