国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32_HAL庫—ADC采集數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了STM32_HAL庫—ADC采集數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、簡介

二、實(shí)例

1. (單通道、阻塞式)配置及實(shí)現(xiàn)方式

2. (單通道、中斷式)配置及實(shí)現(xiàn)方式

3. (多通道、阻塞式)配置及實(shí)現(xiàn)方式

4. (多通道、DMA)配置及實(shí)現(xiàn)方式


一、簡介

???????STM32?的ADC精度為 12 位,且每個(gè) ADC 最多有 16 個(gè)外部通道。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。

????????ADC 的轉(zhuǎn)換時(shí)間跟 ADC 的輸入時(shí)鐘和采樣時(shí)間有關(guān),公式為:

Tconv = ( 采樣時(shí)間 + 12.5 個(gè)周期 ) / 預(yù)分頻

????????一般我們?cè)O(shè)置 PCLK2=72M,經(jīng)過 ADC 預(yù)分頻器能分頻到最大的時(shí)鐘只能是12M,然后設(shè)置 “ 采樣時(shí)間 ” 為 1.5 個(gè)周期。通過公式:(1.5+12.5) / 12M = 1.166...us?,算出最短的轉(zhuǎn)換時(shí)間大約為 1.17us。

? ? ? ? 下面使用的 3 個(gè)例子設(shè)置的 “ 采樣時(shí)間 ” 為 239.5?個(gè)周期,轉(zhuǎn)換時(shí)間則大約為 240.54us。

二、實(shí)例

晶振配置(72M)hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

1. (單通道、阻塞式)配置及實(shí)現(xiàn)方式

(1)配置數(shù)據(jù)

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

(2)代碼實(shí)現(xiàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-694578.html

HAL_ADCEx_Calibration_Start(&hadc1);    //ADC內(nèi)部校準(zhǔn)
HAL_ADC_Start(&hadc1);    //ADC開啟轉(zhuǎn)換



while(1){

    uint16_t ADC_num = HAL_ADC_GetValue(&hadc1);    //獲取ADC端口數(shù)據(jù)

    float ADC_V = 3.3*ADC_num/4096;    //換算后的電壓值(默認(rèn)參考電壓接的3.3V)

    ......
}

2. (單通道、中斷式)配置及實(shí)現(xiàn)方式

?(1)配置數(shù)據(jù)

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

ADC1中斷使能。

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

??(2)代碼實(shí)現(xiàn)。

uint16_t ADC_num;

//主函數(shù)
main(){

    HAL_ADCEx_Calibration_Start(&hadc1);    //ADC內(nèi)部校準(zhǔn)
    HAL_ADC_Start_IT(&hadc1);    //ADC開啟中斷轉(zhuǎn)換


    while(1){

        ......
        float Adc_Value= 3.3*ADC_num/4096;    //換算后的電壓值(默認(rèn)參考電壓接的3.3V)
        ......

    }

}



//ADC中斷回調(diào)函數(shù)
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){
	
    ADC_num=HAL_ADC_GetValue(&hadc1);
   
}

3. (多通道、阻塞式)配置及實(shí)現(xiàn)方式

(1)配置數(shù)據(jù)

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

?(2)代碼實(shí)現(xiàn)

HAL_ADCEx_Calibration_Start(&hadc1);    //ADC內(nèi)部校準(zhǔn)


while(1){

    
    HAL_ADC_Start(&hadc1);    //ADC開啟轉(zhuǎn)換
    while (HAL_ADC_PollForConversion(&hadc1, 100) != HAL_OK);//等待ADC轉(zhuǎn)換完成,或者超過最大等待時(shí)間
    uint16_t ADC_num1 = HAL_ADC_GetValue(&hadc1);    //獲取ADC端口1 數(shù)據(jù)


    HAL_ADC_Start(&hadc1);    //ADC開啟轉(zhuǎn)換
    while (HAL_ADC_PollForConversion(&hadc1, 100) != HAL_OK);//等待ADC轉(zhuǎn)換完成,或者超過最大等待時(shí)間
    uint16_t ADC_num2 = HAL_ADC_GetValue(&hadc1);    //獲取ADC端口2 數(shù)據(jù)


    HAL_ADC_Start(&hadc1);    //ADC開啟轉(zhuǎn)換
    while (HAL_ADC_PollForConversion(&hadc1, 100) != HAL_OK);//等待ADC轉(zhuǎn)換完成,或者超過最大等待時(shí)間
    uint16_t ADC_num3 = HAL_ADC_GetValue(&hadc1);    //獲取ADC端口2 數(shù)據(jù)


    float ADC_V1 = 3.3*ADC_num1/4096;    //換算后的電壓值(默認(rèn)參考電壓接的3.3V)
    float ADC_V2 = 3.3*ADC_num2/4096;    //換算后的電壓值(默認(rèn)參考電壓接的3.3V)
    float ADC_V2 = 3.3*ADC_num2/4096;    //換算后的電壓值(默認(rèn)參考電壓接的3.3V)

    ......
}


