RS232_DMA通讯程序编写步骤:
(1) 建立DMA模块
(2) 开启USART1的DMA
(3) DMA参数初始化:DMA_Init
(4) USART1的DMA中断使能:NVIC_EnableIRQ (但是此次DMA并未用到中断 因此此步骤可省略。)
(5) 启动DMA:DMA_Cmd
(6) 修改USART1初始化函数:使能空闲中断和DMA接收中断,
USART1_ITConfig USART_DMACmd
(7) 修改USART1中断函数:
读UASRT->SR和UASRT->DR寄存器,清除中断标志;
关闭DMA通道:获取接收DMA接收数据长度DMA_GetCurrDataCounter;
重新设置缓冲器数据长度;
启动DMA;
将接收标志位置1;
(8)在main函数中调用DMA初始化和判断是否接收到了数据的应用函数。
|