213|0

56

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【STM32 H533RE】测评五_DAC的基本原理和测试 [复制链接]

本帖最后由 Zhao_kar 于 2025-3-19 15:23 编辑

 【STM32 H533RE】测评五_DAC的基本原理和测试

备注:本节主要做dac的简单测试,具体操作为使用单片机自带的DAC生成一个信号,然后让adc重新采集,采集之后用串口打印,验证整个过程,实现之后可以看到串口打印的值即为设定的dac的值。

一、dac的原理

dac其实就是跟adc的ad反过来的,也就是把数字信号转换成模拟信号的设备,在h5的mcu里面,dac允许mcu直接输出可调的模拟电压信号,不需要外接dac模块,这个跟adc也是一样的,然后如果学过数电的,应该知道比较常见的就是权电阻网络和R2R的dac网络,还有倒t等等,本质上都是利用运放来设计的,详细就不说了,本篇就不像上一篇那么详细的说adc的原理了,两者其实是类似的思考方式,我们这边以两种方式来测试,一个是直接dac产生一个电压值,adc去测,第二种用cubemx自带的三角波波形,然后打印出来看看。

二、cubemx的配置

补充:在这一部分,配置dac时要设置一下通道,别用默认的pa4引脚,如果查阅过官方文档,就能明白我说的是什么意思了。

  然后你去看板子原理图,应该是没有吧pa4拉出来,所以改换成pa5即可。

操作如下

 

 

时钟树同理上一篇

 

然后adc跟上一篇的操作是一样的,详见如下

 

操作完之后开一下串口,这边就老样子开的串口1

 

接下来就是dac的代码编写部分。

二、代码部分

  • /* USER CODE BEGIN 2 */
  • HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 2048);
  • //HAL_TIM_Base_Start(&htim2);
  • HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);//AD校准,单端输入
  • /* USER CODE END 2 */

这一部分是老样子,一个是adc的一个是adc的,此时我们dac会输出1.65v的电压,然后循环部分还是让adc采集电压,跟上一篇一样,如下

  • HAL_DAC_Start(&hdac1,DAC_CHANNEL_1);
  • HAL_ADC_Start(&hadc1); //启动ADC转换
  • HAL_ADC_PollForConversion(&hadc1, 50); //等待转换完成,50为最大等待时间,单位为ms
  • if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
  • {
  • ADC_Value = HAL_ADC_GetValue(&hadc1); //获取AD值
  • printf("ADC1: %d \r\n",ADC_Value);
  • printf("V: %.4f \r\n",ADC_Value*3.3f/4096);
  • }
  • HAL_Delay(2000);
  • }

编译,烧录,然后在串口调试助手,就可以看到1,65v附近的电压了。

 

接下来测试完这个,我们再看三角波操作,先在cubemx里操作。

三、cubemx更改

我们要在dac这部分进行更改

 

然后这里面设置合适的值,我设的4095,然后打开定时器

 

生成代码之后只需要加一个定时器部分,然后其他部分没有什么太大变化,只需要把adc采集到的值打印出来即可

  • HAL_TIM_Base_Start(&htim2);

打印出来后见vofa的图

 

硬件连接实物如下

 

查看本帖全部内容,请登录或者注册
此帖出自stm32/stm8论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条
有奖直播 | AI之眼——安森美图像传感器 报名中
直播时间:2025年4月25日(周五)上午10:00-11:30
直播主题:AI之眼——安森美图像传感器
报名观看直播、直播间提问、填写问卷均有机会获得精美礼品!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 4

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表