STM32的ADC程式設計方法

2022-06-24 13:54:12 字數 1312 閱讀 1653

記錄一下stm32的adc程式設計方法!

前面已經學習了dma,知道如何使用dma去減小cpu的負擔,這裡的adc轉換也來使用dma---這個也是stm32的adc轉換最常見的方式。

---第一步是---了解stm32的adc對應的gpio口----如下圖---不用記住,可以查詢,我是將它剪下來貼上到書本的相應章節----!

---第二步是---配置相應adc轉換的gpio口----這裡使用pc0--pc1

static void adc1_gpio_config(void)

---第三步是---配置adc的dma----配置adc通道等---

#define adc1_dr_address    ((u32)0x40012400+0x4c)  //外設位址

__io uint16_t adc_convertedvalue[2];  //記憶體陣列

static void adc1_mode_config(void)

---第四部分是---在硬體上使用了乙個通道切換晶元----cd4052----由pc2---pc3控制通道的選擇cd4052切換控制gpio配置----

void gpio_config(void)

---第五部分是---主函式-----

extern __io uint16_t adc_convertedvalue[2];  //宣告外部變數

uint16_t my_adc[2];  //求平均值

int main(void)

my_adc[0]=my_adc[0]/10;   //採集10次求平均值

my_adc[1]=my_adc[1]/10;

adc_convertedvaluelocal =(float) my_adc[0]/4096*3.3;   //轉換為電壓值

printf("\r\n the current ad---0 value = 0x%04x \n", my_adc[0]); 

printf("the current ad---0 value = %f v \n",adc_convertedvaluelocal); 

adc_convertedvaluelocal =(float) my_adc[1]/4096*3.3; 

printf("the current ad---1 value = 0x%04x \n", my_adc[1]); 

printf("the current ad---1 value = %f v \n",adc_convertedvaluelocal);  }}

STM32的ADC轉換模式

stm32的adc轉換模式 stm32的adc總共有兩種轉換模式 單次轉換和連續轉換 前幾天看了st官方的中文手冊,在adc模組的介紹中,同時出現了單次轉換模式 連續轉換模式和掃瞄模式,看完整個模組的文件後,對adc的轉換模式還是不理解,通過學習其他文件和程式設計測試,整理了 單次轉換 連續轉換和掃...

STM32韌體概述之ADC

table 3.函式描述格式 函式名外設函式的名稱 函式原形 原形宣告 功能描述 簡要解釋函式是如何執行的 輸入引數 輸入引數描述 輸出引數 輸出引數描述 返回值函式的返回值 先決條件 呼叫函式前應滿足的要求 被呼叫函式 其他被該函式呼叫的庫函式 4.模擬 數字轉換器 模擬 數字轉換器 adc 是一...

STM32之ADC 模數轉換

1 adc簡介 stm32f103系列有3個adc,精度為12位,adc是乙個逐次逼近型模擬數字轉換器,且每個adc有18個通道,可以測量16個外部和2個內部訊號源,每個通道的a d轉換可以進行單次 連續 掃瞄或間斷模式執行,adc的結果可以左對齊或右對齊方式儲存在16位資料暫存器中,adc的輸入時...