UART数据发送与接收(DMA模式)
在本文中,我们将展示如何使用STM32 Blue Pill UART 通过直接内存访问(DMA)来发送和接收数据。这一过程而无需涉及 CPU。 在 DMA 模式下,数据可以从 UART RX 数据寄存器传输到用户存储器,无需任何 CPU 处理时间。 通过将 DMA 与 UART 结合使用,我们可以针对高波特率进行优化并减少 CPU 的参与。
1、DMA介绍
直接内存寻址通常称为 DMA,是一种数据传输技术,其中 I/O 或外围设备(例如 UART、I2C、SPI、ADC 等)可以直接与内存通信,而无需通过 STM32 微控制器的 CPU 传递数据。 有了DMA控制器,我们就可以绕过CPU单元,直接在内存和外设之间传输数据。
DMA 控制器是专用硬件,无需 CPU 参与即可直接执行读写操作,并节省涉及操作码获取、解码、递增和源/目标测试地址的 CPU 时间,否则中央处理单元应执行这些操作。 这导致外设和存储器之间的数据传输速率较高。 此外,我们可以快速传输大块数据。