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实验的主要内容,如果未能解决你的问题,请参考以下文章

stm32f4的DSP库可以做4096点FFT吗

STM32F4 HAL库开发 -- STM32CubeMX

STM32F4 HAL库开发 -- STM32CubeMX

STM32F4 HAL库开发 -- STM32CubeMX

STM32CubeMX stm32F4 CAN 使用步骤--全文复制粘贴

在 Flash 中为用户数据分配内存(STM32F4 HAL)