有谁懂stm32单片机采集16路电压

2025-04-11 00:21:06
推荐回答(1个)
回答1:

看教程呀,先整单通道的。单通道的还是挺简单的。
stm32单片机的 ADC比较复杂,就 在于它有三个ADC,各个ADC之间可相互独立,又可联合工作
加上触发方式 触发顺序多样,还弄出个注入通道 规则通道,因此让人看了头晕。我整理的一些东西可供参考。
ADC笔记
大容量STM 32有3个ADC模块 ADC1和ADC2 ADC3
每个模块可采集22个通道,其中分为规则组和注入组
规则组有18个通道,其中外部16个
注入组有4个通道
规则组所有通道共用一个寄存器来保存转换结果,而注入组刚好有4个转换结果寄存器与其对应
规则组有个寄存器可设置要转换的通道数量,并有相应的寄存器来配置采集通道顺序
如第一次采集的通道号是多少 0-15
如第二次采集的通道号是多少 0-15

如第16次采集的通道号是多少 0-15
注入组也有同样的配置寄存器,只不过数量少了几个
对于每个ADC工作模式有如下几种:
单次转换模式,启动一次只转换一个通道,可以是规则通道也可是注入通道
连续转换模式,当前转换结束,马上启动第二次转换可以是规则通道也可是注入通道
扫描模式 一次触发转换多个通道,对于规则组,一般要设置DMA模式以便每个通道转换结束,及时将转换结果转移到内存中去
对于注入组由于只有4个通道并且有4个存储转换结果的寄存器,因此无需配置DMA,可以等全部通道转换完成后发生中断时,来读取结果
注入组可以单独触发,也可以跟随规则组自动触发,这样一次触发即可连续采集20个通道
间断模式 规则组一次触发采集不大于8个通道,例如规则组有12个通道要转换,每次触发采集3个通道,4次触发采集完毕
对于注入组每次触发采集一个通道,例如要采集通道0,2,3
第一次触发采集0通道,第二次触发采集2通道
第三次触发采集3通道,第四次触发又采集0通道

触发 每个ADC模块均可有多种触发信号源,有来自定时器的和外部的,也可软件触发

对于有两个ADC模块的芯片ADC1为主模块,ADC2为从模块
它们之间可以独立工作,也可相互配合工作
相互工作方式有:
同步注入模式 即触发ADC1时,ADC2也被同时触发
触发间隔要保证较长序列模块能够完成转换
同步规则模式 对于规则组即触发ADC1时,ADC2也被同时触发,每次(每个或每2个通道)转换结束,产生DMA请求,但传输结果是32位的
快速交替模式 对于规则组 一般只用于一个通道
触发ADC1后,延时7个周期后ADC2触发 
如: ADC1-0 ADC2-0 ADC1-0 ADC2-0
ADC1-0 ADC2-0都转换完成产生中断和32位DMA请求
慢速交替模式 对于规则组 一般只用于一个通道
触发ADC1后,延时14个周期后ADC2触发 
交替触发模式 对于注入组
第一次触发  ADC1注入组所有通道被转换
第二次触发  ADC2注入组所有通道被转换
第三次触发  ADC1注入组所有通道再次被转换

模拟看门狗
当ADC转换结果高于或低于设定的阀值,会产生中断
模拟看门狗警戒的通道可设置为:
所有注入通道
所有规则通道
所有注入通道和规则通道
单一的注入通道
单一的规则通道
单一的规则或注入通道
对齐方式:ADC的注入和规则通道转换结果寄存器均是低16位有效,但转换结果均为12 位,因此可设置为左对齐和右对齐 为0是右对齐