DMA的普通模式和循环模式

       最近在学习USART和ADC,正好用到了DMA,简单的记录一下。

       DMA传输模式有两种,普通模式和循环模式。相关寄存器有DMA_CCRx的CIRC位和DMA_CNDTRx。

       当工作在普通模式,DMA搬运了设定长度的数据后,CNDTR清0,会产生中断标志,然后DMA就停止工作了,如果再有数据也不接收了。需关断 DMA 使能后再重新配置后才能继续传输。

       当工作在循环模式,DMA搬运了设定长度的数据后,CNDTR清0,会产生中断标志,如果再有数据,DMA会循环保存到内存中,覆盖前面的数据。在CNDTR=0时DMA会自动装载初始化时的配置,CNDTR重置为初始值。

你可能感兴趣的:(stm32)