stm32 adc多通道轉換
描述:用adc連續採集11路模擬訊號,並由dma傳輸到記憶體。adc配置為掃瞄並且連續轉換模式,adc的時鐘配置為12mhz。在每次轉換結束後,由dma迴圈將轉換的資料傳輸到記憶體中。adc可以連續採集n次求平均值。最後通過串列埠傳輸出最後轉換的結果。
程式如下:
#i nclude "stm32f10x.h" //這個標頭檔案包括stm32f10x所有外圍暫存器、位、記憶體對映的定義
#i nclude "eval.h" //標頭檔案(包括串列埠、按鍵、led的函式宣告)
#i nclude "systickdelay.h"
#i nclude "uart_inte***ce.h"
#i nclude
#define n 50 //每通道採50次
#define m 12 //為12個通道
vu16 ad_value[n][m]; //用來存放adc轉換結果,也是dma的目標位址
vu16 after_filter[m]; //用來存放求平均值之後的結果
int i;
void gpio_configuration(void)
}void rcc_configuration(void)
}void adc1_configuration(void)
void dma_configuration(void)
//配置所有外設
void init_all_periph(void)
u16 getvolt(u16 advalue)
void filter(void)
after_filter[i]=sum/n;
sum=0;}}
int main(void)}}
總結該程式中的兩個巨集定義,m和n,分別代表有多少個通道,每個通道轉換多少次,可以修改其值。
曾出現的問題:配置時鐘時要知道外部晶振是多少,以便準確配置時鐘。將轉換值由二進位制轉換為十進位制時,要先擴大100倍,方便顯示小數。最後串列埠輸出時在 printf語句之前加這句**,防止輸出的第一位資料丟失:while(usart_getflagstatus(usart1,usart_flag_txe)==reset);
stm32adc多通道資料採集
工程連線 date 2013 8 28 author mei jilin brief adc1的配置完成3通道的資料採集 attention 1 adc config 配置adc 2 adc start 啟動adc,開始轉換 3 get channelvalue adc channel x 讀取相應...
STM32 ADC多通道採集電壓
前面的部落格中詳細介紹了stm32中adc的相關資訊,這篇部落格是對adc內容的乙個總結提公升,adc的詳細介紹 adc詳解 為了使這次 閱讀方便,博主沒有在標頭檔案中巨集定義變數,都是直接取樣庫函式中的規定形參。此次採用多通道採集電壓,使用adc1的通道10 11 12 13 14 15一共六個通...
STM32的ADC取樣與多通道ADC取樣
stm32庫開發實戰指南 劉火良,楊森著 原理性質的東西還是少講,因為上面那本書裡面講解的很詳細了,直接來看硬體電路圖 這裡使用的是3362電位器 10k 即用stm32來測量pb0和gnd兩端的電壓,這樣的電路設計比較簡單也容易理解,但是存在一定的弊端,下面給出 stm32庫開發實戰指南 上面配套...