STM32F4HAL库 CubeMX(十五)--------DAC实验
Posted 旺旺^淞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F4HAL库 CubeMX(十五)--------DAC实验相关的知识,希望对你有一定的参考价值。
文章目录
前言
STM32F4 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的 DAC。DAC
可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC 工作在 12 位模式时,
数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。
在双 DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个
通道的输出。DAC 可以通过引脚输入参考电压 Vref+(通 ADC 共用)以获得更精确的转换
结果。
一、DAC是什么?
STM32F4 的 DAC 模块主要特点有:
① 2 个 DAC 转换器:每个转换器对应 1 个输出通道
② 8 位或者 12 位单调输出
③ 12 位模式下数据左对齐或者右对齐
④ 同步更新功能
⑤ 噪声波形生成
⑥ 三角波形生成
⑦ 双 DAC 通道同时或者分别转换
⑧ 每个通道都有 DMA 功能
二、DAC实验
1.实验所需配置功能
由于原子在本讲用的模块较多,我们只是测试,所以仅挑了部分,可表示实验结果就行。
1) 串口
2) ADC
3) DAC
2.功能配置
3.时钟配置
RCC时钟配置如前文一样(此处一般情况是不变的)。
【STM32F4】HAL库 CubeMX(一)--------创建工程(点亮LED)
4.生成代码
仿自原子的DAC设置函数,可多次自己设置电压值
HAL_ADC_Start(&hadc1);
temp = 2.5;//2.5V
//temp/=1000;这里不需要,图片有误
temp=temp*4096/3.3;
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, temp);
来源于ADC例程
HAL_ADC_PollForConversion(&hadc1, 50);
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
ADC_Value = HAL_ADC_GetValue(&hadc1);
printf("PA5 True Voltage value : %.4f \\r\\n",ADC_Value*3.3f/4096);
HAL_Delay(500);
以上是关于STM32F4HAL库 CubeMX(十五)--------DAC实验的主要内容,如果未能解决你的问题,请参考以下文章