ADC简单介绍
ADC模拟数字转换,电压的输入范围为 [ VREF-, VREF+ ]。分别和VSSA与VDDA相连也就是能测量 [ 0, 3.3V ]之间的电压,连接着地和电源,单片机能处理的信号是数字量。如果说模拟电压不在0到3.3之间,需要一个电路转换调整,输入电压的范围一定时,输出总是在需要的范围内。
根据基尔霍夫定律,电路某一点流入的电流 = 流出的电流
正题
ADC的输入通道,每个ADC有18个通道,外部通道有16个(对于144个脚的芯片)
ADC的分辨率有10位的和12位的,这里的位指的是二进制的位数,位数越高精度越高。
电压输入范围
ADC是将连续的模拟量转换成数字量,电压的输入来源是VREF- 和 VREF+ 他们分别和VSSA、VDDA相连
ADC的触发方式:软件触发和外部事件触发
转换时间
计算转换是否准确
外部的模拟量可以用电压表量出来
ADC初始化结构体讲解
1、ADC模式:由ADC控制寄存器1的四个位决定
2、ADC扫描模式
扫描模式如果开启 如果ADC采用了三个通道,则采集完通道1之后采集通道2,在采集通道3,然后在采集通道1,循环采集
3、连续转换模式
如果只有一个通道采集一次之后就停止了,若打开连续采集开关,则会一直采集一直重复,
4、外部触发转换模式
分为规则通道和注入通道两种,左侧的 EXTSEL为选择模式开关
5、数据对齐
ADC精度12位,数据寄存器是16位的,直接放肯定是不行的,由ADC数据寄存器2的ALIGN为设置左右对齐
6、表示要使用通道的个数
以规则通道为例,通过配置寄存器1的L为设置使用的通道个数,注入通道类似
Together_withyou: 九分之一
普通网友: 你好 如何子类在执行PaintEvent时,先调用父类的paintEvent先执行
m0_70485827: 为什么我的timerEvent方法 widget.cpp:26:14: error: out-of-line definition of 'timerEvent' does not match any declaration in 'Widget'
乔治_乌鲁木齐: "1位需要9微妙的时间" 应该写成"1位需要1微妙的时间"吧?
(】: 原视频连接: https://www.bilibili.com/video/BV1St411d7uD?spm_id_from=333.337.search-card.all.click&vd_source=2ef220c812d5e6a739036579eeead6d1