1.DMA
字节为8位,半字16位,字32位,图二中FIFO模式即源和目标数据宽度不匹配时可以一次发送特定位数的数据。
由上图,有DMA1和DMA2,总共有八个数据流,每个数据流对应八个通道。
上图为不同方向的源地址和目标地址的选择。
每个数据流可以配置不同的优先级。
指针递增,自动递增指针发送数据。
双缓冲区模式如图所示。
DMA中断指相应事件完成时控制标志位,触发中断。
上图为使用各种外设DMA的使能函数,可以在相应外设的库文件中找到。
上图为在主函数中使用MYDMA_Config配置函数,图中使用的是DMA2的数据流7通道4,即USART1,所以第三个空填写USART的基地址即DR寄存器。
然后主函数中定义了发送数据缓冲区为8200个,即数组有8200个,然后模式为存储器到外设,由于都是发送到USART的DR寄存器,所以外设选择非增量模式,而发送的数据取自存储器,所以选择存储器增量模式,就会一直自增发送,即依次发送数组中的8200个元素。
模式设置中的循环模式即传输完后又会回到第一个重新开始传输,图中选择的为普通模式。
单词突发传输即一次传输一个字节。