您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。18个通道,其中2个用于测量内部信号,16个可以测量外部信号,是12位的。
在stm32中adc有些通道是重合的,也就是说adc1和adc2的某些通道是重合的,应用时要注意。
pb1含义就是adc1和adc2的通道9。又比如pa0分别为adc1、adc2和adc3的通道0。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
3个。
分别是ADC1、ADC2、ADC3,每个ADC控制器有16个通道,另外还有两个内部通道,一个测量内部温度,一个测量参考电压。一个ADC控制器每个时刻只能测一个通道,测完可以切换到另一个通道。
STM32F系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体公司出品,其内核是Cortex-M3。该系列芯片按片内Flash的大小可分为三大类:小容量、中容量、大容量。
stm32的ADC1和ADC2使用的引脚是相同的,所以最多只能接16路模拟输入量,想检测更多可以使用74hc4050、4051、4052、4053等多输入模拟开关
可以检测16处电压。。但是。。但是……不能同时检测。。。
比如如果只是采用adc1的话,要一个一个按顺序来,用库写程序的话有一句
ADC_RegularChannelConfig(ADC1,ADC_Channel_2, 1,ADC_SampleTime_1Cycles5);
里面那个1表示在这一次周期的采样顺序,采样3个点就是
ADC_RegularChannelConfig(ADC1,ADC_Channel_3, 1,ADC_SampleTime_1Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_2, 2,ADC_SampleTime_1Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_5, 3,ADC_SampleTime_1Cycles5);
其中的那个1,2,3就是顺序
如果用adc1和adc2的话是可以同时采样的……
但是只用1个adc的话16处采样的返回值只写在对应的ADC_DR里面,需要分时读取;
同样,adc1和adc2是有各自不同的adc_dr;
读取,可以通过dma传出来读取。在dma的设置里有关于adc的……
或者在库函数里也有直接读取的。。
或者。。直接去读寄存器也可以……
stm32内部ADC通道没有24位的,最大只有12位的。如果能接受8051内核单片机,倒是有24位ADC的,C8051F350就是,也是很强悍的单片机。
本文标签:stm32f2adc1adc3