4. (多通道、DMA)配置及實(shí)現(xiàn)方式

(1)配置數(shù)據(jù)

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

hal庫adc采集,STM32與GD32,stm32,單片機(jī),嵌入式硬件

(2)代碼實(shí)現(xiàn)



__IO uint16_t ADC_Value[2]={0};    //ADC緩存變量


HAL_ADCEx_Calibration_Start(&hadc1);	//ADC1內(nèi)部校準(zhǔn)
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Value,2); 	//開啟ADC中斷DMA轉(zhuǎn)換


while(1){

    float ADC_1 = (float)3.3*ADC_Value[0]/4096;  //對(duì)ADC_Value[0](通道8)緩存的值換算成電平數(shù)據(jù)
    float ADC_2 = (float)3.3*ADC_Value[1]/4096;  //對(duì)ADC_Value[1](通道9)緩存的值換算成電平數(shù)據(jù)


    .....
}





//ADC1_DMA中斷回調(diào)函數(shù)
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){	
	//HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Value,2); //配置里面打開了“連續(xù)轉(zhuǎn)換模式”,所以這里不用再次開啟ADC中斷DMA轉(zhuǎn)換
}


到了這里,關(guān)于STM32_HAL庫—ADC采集數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32+HAL庫使用ADC輪詢模式采集音頻信號(hào)

    STM32+HAL庫使用ADC輪詢模式采集音頻信號(hào)

    ADC模塊:咪頭聲音采集模塊 缺點(diǎn):占用CPU的使用率 ????????軟件開始ADC轉(zhuǎn)換后,一直等到轉(zhuǎn)換完成后,才向后執(zhí)行,這個(gè)代碼在初始化ADC之后執(zhí)行一次校準(zhǔn)(不執(zhí)行這一步也可以,但精度可能會(huì)低一些);然后就可以使用ADC輪詢轉(zhuǎn)換了,只需要三步: 啟動(dòng)轉(zhuǎn)換 、 等待轉(zhuǎn)

    2024年02月15日
    瀏覽(21)
  • STM32CubeMX配置STM32G031多通道ADC采集(HAL庫開發(fā))

    STM32CubeMX配置STM32G031多通道ADC采集(HAL庫開發(fā))

    時(shí)鐘配置HSI主頻配置64M ?勾選打開8個(gè)通道的ADC ?使能連續(xù)轉(zhuǎn)換模式 ?配置好串口,選擇異步模式 配置好需要的開發(fā)環(huán)境并獲取代碼 ?修改main.c 串口重定向 ?串口重定向一定要勾選Use Micro LIB ?獲取ADC通道值 主函數(shù)? ?串口輸出

    2024年02月15日
    瀏覽(31)
  • STM32HAL ADC+TIM+DMA采集交流信號(hào) 基于cubemx

    STM32HAL ADC+TIM+DMA采集交流信號(hào) 基于cubemx

    本文主要講解定時(shí)器觸發(fā)ADC去采集交流信號(hào),DMA把數(shù)據(jù)搬移到內(nèi)存。 所需工具: 開發(fā)板:STM32F103C8T6 STM32CubeMX IDE: Keil-MDK 相關(guān)文章: STM32HAL ADC+TIM+DMA采集交流信號(hào) 基于cubemx(二) STM32cubemx ADC+TIM+DMA超頻采樣 ADC+TIM+DMA采集交流信號(hào)是電賽中使用范圍最為廣泛的一個(gè)技術(shù)。這個(gè)模

    2024年02月03日
    瀏覽(32)
  • STM32L051使用HAL庫操作實(shí)例(14)- ADC采集電壓

    STM32L051使用HAL庫操作實(shí)例(14)- ADC采集電壓

    目錄 一、前言 二、ADC外設(shè)簡要說明 三、STM32CubeMX配置(本文使用的STM32CubeMX版本為6.1.2) 1.MCU選型 2.時(shí)鐘使能 3.外部時(shí)鐘配置 4.串口配置 5.ADC引腳配置 6.配置STM32CubeMX生成工程文件 7.點(diǎn)擊GENERATE CODE生成工程文件 四、工程源碼 五、運(yùn)行狀態(tài) 一、前言 本文主要介紹通過HAL庫搭建

    2024年01月16日
    瀏覽(28)
  • STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL庫開發(fā))

    STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL庫開發(fā))

    ?時(shí)鐘配置HSI主頻配置64M ?勾選打開8個(gè)通道的ADC ?使能連續(xù)轉(zhuǎn)換模式 ?添加DMA ?DMA模式選擇循環(huán)模式 ?使能DMA連續(xù)請(qǐng)求 采樣時(shí)間配置160.5 轉(zhuǎn)換次數(shù)為8 ?配置好8次轉(zhuǎn)換的順序 ?配置好串口,選擇異步模式 配置好需要的開發(fā)環(huán)境并獲取代碼 ?修改main.c 串口重定向 ?串口重定向

    2024年02月08日
    瀏覽(41)
  • STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)

    STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)

    12位ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達(dá)18個(gè)通道,可測(cè)量16個(gè)外部和2個(gè)內(nèi)部 信號(hào)源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右 對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。 模擬看門狗特性允許應(yīng)用程序檢測(cè)輸入電壓是否超出用戶定

    2024年02月06日
    瀏覽(37)
  • 【STM32+HAL+Proteus】系列學(xué)習(xí)教程---ADC(查詢、中斷、DMA模式下的電壓采集)

    【STM32+HAL+Proteus】系列學(xué)習(xí)教程---ADC(查詢、中斷、DMA模式下的電壓采集)

    1、學(xué)會(huì)STM32CubeMX軟件關(guān)于ADC的配置 2、掌握ADC三種模式(查詢、中斷、DMA)編程 3、具體目標(biāo):1、將開發(fā)板單片機(jī)采集到的電壓值上傳至上位機(jī)串口調(diào)試助手顯示。 ADC(Analog to Digital Converter)即模數(shù)轉(zhuǎn)換器,用來將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。 A/D轉(zhuǎn)換過程 分辨率:? A/D轉(zhuǎn)換器對(duì)

    2024年04月26日
    瀏覽(29)
  • STM32(HAL庫)通過ADC讀取MQ2數(shù)據(jù)

    STM32(HAL庫)通過ADC讀取MQ2數(shù)據(jù)

    目錄 1、簡介 2、CubeMX初始化配置 2.1 基礎(chǔ)配置 2.1.1 SYS配置 ?2.1.2 RCC配置 2.2 ADC外設(shè)配置 2.3?串口外設(shè)配置 ?2.4 項(xiàng)目生成 ?3、KEIL端程序整合 3.1 串口重映射 3.2 ADC數(shù)據(jù)采集 3.3 主函數(shù)代 3.4 效果展示 本文通過STM32F103C8T6單片機(jī)通過HAL庫方式對(duì)MQ2煙霧傳感器進(jìn)行數(shù)據(jù)的讀取,并通過

    2024年02月16日
    瀏覽(22)
  • [HAL庫]STM32 ADC功能和DMA讀數(shù)據(jù)的方法

    [HAL庫]STM32 ADC功能和DMA讀數(shù)據(jù)的方法

    這篇博客記錄下 STM32F103R8T6 是怎么開ADC、用DMA搬數(shù)據(jù)的方法。方便日后使用的時(shí)候查資料。 DMA其實(shí)就是個(gè)搬運(yùn)工,專門負(fù)責(zé)搬數(shù)據(jù),沒有DMA之前,搬數(shù)據(jù)是由MCU核心來負(fù)責(zé),雖說都能完成搬數(shù)據(jù)的動(dòng)作,但是MCU干這件事浪費(fèi)資源且效率低,所以有DMA的場(chǎng)合盡量使用DMA來負(fù)責(zé)搬

    2024年02月14日
    瀏覽(15)
  • STM32 HAL庫 STM32CubeMX -- ADC

    STM32 HAL庫 STM32CubeMX -- ADC

    ADC(Analog-to-Digital Converter)指模/數(shù)轉(zhuǎn)換器或者模擬/數(shù)字轉(zhuǎn)換器。 是指將連續(xù)變量的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的器件。 也就是將 模擬信號(hào) 轉(zhuǎn)化為 數(shù)字信號(hào) 。 STM32f103 系列有3 個(gè)ADC,精度為12 位,每個(gè)ADC 最多有16 個(gè)外部通道和2個(gè)內(nèi)部信號(hào)源。其中ADC1 和ADC2 都有16 個(gè)外部

    2024年02月15日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包