在这里我们要注意以下几点: (1)DMA_InitStructure.DMA_PeripheralBaseAddr = USART3_DR_Base;这里对应USART数据寄存器地址,这个地址我们是这样定义的:#define USART3_DR_Base 0x40004804,这个值是怎么算出来的呢?我们可以查看stm32存储器映射表: USART3的起始地址是0x40004800,我们查看stm32串口数据寄存器偏移地址为0x04 因此我们可以计算到USART3数据寄存器地址为0x40004804 (2)我们数据传输方向内存(变量)到外设(串口),所以DMA方向为内存到外设 (3)DMA传输模式有两种:DMA_Mode_Normal(普通模式),DMA只传输一次;DMA_Mode_Circular(循环模式),DMA循环传输,比如在AD采集时要配置成循环模式。
|