0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32F0xx_ ADC采集電壓配置詳細過程

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-04-08 09:01 ? 次閱讀

前言

關于ADC這一塊的功能基本上也算是CortexM芯片的標配了。ST的每一塊芯片都有這個功能,只是說因型號不同,通道數、位數等有所不同。STM8的芯片大多數都是10的,也就是說分辨率可達到:參考電壓*(1/1024);STM32大多數都是12位的,也有少部分是16位的(F373)。平常采集一般的電壓值,10位數都夠我們使用了,除非使用在非常精密,或者說要求比較高的場合。

F0系列的芯片和F1系列的芯片差不多相似,但是F0沒有ADC2、ADC3這么一說,只有ADC1,這里在編程的時候(特別是想把代碼從F1移植到F0上的人要注意)。

下載

ST標準外設庫和參考手冊、數據手冊等都可以在ST官網下載,你也可以到我的360云盤下載。關于F0系列芯片的參考手冊有多個版本(針對F0不同芯片),但有一個通用版本,就是“STM32F0x128參考手冊V8(英文)2015-07”建議參考該手冊,以后如果你換用一種型號芯片也方便了解。

今天的軟件工程下載地址(360云盤):

https://yunpan.cn/cSULmkr3vBQUj訪問密碼14c7

STM32F0xx的資料可以在我360云盤下載:

https://yunpan.cn/cS2PVuHn6X2Bj訪問密碼8c37

準備工作

今天總結的軟件工程是基于“TIM基本延時配置詳細過程”修改而來,因此需要將該軟件工程下載準備好。打開軟件工程,新建源程序文件(adc.c和adc.h),在工程中添加新建的源程序文件adc.c和使用到標準外設庫stm32f0xx_adc.c。添加的源代碼響應的源文件代碼就OK了。

數據傳輸原理

ADC模塊是一種12位的逐次逼近型模擬數字轉換器。它有多達19個通道,可測量16個外部和3個內部信號源。各通道的A/D轉換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結果可以左對齊或右對齊方式存儲在16位數據寄存器中。


配置過程詳情

①RCC時鐘


該函數位于bsp.c文件下面;

我個人習慣第一步配置時鐘,ST官方提供的例程也是把配置時鐘放在前面。關于RCC時鐘的配置比較重要,有好幾次我就是由于忘記配置相應RCC時鐘,讓我找了很久的問題,最后才發(fā)現是RCC時鐘沒有配置。

注意:

外設時鐘不要隨便添加,比如:RCC_APB1外設不要配置在RCC_APB2時鐘里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);這樣能編譯過,但是錯誤的】

我每次都提醒RCC時鐘,是因為很多人就是因為時鐘而導致軟件運行有問題,所以,提醒更多人要注意配置RCC.

②ADC引腳配置


該函數位于adc.c文件下面;

重點注意:

引腳配置要和AD通道對應才行(請看數據手冊中的引腳說明)。

③ADC配置


該函數位于adc.c文件下面;

分辨率和對齊方式決定你的計算方式、通道與上面的引腳配置需對應。

④ADC采集電壓值


該函數位于adc.c文件下面;

調用這個接口就可以采集電壓值。這里采樣8次(根據自己情況可以選擇平均多次),算平均,最后得出電壓值(1000倍值)。1000倍數值是不想有小數點,方便打印輸出。

說明

STM32F0的芯片軟件兼容性很好,可以適用于F0其他很多型號的芯片(具體請看手冊、或者親自測試)。

今天的工程是基于工程“STM32F0xx_TIM基本延時配置詳細過程”修改而來,以上實例總結僅供參考,若有不對之處,敬請諒解。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • adc
    adc
    +關注

    關注

    98

    文章

    6396

    瀏覽量

    543800
  • 采集電源
    +關注

    關注

    0

    文章

    4

    瀏覽量

    6811
  • STM32F0
    +關注

    關注

    0

    文章

    61

    瀏覽量

    17078
