Project->STM32F10x_StdPeriph_Examples->TIM->DMABurst 的示例代碼; 硬件環(huán)境:STM32F10V-128K-EVAL,MCU型號(hào)為 STM32F103VBT6; 該示例的代碼稍微解釋下,就會(huì)明白 DMA 的寄存器的作用。部分代碼如下:



該語句是對(duì)寄存器 DMA_CPARx 賦值,存入要操作的是哪種外設(shè),該外設(shè)的數(shù)據(jù)寄存器的基地址,它作 為數(shù)據(jù)傳輸?shù)脑椿蚰繕?biāo),在此例中,是作為數(shù)據(jù)傳輸?shù)哪繕?biāo)的基地址。


標(biāo),在此例中,是作為數(shù)據(jù)傳輸?shù)脑吹幕刂贰?uint32_t)SRC_Buffer; DMA_DIR

DMA_PeripheralInc,DMA_MemoryInc 該示例中,不執(zhí)行外設(shè)地址增量操作,執(zhí)行存儲(chǔ)器地址增量操作。DMA_PeripheralDataSize,DMA_MemoryDataSize 定義外設(shè)數(shù)據(jù)寬度,存儲(chǔ)器數(shù)據(jù)寬度。
在非循環(huán)模式中,在數(shù)據(jù)傳輸結(jié)束后,DMA_CNDTRx 寄存器的內(nèi)容會(huì)變?yōu)?0,此時(shí)無論通道是否開啟, 都不會(huì)發(fā)生任何數(shù)據(jù)傳輸。
在循環(huán)模式中,在數(shù)據(jù)傳輸結(jié)束后,DMA_CNDTRx 寄存器的內(nèi)容會(huì)自動(dòng)加載變?yōu)橹芭渲玫臄?shù)值, 重新開始數(shù)據(jù)傳輸。
2.2 基于 Cube 庫函數(shù)的可控 PWM 脈沖 直接打開\STM32Cube_FW_L0_V1.1.0\Projects\STM32L053R8-Nucleo\Examples\TIM\TIM_DMABurst 中的示例項(xiàng)目,修改配置符合自己當(dāng)初的設(shè)想:選取 Timer2 的 channel1(PA5),系統(tǒng)時(shí)鐘通過 HSI 的分頻倍頻,通過 PLL 實(shí)現(xiàn)系統(tǒng)時(shí)鐘為 8MHz。GPIO 口的設(shè)置: Max output speed 的速度為 High。定時(shí)器 PWM 模式的設(shè)置:向上計(jì)數(shù),計(jì)數(shù)時(shí)鐘為 8MHz,占空比







| 歡迎光臨 (http://www.denmoz.com/bbs/) | Powered by Discuz! X3.1 |