新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于STM32的ADC的掃描模式

關(guān)于STM32的ADC的掃描模式

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
下面這張截圖是 我看的 STM32參考手冊(cè)的關(guān)于ADC狀態(tài)寄存器ADC1_SR的資料


我經(jīng)過(guò)參考網(wǎng)上的資料 感覺(jué)EOC位好像是每個(gè)通道轉(zhuǎn)換結(jié)束 置位。而不是像書(shū)上這樣說(shuō)的 通道組轉(zhuǎn)換結(jié)束時(shí)置位。
就像掃描模式,應(yīng)該是每一個(gè)通道轉(zhuǎn)換完就置一次,而不是等所有的通道都結(jié)束了才置位的。
不知道我理解的對(duì)不對(duì)?
書(shū)上寫(xiě)錯(cuò)了的?
1L:
額!這個(gè)還真不知道
2L(版主):
回復(fù)【樓主位】utopia779:
---------------------------------
這個(gè)要實(shí)驗(yàn)一下了.以實(shí)際實(shí)驗(yàn)結(jié)果為準(zhǔn).
3L:
應(yīng)該是每一個(gè)通道轉(zhuǎn)換完就置一次
這樣的話(huà)DMA才能在每個(gè)通道轉(zhuǎn)換完立即取出數(shù)據(jù)

我是這樣理解的
4L(我自己):
這個(gè)問(wèn)題 現(xiàn)在我的理解是這樣的

這個(gè)采樣結(jié)束標(biāo)記位 是完成所有的通道才置位的

所以,我們無(wú)法讀取每個(gè)通道的采樣數(shù)據(jù)

那怎么辦呢?

那就需要使用DMA來(lái)讀數(shù)據(jù)。

會(huì)有人問(wèn) DMA怎么知道 什么時(shí)候采樣數(shù)據(jù)呢!

這個(gè)看 STM參考手冊(cè) 或許 能夠看得出來(lái)。

ADC的DMA請(qǐng)求并不經(jīng)過(guò) 規(guī)則通道數(shù)據(jù)寄存器,而是通過(guò)轉(zhuǎn)換器直接申請(qǐng)。


立此為證,等我完全明白了 再來(lái)解釋。

補(bǔ)充一張圖 就會(huì)發(fā)現(xiàn) 采樣多個(gè)通道 必須使用DMA
如下圖
具體的使用步驟:
主要是配置 ADC和 DMA。記得打開(kāi)ADC的DMA允許位。






打開(kāi)一次DMA的傳輸 DMA開(kāi)始工作
然后開(kāi)始進(jìn)行AD轉(zhuǎn)換,轉(zhuǎn)換后產(chǎn)生DMA請(qǐng)求,將數(shù)據(jù)進(jìn)行存儲(chǔ), 存儲(chǔ)的采樣數(shù)取決于 DMA設(shè)置的數(shù)量。


關(guān)鍵詞: STM32ADC掃描模

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