模数转换器——ADC
模拟信号只有通过转换为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的,与模拟数字转换相对应的是数模转换,数模转换是模数转换的逆过程
数模转换器——DAC
又称D/A转换器,简称DAC,它是把数字量转变为模拟的器件,D/A转换器基本上由四个部分组成及全电阻网络、运算放大器、基准电源和模拟开关
应用场景:需要将检测到的连续变化的模拟量转化为数字量进行处理,如温度压力,流量速度光强等
A/D转换性能指标
分辨率:指数字量变化一个最小量时对应的模拟信号的变化量,对于的模拟信号变化的范围,它代表A/D转换器对模拟输入量微小变化的分辨能力
转换时间:指AD转换器完成一次AD转换所需要的时间
D/A转换器性能指标
分辨率:DAC的分辨率是指最小输出电压与最大输出电压之比,也就是模拟满量程范围被2n- 1分割所对应的模拟值,模拟满量程范围一般指的是参考电压VREP
STM32—ADC
最多五个ADC的时间,每个ADC由一个12位逐次逼近模数转换器组成
每个ADC具有多达19个多路复用通道,每个通道的A/D转换可以在单一、连续、扫描或不连续模式上进行,ADC的结果储存在左对齐或右对齐的16位数据寄存器中
STM32—DAC
DAC模块是一个12位电压输出数模转换器,DAC可配置为8位或12位模式,并与DMA控制器相结合使用,在12位模式下,数据可以左对齐或右对齐,DAC具有多达两个输出通道,每个通道都有自己的转换器
下面是电路原理图:
先进行ADC的功能实现
STM32cube初始化
设置系统时钟
设置GPIO引脚
设置ADC引脚
接下来编写代码
一个ADC通道的功能已经实现 ,接下来我们同时实现两个ADC
编写代码
功能实现
然后我们学习DAC的功能实现
STM32cube初始化
本开发板没有集成DAC相关设备,所以需要使用扩展引脚
本次我们使用PA4引脚
STM32cube初始化
开始编写代码
功能实现