DAC简介
DAC 模块是 12 位电压输出数模转换器。 DAC 可以按 8 位或 12 位模式进行配置,并且可与DMA 控制器配合使用。在 12 位模式下,数据可以采用左对齐或右对齐。 DAC 有两个输出通道,每个通道各有一个转换器。在 DAC 双通道模式下,每个通道可以单独进行转换;当两个通道组合在一起同步执行更新操作时,也可以同时进行转换。可通过一个输入参考电压引脚 VREF+ (与 ADC 共享)来提高分辨率。
DAC引脚
DAC_OUT1->PA4
DAC_OUT2->PA2
要使能DAC通道,应先将对应引脚配置为模拟模式
DAC寄存器
DAC_DORx寄存器不能直接写入,任何数据都需要通过DAC_DHRx寄存器才能传输到DAC通道x上。
DAC触发选择
自动触发:经过1个APB1时钟周期,DHRx->DORx
硬件触发:DAC转换由外部硬件事件(如定时器、外部中断等)来启动。当DAC配置为硬件触发模式时(例如通过设置DAC_CR1寄存器的TENx位),数据从DHRx到DORx的传输会在外部触发事件发生后3个APB1时钟周期后完成。
软件触发:DAC经过一个 APB1 时钟周期后, DAC_DHRx 寄存器中存储的数据将自动转移到 DAC_DORx 寄存器。
//设置通道1输出电压
//vol:0~3300,代表0~3.3V
void Dac1_Set_Vol(u16 vol)
{
double temp=vol;
temp/=1000;
temp=temp*4096/3.3;
DAC_SetChannel1Data(DAC_Align_12b_R,temp);//12位右对齐数据格式设置DAC值
}
//配置多少的模拟电压,直接通过参数将电压输入即可