tmr dma

看了tmr的例程,有個(gè)dma pwm例子,會(huì)發(fā)送數(shù)組,循環(huán)發(fā)送,這個(gè)數(shù)組對(duì)于pwm代表什么?占空比?還是什么?比如例子中周期為TMR2_PWMCycleCfg(120000); // 周期 2000us,數(shù)組如圖,比如我想發(fā)送占空比25%和45%的發(fā)送什么數(shù)據(jù)?。第二例子中有個(gè)計(jì)滿1000周期進(jìn)入中斷?這個(gè)有點(diǎn)不明白?多寫(xiě)了0?還是?第三我設(shè)置單次模式如何再次開(kāi)啟dma pwm傳輸?1720565412058.png

DMA數(shù)組中的數(shù)值用來(lái)表示低/高電平的周期數(shù),高/低電平根據(jù)TMR2_PWMInit接口的第一個(gè)參數(shù)來(lái)判斷。

25%的高電平占比,可以配置(25% * TMR2_PWMCycleCfg接口周期總數(shù))個(gè)周期,放在PwmBuf數(shù)組中,TMR2_PWMInit配置第一個(gè)參數(shù)為High_Level。


圖中“計(jì)滿1000周期進(jìn)入中斷”注釋可以刪去,該注釋不適用圖中的代碼塊。


再次開(kāi)啟TMR PWM輸出一組周期,再調(diào)用一次TMR2_DMACfg即可。


還有一個(gè)問(wèn)題,我嘗試輸出脈沖,但發(fā)現(xiàn)第一個(gè)脈沖被輸出了兩次,什么原因?如圖第一個(gè)0.2ms被輸出了2次然后第三個(gè)脈沖是20us

1720620542413.png

1720620556444.png

1720620586787.png


經(jīng)過(guò)測(cè)試?yán)桃矔?huì)出現(xiàn),由于例子中數(shù)組第一位為0,所以直接觀察不到,但如果?PwmBuf[i]=2400*i+2400;將數(shù)組第一個(gè)變?yōu)榉橇悖蜁?huì)觀察到第一個(gè)脈沖出現(xiàn)了重復(fù),


W10RCVKFDC5KXN`EIS0GB5L.png


如下圖

~[_KMC]NMY33QRUD}1]1P%P.png


您好,可以先配置init再配置dmacfg,這樣試試看。

image.png


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频