STM32控制器

STM32控制器 DMA控制器DMA是一种嵌入式系统中用于高速传输数据的机制提供在外设与存储器、存储器和存储器之间的高速数据传输它允许外设中的数据直接传输到系统存储器而无需通过CPU的干预它主要做数据传输的工作STM32F407有2个DMA控制器每个控制器有8个数据流每个数据流有8个通道1个数据流每次只能搬运1个通道的数据。DMA的仲裁器处理事件的先后顺序DMA的仲裁器是一个用于管理多个DMA通道之间竞争访问系统总线的组件。当系统多个外设或DMA设备需要访问系统内存时让优先级高的先访问判断优先级高低还分为软件优先级与硬件优先级软件优先级有最高/高/中等/低优先级硬件优先级是判断当有两个相同的软件优先级的请求较低编号的通道比较高编号的通道有更高的优先权DMA不会抢占通道不是跟中断一样一个低优先级的进程没结束就去执行高优先级的进程FIFO模式是作为数据缓存的DMA的指针增量在直接模式下不允许与目标的传输数据宽度不同两者必须相等并由DMA_SxCR中的PSIZE位定义MSIZE位无效当PSIZE和MSIZE不相等时在DMA_SxNDTR寄存器中配置的要传输的数据项目数目的数据宽度等于外设总线的宽度由PSIZE位配置决定宽度地址递增