1 u16 DMA1_MEM_LEN;//保存DMA每次数据传送的长度 2 //DMA1的各通道配置 3 //这里的传输形式是固定的,这点要根据不同的情况来修改 4 //从存储器->外设模式/8位数据宽度/存储器增量模式 5 //DMA_CHx:DMA通道CHx 6 //cpar:外设地址 7 //cmar:存储器地址 8 //cndtr:数据传输量 9 void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr) 10 { 11 RCC->AHBENR|=1<<0; //开启DMA1时钟 12 delay_ms(5); //等待DMA时钟稳定 13 DMA_CHx->CPAR=cpar; //DMA1 外设地址 14 DMA_CHx->CMAR=(u32)cmar; //DMA1,存储器地址 15 DMA1_MEM_LEN=cndtr; //保存DMA传输数据量 16 DMA_CHx->CNDTR=cndtr; //DMA1,传输数据量 17 DMA_CHx->CCR=0X00000000; //复位 18 DMA_CHx->CCR|=1<<4; //从存储器读 19 DMA_CHx->CCR|=0<<5; //普通模式 20 DMA_CHx->CCR|=0<<6; //外设地址非增量模式 21 DMA_CHx->CCR|=1<<7; //存储器增量模式 22 DMA_CHx->CCR|=0<<8; //外设数据宽度为8位 23 DMA_CHx->CCR|=0<<10; //存储器数据宽度8位 24 DMA_CHx->CCR|=1<<12; //中等优先级 25 DMA_CHx->CCR|=0<<14; //非存储器到存储器模式 26 } 27 //开启一次DMA传输 28 void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx) 29 { 30 DMA_CHx->CCR&=~(1<<0); //关闭DMA传输 31 DMA_CHx->CNDTR=DMA1_MEM_LEN; //DMA1,传输数据量 32 DMA_CHx->CCR|=1<<0; //开启DMA传输 33 }
chx用什么配置stm32寄存器版学习笔记08 DMA
未经允许不得转载:上海聚慕医疗器械有限公司 » chx用什么配置stm32寄存器版学习笔记08 DMA








