<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > STM32中采用DMA實(shí)現方波的產(chǎn)生和捕獲

STM32中采用DMA實(shí)現方波的產(chǎn)生和捕獲

作者: 時(shí)間:2011-11-05 來(lái)源:網(wǎng)絡(luò ) 收藏

1 微控制器介紹
系列微控制器是ST公司基于Cortex-M3內核的高集成度的微控制器。它在性能、價(jià)格、功耗和實(shí)時(shí)性方面樹(shù)立了一個(gè)新的標桿,集成了Cortex-M3內核,以及雙ADC、多用途的通用時(shí)鐘TIMx、RTC、I2C、SPI、UART、CAN、、USB等豐富的外設。其功耗在全速72MHz所有模塊都打開(kāi)時(shí)也僅僅為36 mA,在低功耗模式下其功耗僅為2μA。

2 和TIMx簡(jiǎn)介
系列微控制器均含有和通用時(shí)鐘TIMx模塊。其低端型號中僅包含DMA1,支持7個(gè)通道;高端型號還包括DMA2,支持5個(gè)通道。它的每個(gè)通道可任意指定工作模式,如內存到內存、內存到外設或外設到內存等。當涉及到外設時(shí),一般是由外設來(lái)觸發(fā)DMA的一次傳輸,如串口收到數據的標志位可觸發(fā)DMA。
DMA的每次傳輸都分為4個(gè)階段:申請仲裁、地址計算、總線(xiàn)存取和應答。除總線(xiàn)存取階段,其他3個(gè)階段都只需要一個(gè)系統周期,并且不占用總線(xiàn),可在DMA控制器內部并發(fā)地執行??偩€(xiàn)存取階段,每個(gè)字(4字節)的傳輸需要3個(gè)系統周期。DMA和CPU工作在交替方式下,不會(huì )相互阻塞。DMA各個(gè)通道可獨立設置優(yōu)先級,當訪(fǎng)問(wèn)同一資源時(shí)高優(yōu)先級通道先獲得資源。
DMA的使用比較簡(jiǎn)單,每路DMA僅包括4個(gè)寄存器,用于指定DMA的工作模式、源地址、目標地址和傳輸次數。ST公司提供了很好的驅動(dòng)庫,簡(jiǎn)化了外設的使用,方便閱讀和移植。本文庫函數來(lái)展示功能。
其通用時(shí)鐘是很有特色的外圍模塊,可多種復雜的功能。時(shí)鐘模塊內部主要包含一個(gè)計數器和4個(gè)通道的比較/寄存器。時(shí)鐘可工作在或比較模式。在模式下,若有對應的觸發(fā)信號,計數器的值會(huì )保存到比較/捕獲寄存器,并觸發(fā)中斷或DMA;在比較模式下,若計數器的值與比較/捕獲寄存器的值相等,則對外輸出預選設定好的信號,如高電平、低電平或電平反轉等。

3 DMA+TIMx多路
時(shí)鐘的4個(gè)比較/捕獲通道加DMA可以出4路不同頻率和占空比的。這里為簡(jiǎn)化篇幅,只列出了一路的代碼?;驹硎牵簩r(shí)鐘的4個(gè)通道設置為反轉模式(即計數器與比較捕獲寄存器相等時(shí),其對應的CPU引腳電平發(fā)生反轉),設置計數器為向上計數到0xFFFF的模式;然后預先計算好需要引腳反轉的時(shí)刻,并使能對應通道的DMA請求。這樣,當計數器與比較/捕獲寄存器的值相等時(shí),由DMA將下一個(gè)需要引腳電平反轉的時(shí)刻送入到比較/捕獲寄存器。
這里將DMA設置為從內存到外設的半字(2個(gè)字節)環(huán)形傳輸。開(kāi)啟DMA全滿(mǎn)和半滿(mǎn)中斷,在中斷處理函數中不斷填充新的時(shí)刻值,即可保證產(chǎn)生的波形不間斷。假設存放時(shí)刻值的緩沖長(cháng)度為N,則每N/2個(gè)點(diǎn)才中斷一次,這樣CPU就不需要頻繁進(jìn)入中斷,執行效率比較高。由此也可以看出,緩沖越大,對中斷響應的實(shí)時(shí)性要求也越低,當然這時(shí)中斷的處理時(shí)間也越長(cháng)。以下為示例代碼:
a.jpg
b.jpg
需要注意的是,比較/捕獲寄存器的預加載功能必須禁止掉。我們需要的是寫(xiě)入比較/捕獲寄存器的值立即與計數器相比較輸出,而無(wú)需等待一個(gè)更新事件。

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>