天天看點

基于STM32Cube程式設計的4個AD通道采集程式基本介紹STM32Cube設定注意事項主要代碼下載下傳驗證

基于STM32Cube程式設計的4個AD通道采集程式

  • 基本介紹
  • STM32Cube設定
  • 注意事項
  • 主要代碼
  • 下載下傳驗證

基本介紹

程式基于STM32F103C8T6,采用ADC1的IN0~IN3四個通道采集資料。

AD時鐘來源于PCLK經過ADC預分頻得到,F1最高14M,一般設定12M。

基于STM32Cube程式設計的4個AD通道采集程式基本介紹STM32Cube設定注意事項主要代碼下載下傳驗證

ADC采樣時間:T=12.5+采樣時間。其中12.5個周期是固定的,采樣時間可設定,這裡設定成239.5,時間越長,采樣越準确。是以完成一次采樣時間T=(12.5+239.5)/12M=21us

STM32Cube設定

ADC1的四個采樣通道初始化設定

基于STM32Cube程式設計的4個AD通道采集程式基本介紹STM32Cube設定注意事項主要代碼下載下傳驗證

DMA設定:循環轉換Circular,位址遞增,資料長度選擇字Word。

基于STM32Cube程式設計的4個AD通道采集程式基本介紹STM32Cube設定注意事項主要代碼下載下傳驗證

開啟DMA中斷

基于STM32Cube程式設計的4個AD通道采集程式基本介紹STM32Cube設定注意事項主要代碼下載下傳驗證
基于STM32Cube程式設計的4個AD通道采集程式基本介紹STM32Cube設定注意事項主要代碼下載下傳驗證

注意事項

待更新

主要代碼

下載下傳初始化後面的兩個函數,第一行用于校正,第二行用于開啟ADC的DMA中斷。

HAL_ADCEx_Calibration_Start(&hadc1);
	HAL_ADC_Start_DMA(&hadc1,ADCConver,4);
           

以下是DMA中斷回調函數,每次轉換完成都會進這個中斷回調函數,這裡統計進入中斷次數。

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
	if(hadc->Instance==ADC1)
	{
		count++;
	}
}
           

下載下傳驗證

線剛拔,待更新

繼續閱讀