l DMA通道disable后重新enable的时候,数据会重新从DMA_MemoryBaseAddr(DMA缓存区首地址)开始写入。
l 注意: 将EN 位置“1”以启动新传输(即调用DMA_Cmd(DMAy_Streamx, ENABLE)函数使能数据流)之前,DMA_LISR 或DMA_HISR 寄存器中与数据流相对应的事件标志(DMA_FLAG_TCIFx)必须清零。
l 如果DMA_SxNDTR(待传数据项数目)寄存器的值为零,则即使使能数据流,也无法完成任何事务。
l 如果使能了数据流,通过重置DMA_SxCR 寄存器中的 EN 位将其禁止,然后读取此位以确认没有正在进行的数据流操作。将此位写为 0 不会立即生效,因为实际上只有所有当前传输都已完成时才会将其写为 0。当所读取 EN 位的值为 0 时,才表示可以配置数据流。因此在开始任何数据流配置之前,需要等待 EN 位置 0。应将先前的数据块 DMA传输中在状态寄存器(DMA_LISR 和 DMA_HISR)中置 1 的所有数据流专用的位置 0,然后才可重新使能数据流
l 应先将EN位 置0,然后才能重新设置DMA_SxNDTR(待传数据项数目)寄存器的值,然后才能重新使能