一个网站做十个二级域名,电子商务网站调研,2023免费网站推广大全,自己如何开网店详细步骤8 DWA
DMA简介
DMA#xff08;Direct Memory Access#xff09;直接存储器存取#xff08;可以直接访问32内部存储器#xff0c;包括内存SRAM#xff0c;Flash#xff09;
DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输#xff0c;无须CPU干预#x…8 DWA
DMA简介
DMADirect Memory Access直接存储器存取可以直接访问32内部存储器包括内存SRAMFlash
DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输无须CPU干预节省了CPU的资源
存储器和存储器软件触发外设和存储器硬件触发
12个独立可配置的通道 DMA17个通道 DMA25个通道
每个通道都支持软件触发和特定的硬件触发STM32F103C8T6 DMA资源DMA17个通道8.1 DWA直接存储读取
存储器映像
类型起始地址存储器用途ROM(只读)0x0800 0000程序存储器Flash存储C语言编译后的程序代码0x1FFF F000系统存储器存储BootLoader用于串口下载0x1FFF F800选项字节存储一些独立于程序代码的配置参数RAM(随机存储器)0x2000 0000运行内存SRAM存储运行过程中的临时变量0x4000 0000外设寄存器存储各个外设的配置参数0xE000 0000内核外设寄存器存储内核各个外设的配置参数NVIC和SysTick
DMA框图 DMA基本结构 DMA进行转运的条件
第一就是开关控制DMA_Cmd必须使能
第二传输计数器必须大于0
第三触发源必须由触发信号DMA请求 数据宽度与对齐 数据转运DMA
将DataA转到DataB外设地址给DataA数组地址有储器地址给Data B的首地址宽度按8位字节传输两地址都自增传输计数器给7无需自动重装用软件触发调用DMA_ Cmd( ) ADC扫描模式DMA
DMA最常见的用途就是配合ADC的扫描模式
外设地址给ADC_DR地址有储器地址在SRAM中定一个数组ADValue以16位半字转输 函数解释
void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx); //恢复缺省配置
void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); //初始化
void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct); //结构体初始化void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState); //DMA通道使能
void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState); //中断输出使能
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber); //设置当前传输数据寄存器
uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx); //获取当前传输数据寄存器FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG); //获取标志位状态
void DMA_ClearFlag(uint32_t DMAy_FLAG); //清除标志位
ITStatus DMA_GetITStatus(uint32_t DMAy_IT); //获取中断状态
void DMA_ClearITPendingBit(uint32_t DMAy_IT); //清除中断挂起位