前言
關于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基本延時配置詳細過程”修改而來,以上實例總結僅供參考,若有不對之處,敬請諒解。
-
adc
+關注
關注
98文章
6396瀏覽量
543800 -
采集電源
+關注
關注
0文章
4瀏覽量
6811 -
STM32F0
+關注
關注
0文章
61瀏覽量
17078
發(fā)布評論請先 登錄
相關推薦
評論