11、STM32的ADC的原理與使用(內附代碼)

一、ADC的原理及定義

Analog-to-Digital Converter的縮寫。中文譯名:模/數轉換器或者模擬/數字轉換器。是指將連續變量的模擬信號轉換爲離散的數字信號的器件。其實就是一個取樣、量化、編碼的一個過程。

典型的模擬數字轉換器將模擬信號轉換爲表示一定比例電壓值的數字信號。比如電量、光照傳感器等常用。


二、模擬信號

模擬信號是指用連續變化的物理量表示的信息,其信號的幅度,或頻率,或相位隨時間作連續變化,如目前廣播的聲音信號,或圖像信號等。


三、數字信號

數字信號指幅度的取值是離散的,幅值表示被限制在有限個數值之內。 二進制碼就是一種數字信號。二進制碼受噪聲的影響小,易於有數字電路進行處理,所以得到了廣泛的應用。


四、單次轉化與連續轉換對比

 


五、掃描模式

其他請參考其中文參考手冊


六、ADC精度

精度是衡量ADC轉換準確性的一個標準,精度常有8bit 10bit 12bit 16bit四種,如下表所示:

也就是把3.3V的電壓分成256,1024,4096,65535份,每一份電壓是固定的,顯而易見就是分的份數越多,精度就度越高了,也就是精度越小,ADC精度就越高

ADC的轉換公式如下:


七、STM32F40x系列ADC外部通道和引腳對應關係 

通道號

ADC1

ADC2

ADC3

通道0

PA0

PA0

PA0

通道1

PA1

PA1

PA1

通道2

PA2

PA2

PA2

通道3

PA3

PA3

PA3

通道4

PA4

PA4

PF6

通道5

PA5

PA5

PF7

通道6

PA6

PA6

PF8

通道7

PA7

PA7

PF9

通道8

PB0

PB0

PF10

通道9

PB1

PB1

PF3

通道10

PC0

PC0

PC0

通道11

PC1

PC1

PC1

通道12

PC2

PC2

PC2

通道13

PC13

PC13

PC13

通道14

PC4

PC4

PF4

通道15

PC5

PC5

PF5


八、實現過程

//1、開啓PA口時鐘和ADC1時鐘,設置PA1爲模擬輸入。

  RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

  對應的GPIO初始化  

  GPIO_Init();      

//2、復位ADC1,同時設置ADC1分頻因子。

 ADC_DeInit(ADC1);
//3、初始化ADC_CCR寄存器。

  ADC_CommonInit();

//4、初始化ADC1參數,設置ADC1的工作模式以及規則序列的相關信息。

  void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);

//5、使能ADC。

 ADC_Cmd(ADC1, ENABLE);
//6、配置規則通道參數:

  ADC_RegularChannelConfig();
//7、開啓軟件轉換:

  ADC_SoftwareStartConvCmd(ADC1);

//8、等待轉換完成,讀取ADC值。

 ADC_GetConversionValue(ADC1);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章