1. 实验设计:
Memory to Memory, FLASH to Memory, 把内部FLASH的数据传输到内部的SRAM
2. 编程要点
1)常量存储在FLASH中;
2)初始化DMA,注意也需要初始化DMA外设的时钟;
3)传输前亮黄灯,出错亮红灯,传输完成亮绿灯;
3 源码
定义相关的宏
// 当使用存储器到存储器模式时候,通道可以随便选,没有硬性的规定
#define DMA_CHANNEL DMA1_Channel6
#define DMA_CLOCK RCC_AHBPeriph_DMA1
// 传输完成标志
#define DMA_FLAG_TC DMA1_FLAG_TC6
// 要发送的数据大小
#define BUFFER_SIZE 32
配置DMA
/* 定义aSRC_Const_Buffer数组作为DMA传输数据源
* const关键字将aSRC_Const_Buffer数组变量定义为常量类型
* 表示数据存储在内部的FLASH中
*/
const uint32_t aSRC_Const_Buffer[BUFFER_SIZE]= {
0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,