STM32F407ZGT6学习之DAC

工程代码:https://pan.baidu.com/s/1Qlfg1_br0tN6yy0fcDwCjg,密码:fhh2

(一)概述

    DAC 模块是 12 位电压输出数模转换器,用于将数字信号转换为对应的模拟信号的设备。
(二)DAC框架图

    当DAC有触发信号输入时,会触发DAC进行数模转换,把数字信号转换为模拟信号并输出到DAC_OUTx引脚上。

STM32F407ZGT6学习之DAC_第1张图片

(三)DAC功能说明:

1、DAC数据格式

    DAC在进行数模信号转换时,需要把数字信号的值写入到指定寄存器中,DAC才能把数字信号转换为模拟信号。

    对于一个DAC通道来说,有三种指定寄存器可以写入,数据写入到这三个指定寄存器之后,通过自动加载或者软件、外部事件触发,把数据加载到DOR寄存器中。

    ①、8 位右对齐:软件必须将数据加载到 DAC_DHR8Rx [7:0] 位(存储到DHRx[11:4] 位);
    ②、12 位左对齐:软件必须将数据加载到 DAC_DHR12Lx [15:4] 位(存储到DHRx[11:0] 位);
    ③、12 位右对齐:软件必须将数据加载到 DAC_DHR12Rx [11:0] 位(存储到DHRx[11:0] 位);

2、数字信号转模拟信号计算

    例如:用8位的数据格式转换时,此时数字信号的范围值为0x0~0xFF(也就是0~255),同时DAC会参考VREF+引脚上的输入电压,将0~VREF+之间的电压平分为256份,此时每个数字信号就对应一个模拟信号。

    DAC 通道引脚的模拟输出电压通过以下公式确定:

    DACoutput = VREF × DOR / 256。

    其中DACoutput为输出模拟信号,VREF为VREF+引脚上的输入电压,DOR为数字信号的值,这里采用的是8位数据格式,所以除以256(如果采用的是12位数字格式,也就是0x00~0xFFF(0~4095),那么应该除以4096)。

2、DAC触发选择

    DAC可以通过外部事件(定时计数器、外部中断线)或者软件方式触发转换。

STM32F407ZGT6学习之DAC_第2张图片

你可能感兴趣的:(STM32驱动摸索学习)