日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]基于STM32 F401 Discovery板:DMA2在AHB1總線上步驟一:使能DMA#defineDMA_STREAM_CLOCKRCC_AHB1Periph_DMA2RCC_AHB1PeriphClockCmd(DMA_STREAM_CLOCK,ENABLE);步驟二:reset DMA Stream register:/*ResetDMAStreamr

基于STM32 F401 Discovery板:

DMA2在AHB1總線上



步驟一:使能DMA


#defineDMA_STREAM_CLOCKRCC_AHB1Periph_DMA2

RCC_AHB1PeriphClockCmd(DMA_STREAM_CLOCK,ENABLE);

步驟二:reset DMA Stream register:


/*ResetDMAStreamregisters(fordebugpurpose)*/

DMA_DeInit(DMA_STREAM);

步驟三:


/*CheckiftheDMAStreamisdisabledbeforeenablingit.

NotethatthisstepisusefulwhenthesameStreamisusedmultipletimes:

enabled,thendisabledthenre-enabled...Inthiscase,theDMAStreamdisable

willbeeffectiveonlyattheendoftheongoingdatatransferanditwill

notbepossibletore-configureitbeforemakingsurethattheEnablebit

hasbeenclearedbyhardware.IftheStreamisusedonlyonce,thisstepmight

bebypassed.*/

while(DMA_GetCmdStatus(DMA_STREAM)!=DISABLE)

{

}

步驟四:初始化DMA 結(jié)構(gòu)體


/*ConfigureDMAStream*/

DMA_InitStructure.DMA_Channel=DMA_CHANNEL;

DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)SRC_Const_Buffer;

DMA_InitStructure.DMA_Memory0BaseAddr=(uint32_t)DST_Buffer;

DMA_InitStructure.DMA_DIR=DMA_DIR_MemoryToMemory;

DMA_InitStructure.DMA_BufferSize=(uint32_t)BUFFER_SIZE;

DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Enable;

DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;

DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Word;

DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_Word;

DMA_InitStructure.DMA_Mode=DMA_Mode_Normal;

DMA_InitStructure.DMA_Priority=DMA_Priority_High;

DMA_InitStructure.DMA_FIFOMode=DMA_FIFOMode_Disable;

DMA_InitStructure.DMA_FIFOThreshold=DMA_FIFOThreshold_Full;

DMA_InitStructure.DMA_MemoryBurst=DMA_MemoryBurst_Single;

DMA_InitStructure.DMA_PeripheralBurst=DMA_PeripheralBurst_Single;

DMA_Init(DMA_STREAM,&DMA_InitStructure);


其中:
DMA_PeripheralBaseAddr--》外設(shè)地址,可以選擇USART,I2C,ADC等

DMA_Memory0BaseAddr-》memory地址,用于外設(shè)和內(nèi)存的數(shù)據(jù)傳輸

DMA_DIR -》傳送方向,分別有外設(shè)到內(nèi)存,內(nèi)存到外設(shè),內(nèi)存到內(nèi)存

DMA_BufferSize -》傳輸?shù)腷uffer size

DMA_PeripheralInc -》外設(shè)地址是否自加

DMA_MemoryInc -》內(nèi)存地址是否自加

DMA_PeripheralDataSize -》外設(shè)每個data的size,分別有1byte,半字,全字

DMA_MemoryDataSize -》內(nèi)存的每個data的size,如上

DMA_Mode -》DMA mode,分別是傳輸完了是否循環(huán)還是正常

步驟四:DMA使能中斷:


DMA_ITConfig(DMA_STREAM,DMA_IT_TC,ENABLE);

其中DMA有發(fā)送完成中斷,完成一半中斷,和錯誤中斷等


步驟五:開始傳輸


/*DMAStreamenable*/

DMA_Cmd(DMA_STREAM,ENABLE);



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