ADC introduction
前言
ADC簡單說就是類比訊號轉出城數位訊號,下面有幾個基本名詞介紹
- 解析度:讀出的資料的長度,如8位就是最大值為255的意思,即範圍[0,255],12位就是最大值為4096,即範圍[0,4096]
- 通道: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上可能比較常使用