ADC功能框图
完整功能框图

框图比较复杂,我们只关注上面部分
下面部分定时器触发这块暂时用不到,不关注
关注部分

具体介绍
V~DDA~ :模拟电源正
V~SSA~:模拟电源负
V~REF+~:模拟参考电源正
V~REF-~:模拟参考电源负
在实际电路设计中:
一般V~REF+~和V~DDA~接3.3V
一般V~REF-~和V~SSA~接地
所以ADC的测量范围是0~3.3V

输入通道
用来输入模拟电压的通道
一共多达18个通道
16个外部通道(ADCx_IN0-ADCx_IN15),对应着16个IO口。
内部温度传感器(测量芯片温度),通道16。
内部参考电压,通道17。
输入通道组织
我们可能会同时进行多路转换,输入通道组是把多个输入通道组织在一起,然后按组内顺序进行转换。
一共有两个通道组:
规则通道
规则通道组内的通道转换完成之后,会把转换后的结果存储到规则通道数据寄存器中。
规则组允许最多16个通道。
由于规则通道寄存器只有一个,当多路要转换时,寄存器内的值要及时取走,否则后面通道转换结果会覆盖前面的结果。
一般会使用DMA把数据寄存器的数据取走。
注入通道
注入通道组内的通道转换完成之后,会把转换后的结果储存到注入通道数据寄存器中。
注入组允许最多4个通道。
注入通道数据寄存器有4个,不用担心数据被覆盖问题。
规则通道和注入通道
注入通道的转换可以打断规则通道的转换。
在实际使用中,使用规则组的就够了,再配合前面学习的DMA,效果更好。
触发源
软件触发
操作控制寄存器ADC_CR2的一些相关位。
硬件触发
使用定时器的TRGO触发。


在实际使用中,一般软件触发就够了
转换方式
ADC_CR1寄存器SCAN:扫描模式(Scan mode)
开启扫描模式:多通道,顺序扫描,挨个转换。
关闭扫描模式:只转换通道组中第一个通道。
ADC_CR2寄存器CONT:连续转换(Continuous conversion)
开启连续模式:通道组内转换一轮之后,继续转换下一轮。不会停。
关闭连续模式:通道组内转换一轮之后,停止转换,等待下一次启动。