历史上的今天
今天是:2025年04月21日(星期一)
2020年04月21日 | STM32 DAC简单介绍
2020-04-21 来源:eefocus
1.DAC模块
1.数模转换功能
2.可以配置为8位和12位模式(8位右对齐,12位左对齐,12位右对齐)
3.DAC模块有两个单独的控制器,每个通道有着单独的转换器,可以独立转换,也可以同时转换
4.可以实现噪声波形和三角波形的生成
5.每个通道有着DMA功能
6.图示:

PS:左上方为一些触发的条件,左下方为一些数字电源(VDDA,VSSA)
Vref+为参考电压,DAC_OUT_x为DAC的输出通道,(2.4v 数据并不是直接传入DORx的,需要先传入DHRx(如果没有选择硬件触发(TENx=0),在一个时间周期后传入DORx),同时,又经过Tsetting(大约3us)后传入DHRx,如果选择硬件触发(TENx=1),则在3个时间周期后传入DORx 2.细节部分 1.DAC的输出电压 DAC输出=(Vref)x(DOR/4095) 2.DAC的输出缓存 虽然可以提高输出能力,但是达不到输出为0的效果,所以基本不用 3.配置步骤 1.开启GPIO口的时钟,设置GPIO口 2.使能DAC的时钟 3.初始化DAC 4.使能DAC的转化通道 5.设置输出值 PS: typedef struct { uint32_t DAC_Trigger; //触发方式 uint32_t DAC_WaveGeneration; //是否形成波形 uint32_t DAC_LFSRUnmask_TriangleAmplitude; //屏蔽/幅值选择器(在选择波形后使用) uint32_t DAC_OutputBuffer; //输出缓存(一般不用) } DAC_InitTypeDef; GPIO_InitTypeDef GPIO_InitStructure;//定义结构体 DAC_InitTypeDef DAC_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;//无触发功能 DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;//无波形发生 DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;//作为屏蔽/幅值选择器,在无波形时,不使用 DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable;//一般不使用输出缓存 DAC_Init(DAC_Channel_1,&DAC_InitType);//初始化DAC通道1 DAC_Cmd(DAC_Channel_1,ENABLE);//通道使能 DAC_SetChannel1Data(DAC_Align_12b_R,0); //初始化数据格式 } 设置电压值(vol*4096/3.3) void Dac1_Set_Vol(u16 vol) { float temp=vol; temp/=1000; temp=temp*4096/3.3;//公式 DAC_SetChannel1Data(DAC_Align_12b_R,0); //初始化数据格式 } 注意设置数据对齐的方式 
上一篇:STM8L151 DAC
史海拾趣
|
用最新库玩转智林STM32开发板(之七)------让开发板发出SOUND 听说库又升级了哈,我的版本以是最新版,所以题目没改,我觉得ST这么升级下去对编程者没太大好处,大家都象智林老大,不用库算了. 唉,还得言归正传 智林板的喇叭接的是第TIM3的第3道,所以得编相应的程序. #include // STM32F10x Librar ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 1.3.3 Network scripts Using the network scripts To be able to access the network functions, you need to include the necessary shell scripts by running: . /etc/functions.sh # common fun ...… 查看全部问答> |
|
两个数相加 这两个数是单精度的浮点数 0.97570213004 ,-0.97702828142 采用IEEE的32位标浮点格式 ,就是每个浮点数都有3个部分,符号位,指数部分,尾数 … 查看全部问答> |
|
RS232转485,485再转回232问题。急!!!高手进!在线等待 我们现在做考勤系统,软件已经完成。硬件用rs232读卡器读取卡信息,通过串口传入计算机。现在把读卡器直接连到计算机的串口能够读取到卡信息,但是,由于我们的计算机与读卡器的距离比较远,大于有效距离15米,大概有几百米,所以我们将计算机的串 ...… 查看全部问答> |
|
手头只有调试TMS320F28027的XDS100,不知道该XDS100能不能调试tms320f28335 以前自己做的2407A用的是并口调试工具,现在有没有什么USB的,可以自己DIY的工具啊?… 查看全部问答> |
|
参加研讨会,免费获取Zigbee开发套件(ADK-DK)及礼品一套!!! http://www.mxchip.com/guanyuwomen/gongsixinwen/20110302/389.html… 查看全部问答> |
|
有个程序,实在看不懂,哪位帮忙看下,帮我详细解释解释 \'( 故障代码: E0:燃气泄露 E1:风机 E2:点火器 E3:小火电磁阀(v1) E4:大火电磁阀(v2) E5:残火 E6:燃气超压 E7:意外熄火( ...… 查看全部问答> |




