一.ADC(模拟数字转换器)【功能框图】
1.有三个独立的ADC 2.分辨率为12位 3.每个ADC具有18个通道,其中外部通道16个
2.ADC功能框图
1.电压输入范围(3.3v)
原理图:
(注:若超出0~3.3V的电压怎么测?
电路设计:计算公式:
)
2.输入通道:每个ADC具有18个通道,其中外部通道16个
霸道开发板:
指南者开发板:外部的16个通道在转换的时候又分为规则通道和注入通道。其中规则通道最多有16路,注入通道最多有4路。
规则通道:规则通道就是很规矩,一般使用的就是这个通道。
注入通道:它是一种在规则通道转换的时候强行插入要转换的一种。它只有在规则通道存在时才会出现。
3.通道顺序转换:注入序列寄存器JSQR只有一个,最多支持4个通道,具体多少个由JSQR的JL[2:0]决定。如果JL的值小于4的话,则JSQR跟SQR决定转换顺序的设 置相反。
4.触发源:
5.转换时间:
转换时间: Tconv =采样时间+12.5个周期
最短的转换时间:
ADC_CLK:ADC模拟电路时钟最大值为14M,APB2预分频器最大为72M,经过ADC分频(2,4,6,8)之后,一般为72/6=12M;
数字时钟:外设时钟为RCC APB2ENR,用于访问寄存器。
6.数据寄存器:ADC转换后的数据根据转换组的不同,规则组的数据放在ADC_ DR寄存器,注入组的数据放在JDRx。(对齐均由 ADC CR2 : ALIGN)
规则数据寄存器有16位和低16位,低16位用于存放独立模式转换完成数据,如ADC1,ADC2;高16位在有两个模式时使用。(只有一个,多通道采集时候最好使用DMA)
注入数据寄存器有四个,只有低16位有效,用于存放注入通道转换完成数据;
7.中断:
(将数字量转换为模拟量):设数字量为X,则有模拟量Y= (3.3 / 2^12)*X;
二.ADC初始化结构体讲解(F103)
1.结构体成员
STM32F1xx的ADC的各通道可以单次,连续,扫描或者间断模式执行。
ADC实验
1.常用库函数
2.ADC初始化函数ADC-Init
3.ADC使能函数ADC-Cmd(使能指定的ADC)
4.ADC使能软件转换函数ADC_SoftwareStartConvcmd(软件转换启动)
5.ADC规则通道函数ADC-RegularChannelConfig(配置相关参数(通道、采样时间等))
6.ADC获取转换结果函数ADC-GetConversionValue(读取寄存器的值来获取转换结果)
实验:
代码编写:
数模转换DAC原理(stm32只有大容量的才有DAC功能)
1.有两个DAC转换器,每个转换器对应1个输出通道
2.8位或者12位单调输出
3.12位模式下数据左对齐或者右对齐
4.同步更新功能
5.噪声波形生成
6.三角波形生成
7.双DAC通道同时或者分别转换
8每个通道都有DMA功能
DAC转换
不能直接对寄存器DAC_DORx写入数据,任何输出到DAC通道x的数据都必须写入DAC_DHRx寄存器,经过一个APB1时钟周期后存入寄存器DAC_DORx,再经过t(setting)之后,才输出到引脚。