收藏 人收藏

    評論

    相關推薦

    【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx

    GD32F4xx 系列 MCU 是基于 Arm? Cortex?-M4 處理器的 32 位通用微控制器,與 STM32F4xx系列 MCU 保持高度兼容。本文主要從以下三個方面進行介紹:硬件資源對比
    的頭像 發(fā)表于 09-06 09:40 ?891次閱讀
    【GD32 MCU 移植教程】8、從 <b class='flag-5'>STM32F4xx</b> 系列移植到 GD32<b class='flag-5'>F4xx</b> 系

    第12章-ADC采集電壓和顯示 基于STM32ADC電壓采集詳細講解+HAL庫)

    第12章-ADC采集電壓和顯示 基于STM32ADC電壓
    的頭像 發(fā)表于 08-21 16:31 ?1940次閱讀
    第12章-<b class='flag-5'>ADC</b><b class='flag-5'>采集</b><b class='flag-5'>電壓</b>和顯示 基于<b class='flag-5'>STM32</b>的<b class='flag-5'>ADC</b>—<b class='flag-5'>電壓</b><b class='flag-5'>采集</b>(<b class='flag-5'>詳細</b>講解+HAL庫)

    STM32F10xx芯片資料

    電子發(fā)燒友網站提供《STM32F10xx芯片資料.pdf》資料免費下載
    發(fā)表于 07-08 14:56 ?1次下載

    芯海應用筆記:CS32F0XX ADC外設模塊指導

    本應用筆記旨在展示使用 CS32F0xx 微控器,提高 A/D 轉化精度的應用。幫助 ADC 模塊用戶了解CS32 微控器提供的一些高級應用并加快開發(fā)周期。所介紹的每種模式都提供一個應用示例,以方
    發(fā)表于 05-16 10:49

    stm32f0xx_stdperiph_lib_um.chm怎么用?

    最近用STM32F0,沒有中文文檔找到庫里面有個stm32f0xx_stdperiph_lib_um.chm 這個怎么用?搗鼓了一會沒整明白比如 我想知道所有RCC的庫函數, 怎么看?
    發(fā)表于 04-24 07:19

    STM32F030F4上使用CubeMX配置ADC+DMA循環(huán)采集無法提取數據的原因?

    如題,使用STM32CubeMX配置F030的ADC+DMA循環(huán)采集ADC啟動后OVR一直處
    發(fā)表于 04-16 08:20

    STM32F40使用三重ADC采集6通道數據,占用CPU時間很長導致采集的數據很小怎么解決?

    請教各位大佬,我使用STM32F405配置了三重ADC模式采集6個通道的電壓值,在需要開啟轉換的時候使用
    發(fā)表于 04-11 08:08

    STM32F103采集模擬量只要低于3.3V,采集的值就是0怎么解決?

    利用STM32F103 ADC直接采集模擬量,現場返修板出現的問題。 采集電壓引腳不論是多少,只要低于3.3V,通過keil仿真直接觀察
    發(fā)表于 04-08 07:24

    STM32F4 ADC采集數據不匹配是什么原因造成的?如何解決?

    通過STM32F4 進行雙同步規(guī)則AD采集,設置ADC1,ADC2各2路通道,一共4路通道進行AD采集。 按照我的理解是
    發(fā)表于 04-02 08:21

    想用STM32F373的三個SDADC同步采集電壓信號,DMA是工作在什么模式?怎么配置

    我想用STM32F373的三個SDADC同步采集電壓信號,請問如果要搭配DMA工作,DMA是工作在什么模式?怎么配置?(沒有看到像F4系列的
    發(fā)表于 03-28 06:49

    采用STM32F334的ADC0ADC1做ADCADC輸入時為什么會產生一個脈沖臺階?

    采用STM32F334的ADC0ADC1做ADC,配置是完全用ADC CubeMx
    發(fā)表于 03-18 06:37

    使用STM32L031F6在hal庫下進行ADC+DMA多通道采集采集電壓值始終為0的原因?

    使用STM32L031F6芯片 在hal庫下進行ADC+DMA多通道采集時候,采集電壓值始終為0
    發(fā)表于 03-14 07:06

    stm32F407 ADC+DMA 10路采集,2路數據異常怎么排查?

    stm32F407ADC+DMA 10路采集2路數據異常(通道9/10)使用的是0/1/2/38/9/10/11/12/13 通道9與通道10 雖然有數據但不變化好像與外邊是斷開的配置
    發(fā)表于 03-13 07:38

    STM32F101xxSTM32F103xx ARM 內核32位高性能微控制器參考手冊

    電子發(fā)燒友網站提供《STM32F101xxSTM32F103xx ARM 內核32位高性能微控制器參考手冊.pdf》資料免費下載
    發(fā)表于 01-29 09:25 ?7次下載

    用ADUCM361采集模擬電壓,用的過程中經常出現ADC采集錯誤的原因?

    您好,我用ADUCM361 采集模擬電壓(4~28mV),用的過程中經常出現ADC采集錯誤,不知為啥呀?出錯了 后頭就一直出錯。。。有時候改
    發(fā)表于 01-12 08:07