当前位置:首页 > 单片机 > 单片机
[导读]基于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 结构体


/*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--》外设地址,可以选择USART,I2C,ADC等

DMA_Memory0BaseAddr-》memory地址,用于外设和内存的数据传输

DMA_DIR -》传送方向,分别有外设到内存,内存到外设,内存到内存

DMA_BufferSize -》传输的buffer size

DMA_PeripheralInc -》外设地址是否自加

DMA_MemoryInc -》内存地址是否自加

DMA_PeripheralDataSize -》外设每个data的size,分别有1byte,半字,全字

DMA_MemoryDataSize -》内存的每个data的size,如上

DMA_Mode -》DMA mode,分别是传输完了是否循环还是正常

步骤四:DMA使能中断:


DMA_ITConfig(DMA_STREAM,DMA_IT_TC,ENABLE);

其中DMA有发送完成中断,完成一半中断,和错误中断等


步骤五:开始传输


/*DMAStreamenable*/

DMA_Cmd(DMA_STREAM,ENABLE);



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

智能合灯控制系统由环境光照检测、人体接近检测、语音识别、按键控制、合灯控制、数据显示、蓝牙通信、报警提示功能模块组成。

关键字: STM32 智能台灯

捡球机的移动装置以直流电机驱动,寻球装置以摄像头图像传感器模块构成,并搭配以图像检测算法。避障装置以红外检测和报警模块为主,以防在行动过程中触碰障碍物。

关键字: STM32 捡球机

ST于近期发布了“STM32WBA”无线MCU、“STM32U0”超低功耗入门级MCU、“STM32H7R/S”高性能MCU和“STM32MP2”四大重磅新品,还透露将会在今年推出18nm的STM32新品。

关键字: STM32 MCU NPU AI 超低功耗

美光再创行业里程碑,率先验证并出货 128GB DDR5 32Gb 服务器 DRAM,满足内存密集型生成式 AI 应用对速率和容量的严苛要求

关键字: AI 数据中心 内存

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

据韩联社报道,上周三星电子发布业绩报告显示,随着芯片价格反弹,预计今年第一季度营业利润同比骤增931.25%,为6.6万亿韩元(当前约合人民币354.6亿元),已经超过了2023年全年营业利润6.57万亿韩元。

关键字: 内存 三星

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存

Apr. 04, 2024 ---- TrendForce集邦咨询针对403震后各半导体厂动态更新,由于本次地震大多晶圆代工厂都位属在震度四级的区域,加上台湾地区的半导体工厂多以高规格兴建,内部的减震措施都是世界顶尖水平...

关键字: 晶圆代工 内存

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU
关闭
关闭