历史上的今天
返回首页

历史上的今天

今天是:2025年04月21日(星期一)

正在发生

2020年04月21日 | STM32之DAC固定电压输出配置

2020-04-21 来源:eefocus

STM32F103VCT6自带两个12位DAC,DAC的转换速度一直没有查到,网上有人说是1MHZ的频率,那就是1us了。ADC的转换时间在56MHZ工作频率下为1us,在72MHZ工作频率下为1.17us。如果AD和DA有对称关系的话,那么很可能跟ADC的时间相同,刚入手分析的,不见得正确!

由于我此次使用是DA输出电压。STM32的DAC固定电压配置和波形输出配置相似,不同的地方在于它要多调用一个函数:DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);这样才会输出固定的电平。


具体配置如下: 

void DAC_VOLTAGE_Configuration(void)

{

       DAC_InitTypeDef            DAC_InitStructure;

       DAC_DeInit();

      

      DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;

      DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;      

      DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

      DAC_Init(DAC_Channel_1, &DAC_InitStructure);

      DAC_Cmd(DAC_Channel_1, ENABLE);

      DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);

}


配置完成后,调用DAC_SetChannel1Data(DAC_Align_12b_R,4000);函数就可以发送数据了!!有两点要注意:1、该函数的第一个参数DAC_Align_12b_R不可依据设置ADC外设地址的方式重写这个地址,因为这个参数是不带基址的,而我们重写地址后一半会把基址算进去,这样就不对了!(笔者就曾经卡在这里!看来凡事不可先入为主,否则问题迟早会发生。)2、每次改变发送数据时,要同时调用以下两个函数:


DAC_SetChannel1Data(DAC_Align_12b_R,4000);

DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);


至于为什么,我的理解是:因为DAC改变数据后并不会立即写入寄存器,需要一次更新,由于不是通过定时器触发来更新,因此就只能通过调用函数的方法来更新。


上一篇:STM32 软件触发 DAC

下一篇:STM8L151 DAC

推荐阅读

史海拾趣

问答坊 | AI 解惑

单片机数字电压表设计论坛

单片机数字电压表设计论坛…

查看全部问答>

蓝牙资料

下载不够分,再传一份…

查看全部问答>

请问MSFLASH删除文件后还能检索到文件内容么?

昨天实验了下使用createfile DSK1:,然后调用IOCONTOL的方法,能够读取簇内容。 分别在存储卡和RAM上建了个文件,都能检索到内容,然后删除这个文件,在RAM上就检索不到了,而在存储卡会上还能检索到。 请问谁知道这是怎么回事。 在网上搜索了下 ...…

查看全部问答>

使用HDL语言借助FPGA进行芯片开发的工作属于硬件开发还是软件开发?

使用HDL语言似乎是在编程,但是分析设计与验证的方法又需要硬件知识。请教各位,能给出个详细的理由吗?谢谢!…

查看全部问答>

wince 盘符显示问题

WINCE系统使用中文时,磁盘显示为“硬盘”字样。如何使它显示“Hard disk\"呢??…

查看全部问答>

我想买一块FPGA开发板,有什么要注意的没

在淘宝上看到好多,价格相差也很多啊,一百多到几千块钱都有,买什么样的合适?…

查看全部问答>

如减少程序所占用的内存空间

 同一个程序如果都放在一个 .c里会占用很大内存;如果模块化 它所占内存会减小 ,这是神马原因呢 ?另外,谁有更好的减少程序占用内存空间的办法  谢谢…

查看全部问答>

菜鸟求助,在STM32上调试卡住,大家帮忙看看

使用的是RTT1.0,MDK4.2,芯片是STM32F103RBT6程序跑到rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)STM32_SRAM_END);这个函数之后就卡住了。跑飞了,请问怎么解决。…

查看全部问答>

菜鸟求教,请问做计数器如果记满后,不清零他是保持记满的数不变了嘛?

菜鸟求教,请问做计数器如果记满后,不清零他是保持记满的数不变了嘛? \0\0\0eeworldpostqq…

查看全部问答>