一、DAC简介
今天学习的是DAC,即数模转换,大容量的STM32F103具有内部DAC模块,STM32F103ZET6属于大容量芯片,具有2个DAC,每个DAC对应一个输出通道,可以设置为8位或12位,选择12位模式时,数据存储可设置为左对齐或右对齐,双DAC通道可以独立转换,也可以同步转换。数据data与输出电压的关系为
V=data*3.3/4096;
VDDA和VSSA为DAC模块的供电,Vref+为参考电压。通道1为PA4,通道2为PA5;本次的实验是,通过按键给DAC模块一个值,然后将PA4与PA1(ADC通道1)连接起来,就可以通过读取ADC1的通道1的电压来确定PA4的输出电压。
二、配置库函数
1)开启PA口时钟,设置PA4为模拟输入;因为使能DAC后,PA4或PA5会自动与DAC模拟输出相连,设置为输入,是为了避免额外的干扰;
2)使能DAC时钟,初始化DAC,设置工作模式;
3)使能DAC转换通道;
4)设置输出值;0~4096对应输出0~3.3V;
5)子函数:直接给电压值,输出电压
6)主函数:
三、调试结果
当每次按下按键时,输出值加200,即0.2V,显示在OLED上;
将PA1与PA4相连,就可以用ADC的输入引脚,去读取DAC的输出引脚,比较两个值是否相等;