这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 基于AT32F403的DAC基础配置(STM32F103类似)

共2条 1/1 1 跳转至

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

菜鸟
2020-12-14 19:48:13     打赏

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




关键词: AT32F403     STM32F103     DAC    

工程师
2020-12-14 22:42:06     打赏
2楼

配置学到了


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]