4. DAC控制寄存器0(DACx_C0)
l DACEN:DAC使能。
DACEN=0:DAC被禁止;
DACEN=1:DAC使能。
l DACRFS:DAC参考选择。
DACRFS=0:选择DACREF_1为参考电压;
DACRFS=1:选择DACREF_2为参考电压。
DAC的参考电压由两个,一个是VREF_OUT,来自外部或VREF模块的输出,默认连接到DACREF_1;另一个时VDDA,默认连接到DACREF_2。
这里注意,如果ADC和DAC都使用VREF_OUT作为参考电压,则ACC精度的下降有可能和DAC切换有关。
l DACTRGSEL:DAC触发选择。触发事件的发生会使得缓冲区读指针自动指向下一个数据并进行转换。硬件触发信号默认来自PDB模块,软件触发则通过向DACSWTRG中写1实现。
DACTRGSEL =0:选择DAC硬件触发器;
DACTRGSEL =1:选择DAC软件触发器。
l DACSWTRG:DAC软件触发器。当DAC选择软件触发且缓冲区使能时,向该位写1即可实现软件触发,缓冲区读指针自动指向下一个数据。
DACSWTRG=0:DAC软件触发无效;
DACSWTRG=0:DAC软件触发有效。
l LPEN:DAC低功耗控制。
LPEN=0:大功率模式;
LPEN=1:低功率模式。
l DACBWIEN:DAC缓冲区位置标记中断使能。用于设定当读指针指向设定的位置标记处时,是否引发中断请求。
DACBWIEN=0:DAC缓冲区位置标记中断禁止;
DACBWIEN=1:DAC缓冲区位置标记中断使能。
l DACBTIEN:DAC缓冲区读指针顶部标志中断使能。
DACBTIEN=0:DAC缓冲区读指针到达顶部禁止中断;
DACBTIEN=1:DAC缓冲区读指针到达顶部触发中断。
l DACBBIEN:DAC缓冲区读指针底部标志中断使能。
DACBBIEN=0:DAC缓冲区读指针到达底部禁止中断;
DACBBIEN=1:DAC缓冲区读指针到达底部触发中断。
5. DAC控制寄存器1(DACx_C1)
l DMAEN:DMA使能。
DMAEN=0:DMA功能禁止;
DMAEN=1:DMA功能使能。
l DACBFWM:缓冲区水位标志选择。该位允许用户设置,水位标志相当于预警标志,表示还差多少,缓冲区中数据就即将转换完毕。水位标志应位于顶部和底部之间,意义是表示当缓冲区读指针已经距离最高限还差多少的时候,水位标志置1。
DACBFWM=00:1word;
DACBFWM=01:2word;
DACBFWM=10:3word;
DACBFWM=11:4word。
l DACBFMD:DAC工作模式选择。
DACBFMD=00:普通模式,在触发信号驱动下,从缓冲区顶部逐个转换数据到最底部,然后读指针回到缓冲区顶部,循环往复;
DACBFMD=01:摇摆模式,在触发信号驱动下,从缓冲区顶部逐个转换数据到最底部,再从底部逐个转换回到顶部,循环往复;
DACBFMD=10:单次扫描模式,在触发信号驱动下,从缓冲区顶部逐个转换数据到最底部,然后读指针回到缓冲区顶部并停止转换。
DACBFMD=11:保留。
l DACBFEN:DAC缓冲区使能。只有在缓冲区使能的情况下,才可使用触发信号触发逐个转换缓冲区中数据。
DACBFEN=0:DAC缓冲区读指针禁止,转换数据永远来自缓冲区的第一个字,即DAC数据寄存器中的数;
DACBFEN=1:DAC缓冲区读指针使能,转换数据来自读指针指向的字。
6. DAC控制寄存器2(DACx_C2)
l DACBFRP:DAC缓冲区读指针。
l DACBFUP:DAC缓冲区最高限,相当于指定缓冲区大小,如不指定,缓冲区大小默认为16个,即最大值。该最高限不允许DAC读指针超越。