当前位置:首页 > 单片机 > 单片机
[导读]特点:2个DAC转换器:每个转换器对应1个输出通道 (对应PA4和PA5)8位或者12位单调输出12位模式下数据左对齐或者右对齐同步更新功能噪声波形生成三角波形生成双DAC通道同时或者分别转换每个通道都有DMA功能DAC输出电压

特点:

2个DAC转换器:每个转换器对应1个输出通道 (对应PA4和PA5)

8位或者12位单调输出

12位模式下数据左对齐或者右对齐

同步更新功能

噪声波形生成

三角波形生成

双DAC通道同时或者分别转换

每个通道都有DMA功能

DAC输出电压:

数字输入经过DAC被线性地转换为模拟电压输出,其范围为0到Vref+。任一DAC通道引脚上的输出电压满足下面的关系: DAC输出 = Vref * (DOR / 4095)。

CODE:
//dac.c#include"dac.h"voidDac1_Init(void){GPIO_InitTypeDefGPIO_InitStructure;DAC_InitTypeDefDAC_InitType;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTA通道时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);//使能DAC通道时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;//端口配置GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟输入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_4);//PA.4输出高DAC_InitType.DAC_Trigger=DAC_Trigger_None;//不使用触发功能TEN1=0DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;//不使用波形发生DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;//屏蔽、幅值设置DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable;//DAC1输出缓存关闭BOFF1=1DAC_Init(DAC_Channel_1,&DAC_InitType);//初始化DAC通道1DAC_Cmd(DAC_Channel_1,ENABLE);//使能DAC1DAC_SetChannel1Data(DAC_Align_12b_R,0);//12位右对齐数据格式设置DAC值}//设置通道1输出电压//vol:0~3300,代表0~3.3VvoidDac1_Set_Vol(u16vol){floattemp=vol;temp/=1000;temp=temp*4096/3.3;DAC_SetChannel1Data(DAC_Align_12b_R,temp);//12位右对齐数据格式设置DAC值}//main.c#include"led.h"#include"delay.h"#include"key.h"#include"sys.h"#include"lcd.h"#include"usart.h"#include"dac.h"#include"adc.h"#include"usmart.h"intmain(void){u16adcx;floattemp;u8t=0;u16dacval=0;u8key;delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级uart_init(115200);//串口初始化为115200KEY_Init();//初始化按键程序LED_Init();//LED端口初始化LCD_Init();//LCD初始化usmart_dev.init(72);//初始化USMARTAdc_Init();//ADC初始化Dac1_Init();//DAC初始化POINT_COLOR=RED;//设置字体为红色LCD_ShowString(60,50,200,16,16,"WarShipSTM32");LCD_ShowString(60,70,200,16,16,"DACTEST");LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");LCD_ShowString(60,110,200,16,16,"2015/1/15");LCD_ShowString(60,130,200,16,16,"WK_UP:+KEY1:-");//显示提示信息POINT_COLOR=BLUE;//设置字体为蓝色LCD_ShowString(60,150,200,16,16,"DACVAL:");LCD_ShowString(60,170,200,16,16,"DACVOL:0.000V");LCD_ShowString(60,190,200,16,16,"ADCVOL:0.000V");DAC_SetChannel1Data(DAC_Align_12b_R,0);//初始值为0while(1){t++;key=KEY_Scan(0);if(key==WKUP_PRES){if(dacval<4000)dacval+=200;DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//设置DAC值,电压值递增,灯逐渐变亮}elseif(key==KEY1_PRES){if(dacval>200)dacval-=200;elsedacval=0;DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//设置DAC值,电压值递减,灯逐渐变暗}if(t==10||key==KEY1_PRES||key==WKUP_PRES)//WKUP/KEY1按下了,或者定时时间到了{adcx=DAC_GetDataOutputValue(DAC_Channel_1);//读取前面设置DAC的值LCD_ShowxNum(124,150,adcx,4,16,0);//显示DAC寄存器值temp=(float)adcx*(3.3/4096);//得到DAC电压值adcx=temp;LCD_ShowxNum(124,170,temp,1,16,0);//显示电压值整数部分temp-=adcx;temp*=1000;LCD_ShowxNum(140,170,temp,3,16,0X80);//显示电压值的小数部分adcx=Get_Adc_Average(ADC_Channel_1,10);//得到ADC转换值temp=(float)adcx*(3.3/4096);//得到ADC电压值adcx=temp;LCD_ShowxNum(124,190,temp,1,16,0);//显示电压值整数部分temp-=adcx;temp*=1000;LCD_ShowxNum(140,190,temp,3,16,0X80);//显示电压值的小数部分LED0=!LED0;t=0;}delay_ms(10);}}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

此次小编所写的文章中所述的电路显示了创建可编程 LED 驱动器更简单的方法,该驱动器非常适用于需要紧凑、可扩展、易于供电和高线性度电源的精确照明控制应用。不过,尺寸必须适应应用的要求,以避免由于各种存在的电感(例如线路电...

关键字: led驱动器 电流转换器 dac

您也许知道,某些DAC包含可在输出端生成基准电压的R2R网络。这些电阻都是精密电阻。它们通常用来根据发送到DAC的数字值切换电流,从而在输出放大器端产生一个电压。采用乘法DAC时,并未集成输出放大器。这就有可能实现某些非...

关键字: dac 电路图

文中将要讨论的所有噪声源,设计人员可能会茫然不知所措。一种简单的做法是采取某种"推荐解决方案";但对任何具体设计要求而言,这都是次优做法。在所有器件特性中,噪声可能是一个特别具有挑战性、难以掌握的设计课题。

关键字: 电源 噪音 dac

    在现代系统集成控制当中,大型的信号切换系统都是各种场所必不可少的,目前主流的信号切换系统包括CREATOR快捷等大型切换系统产品,其中有AV信号切换系统、RGB信号切换

关键字: adi 医疗成像 dac ad5791

  1.绪论   自六十年代以来,许多国家即开始对导航和定位技术的研究。而车辆导航系统即是测量并解算出车辆的瞬时运动状态和位置,提供给驾驶员或自动驾驶仪以实现车辆的正确操纵或控制。车辆导

关键字: dac 视频芯片 cs7123

CS43130 DAC 功耗降低了 4 倍,包括一个 NOS 滤波器和 512 单位元,用于自然、高保真的声音再现 ( 2017 年 2 月15 日,奥斯汀,德克萨斯州)—&

关键字: cs43130 dac 音频设备

AD9139的数据时钟输入(DCI)频率可高达575 MHz。由于在上升沿和下降沿捕获的数据均馈入单个DAC,1×模式下的数据速率可高达1150 MSPS。

关键字: dac 发射器 ad9139

很多人都知道基准电压,那么它的作用是什么呢?由于无处不在,我们来看看基准电压有多重要。我们平时会用到吗?无论是汽车还是电脑等,只要是电子产品就必须以某种方式与“真实”交互。这种结合能测量出(特性:速度、压力、长度、温度)...

关键字: adc dac 模拟集成电路

新的USB-C供电(PD)3.0器件提供领先市场的方案用于电源适配器和电池充电器应用

关键字: dac usb-c 控制器

​2020年1月15日–专注于引入新品并提供海量库存的电子元器件分销商贸泽电子(Mouser Electronics)即日起备货Texas Instruments(TI)的DACx0501数模转换器(DAC)。

关键字: dac 数模转换器 dacx0501
关闭
关闭