ADC introduction

前言

ADC簡單說就是類比訊號轉出城數位訊號,下面有幾個基本名詞介紹

  1. 解析度:讀出的資料的長度,如8位就是最大值為255的意思,即範圍[0,255],12位就是最大值為4096,即範圍[0,4096]
  2. 通道:ADC輸入引腳,通常一個ADC控制器控制多個通道,如果需要多通道的話,就得進行每個通道掃描了

ADC的轉換方式

  • 單次轉換,一次只轉換一個通道
  • 連續轉換,轉換完成一個通道後立即自動執行下一個通道的轉換
  • 掃描模式,開啟一次後,自動的連續讀取多個通道

ADC的三種工作方式

  • 阻塞模式(查詢模式)
  • 中斷模式
  • DMA模式

PS:這邊有幾點要注意ADC晶片通常有正參考電壓和負參考電壓,通常正參考電壓連線到VCC,負參考電壓連線到GND

cubemx基礎配置

PS:Single-ended和Differentialt差異在於比較准位的不同

範例程式

uint16_t dong_get_adc(){
    //開啟ADC1
  HAL_ADC_Start(&hadc3);
    //等待ADC轉換完成,超時為100ms
    HAL_ADC_PollForConversion(&hadc3,100);
    //判斷ADC是否轉換成功
    if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc3),HAL_ADC_STATE_REG_EOC)){
         //讀取值
       return HAL_ADC_GetValue(&hadc3);
    }
    return 0;
}

基本上ADC的使用並不困難比照範例即可實現參考詳細篇友介紹其他高階用法,歡迎參考。一般類比的產品在控制上已經比較少見,主要在LED上可能比較常使用

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart