你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F4 HAL库 CubeMX(十五)--------DAC实验

[复制链接]
STMCU小助手 发布时间:2022-7-7 16:00
前言
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.功能配置

YL~7H9RLG$HPRQIN~DX(9]9.png

3.时钟配置

RCC时钟配置如前文一样(此处一般情况是不变的)。


4.生成代码
TG0}`W0J@MM0~(PUUZCF255.png
仿自原子的DAC设置函数,可多次自己设置电压值

  1.         HAL_ADC_Start(&hadc1);
  2.         temp = 2.5;//2.5V
  3.         //temp/=1000;这里不需要,图片有误
  4.         temp=temp*4096/3.3;
  5.         HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, temp);
复制代码

来源于ADC例程

  1.                 HAL_ADC_PollForConversion(&hadc1, 50);
  2.                 if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
  3.                 {
  4.                         ADC_Value = HAL_ADC_GetValue(&hadc1);
  5.                         printf("PA5 True Voltage value : %.4f \r\n",ADC_Value*3.3f/4096);
  6.                         HAL_Delay(500);
  7.                 }
复制代码




收藏 评论0 发布时间:2022-7-7 16:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版