前言
關(guān)于ADC這一塊的功能基本上也算是CortexM芯片的標(biāo)配了。ST的每一塊芯片都有這個(gè)功能,只是說(shuō)因型號(hào)不同,通道數(shù)、位數(shù)等有所不同。STM8的芯片大多數(shù)都是10的,也就是說(shuō)分辨率可達(dá)到:參考電壓*(1/1024);STM32大多數(shù)都是12位的,也有少部分是16位的(F373)。平常采集一般的電壓值,10位數(shù)都?jí)蛭覀兪褂昧耍鞘褂迷诜浅>埽蛘哒f(shuō)要求比較高的場(chǎng)合。
F0系列的芯片和F1系列的芯片差不多相似,但是F0沒(méi)有ADC2、ADC3這么一說(shuō),只有ADC1,這里在編程的時(shí)候(特別是想把代碼從F1移植到F0上的人要注意)。
下載
ST標(biāo)準(zhǔn)外設(shè)庫(kù)和參考手冊(cè)、數(shù)據(jù)手冊(cè)等都可以在ST官網(wǎng)下載,你也可以到我的360云盤下載。關(guān)于F0系列芯片的參考手冊(cè)有多個(gè)版本(針對(duì)F0不同芯片),但有一個(gè)通用版本,就是“STM32F0x128參考手冊(cè)V8(英文)2015-07”建議參考該手冊(cè),以后如果你換用一種型號(hào)芯片也方便了解。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cSULmkr3vBQUj訪問(wèn)密碼14c7
STM32F0xx的資料可以在我360云盤下載:
https://yunpan.cn/cS2PVuHn6X2Bj訪問(wèn)密碼8c37
準(zhǔn)備工作
今天總結(jié)的軟件工程是基于“TIM基本延時(shí)配置詳細(xì)過(guò)程”修改而來(lái),因此需要將該軟件工程下載準(zhǔn)備好。打開(kāi)軟件工程,新建源程序文件(adc.c和adc.h),在工程中添加新建的源程序文件adc.c和使用到標(biāo)準(zhǔn)外設(shè)庫(kù)stm32f0xx_adc.c。添加的源代碼響應(yīng)的源文件代碼就OK了。
數(shù)據(jù)傳輸原理
ADC模塊是一種12位的逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達(dá)19個(gè)通道,可測(cè)量16個(gè)外部和3個(gè)內(nèi)部信號(hào)源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。
配置過(guò)程詳情
①RCC時(shí)鐘
該函數(shù)位于bsp.c文件下面;
我個(gè)人習(xí)慣第一步配置時(shí)鐘,ST官方提供的例程也是把配置時(shí)鐘放在前面。關(guān)于RCC時(shí)鐘的配置比較重要,有好幾次我就是由于忘記配置相應(yīng)RCC時(shí)鐘,讓我找了很久的問(wèn)題,最后才發(fā)現(xiàn)是RCC時(shí)鐘沒(méi)有配置。
注意:
外設(shè)時(shí)鐘不要隨便添加,比如:RCC_APB1外設(shè)不要配置在RCC_APB2時(shí)鐘里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);這樣能編譯過(guò),但是錯(cuò)誤的】
我每次都提醒RCC時(shí)鐘,是因?yàn)楹芏嗳司褪且驗(yàn)闀r(shí)鐘而導(dǎo)致軟件運(yùn)行有問(wèn)題,所以,提醒更多人要注意配置RCC.
②ADC引腳配置
該函數(shù)位于adc.c文件下面;
重點(diǎn)注意:
引腳配置要和AD通道對(duì)應(yīng)才行(請(qǐng)看數(shù)據(jù)手冊(cè)中的引腳說(shuō)明)。
③ADC配置
該函數(shù)位于adc.c文件下面;
分辨率和對(duì)齊方式?jīng)Q定你的計(jì)算方式、通道與上面的引腳配置需對(duì)應(yīng)。
④ADC采集電壓值
該函數(shù)位于adc.c文件下面;
調(diào)用這個(gè)接口就可以采集電壓值。這里采樣8次(根據(jù)自己情況可以選擇平均多次),算平均,最后得出電壓值(1000倍值)。1000倍數(shù)值是不想有小數(shù)點(diǎn),方便打印輸出。
說(shuō)明
STM32F0的芯片軟件兼容性很好,可以適用于F0其他很多型號(hào)的芯片(具體請(qǐng)看手冊(cè)、或者親自測(cè)試)。
今天的工程是基于工程“STM32F0xx_TIM基本延時(shí)配置詳細(xì)過(guò)程”修改而來(lái),以上實(shí)例總結(jié)僅供參考,若有不對(duì)之處,敬請(qǐng)諒解。
-
adc
+關(guān)注
關(guān)注
99文章
6636瀏覽量
548238 -
采集電源
+關(guān)注
關(guān)注
0文章
4瀏覽量
6866 -
STM32F0
+關(guān)注
關(guān)注
0文章
61瀏覽量
17381
發(fā)布評(píng)論請(qǐng)先 登錄
STM32F103×8/STM32F103×B MCU手冊(cè)
運(yùn)放電路采集電流0~1A、電壓0~15V

STM32F4xx中文參考手冊(cè)--ST意法半導(dǎo)體
STM32采集ADC128S022選擇4路通道電壓值就不對(duì)了,采集一路0通道是對(duì)的,精度0.0幾個(gè)毫伏,為什么?
STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè)
請(qǐng)問(wèn)ADC32XX CLKP,CLKM;SYSREFP,SYSREFM該如何配置?
adc0809輸入電壓范圍 adc0809和adc0808區(qū)別
【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系

STM32CUBEMX(3)--ADC通過(guò)DMA方式采樣,USART打印
第六章-V1.5 STM32 ADC讀取電壓 ADC采樣電壓 STM32f103c8t6adc采集電壓

評(píng)論