OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3046|回复: 0

基于AT32F403的DAC基础配置(STM32F103类似)

[复制链接]

3

主题

3

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-2-15
在线时间
5 小时
发表于 2020-12-14 19:38:21 | 显示全部楼层 |阅读模式
AT32DAC有两个独立通道,每个通道可以分别产生稳定电平,三角波,模拟噪声三种输出波形。这里以三角波举例:
1)使能DAC对应时钟,对应GPIO时钟:
  RCC_APB1PeriphClockCmd(RCC_APB1PERIPH_DAC, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOA, ENABLE);
2)配置DAC对应GPIO口为模拟模式:
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_ANALOG;
GPIO_Init(GPIOA, &GPIO_InitStructure);
3DAC输出配置:
DAC_InitStructure.DAC_Trigger =DAC_Trigger_Software; //触发源选择软件触发
DAC_InitStructure.DAC_WaveGeneration =DAC_WaveGeneration_Triangle; //波形选择三角波
DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude= DAC_TriangleAmp_2047; //三角波幅度/噪声发生器屏蔽位选择--2047
DAC_InitStructure.DAC_OutputBuffer =DAC_OutputBuffer_Enable; //输出缓存选择使能输出缓存可以减少输出阻抗,无需外部运放即可直接驱动外部负载。
DAC_Init(DAC_Channel_1,&DAC_InitStructure);
4DAC精度、左/右对齐选择,基值设定:
DAC_SetChannel1Data(DAC_Align_12b_Left, 2047);  //12bit精度,左对齐,基值这里设置20471/2Vref
5DAC通道使能
DAC_Ctrl(DAC_Channel_1, ENABLE);
6)触发转换:
  DAC->SWTRG |= 0x1;//每触发一次,DAC输出+1。在这个例子里,第一次触发DAC输出电平Vref*(基值+0)/4095,第二次触发DAC输出电平Vref*(基值+1)/4095… 因此输出三角波斜率可以通过触发时间间隔调整。
DAC输出三角波.png

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 20:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表