[应用相关] DAC与ADC的转换

[复制链接]
 楼主| aoyi 发表于 2023-8-14 12:09 | 显示全部楼层 |阅读模式
AC, AD, ADC, DAC, dc
DAC(数模转换器):把数字量转换为模拟量

ADC(模数转换器):把模拟量转换为数字量

本文章将基于单片机来理解DAC与ADC,用到的是小熊派L433系列的单片机。

1.基础配置,RCC,SYS,时钟树)

5509464d9a88f27280.png
2058764d9a89bbe176.png

117364d9a8a33a812.png


2.串口的配置

4350864d9a8a92e273.png

3.ADC的配置

在单片机上找到拓展的GPIO,在这里我选用的是PA7作为ADC的引脚,进行如下配置。

7849664d9a8b122e05.png

然后降低ADC的采样频率

7281364d9a8b641c21.png

4.DAC的配置

同样也是在单片机上找到拓展GPIO,选择其中一个作为DAC的引脚,这里我选择的是PA5,进行如下配置。

4076764d9a8bcc8f21.png

5.生成单独外设文件

6269264d9a8c2ee5a3.png

ctrl+s生成代码

6.添加串口输出函数代码

3503964d9a8c99d554.png

3970364d9a8d13c0ea.png

7.添加main.c代码

2397564d9a8d821de0.png

3863164d9a8dde0277.png

4337764d9a8e40c817.png

8.用杜邦线把PA5和PA7连接起来。

9.编译,下载,可在串口调试助手上看到此内容。
1189964d9a8eabc2f2.png
我们可以看到,i,j的值近似相等,i值为我们手动输入的值,j值为单片机实际采到的值,存在一定的误差是正常的,i,j均为数字量的值。voltage为实际电压的值,即模拟量。他们之间存在着这样的转换关系:实际电压值=软件输入值*3.3/4096,其中4096的值是来源于2的n次方,n代表了DAC的分辨率,不同的单片机分辨率略有不同,我所用的单片机的DAC的分辨率为12位,所以就是2的12次方等于4096。(第一次j和voltage的值为0是因为此时单片机还没有采到值,简单来说就是程序下载到单片机上运行需要一定的时间)
————————————————
版权声明:本文为CSDN博主「每天都在摸爬滚打」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_66273027/article/details/131362068

Undshing 发表于 2023-8-14 23:27 | 显示全部楼层
这个可不可以通过均值滤波来使它更接近原来的值啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

3316

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部