看了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傳輸?
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
經(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ù),
如下圖
您好,可以先配置init再配置dmacfg,這樣試試看。