STM32串口DMA方式向上位机连续发送接收数据

目录

  • 一、DMA初步应用
    • 1、DMA含义
    • 2、 DMA传输四要素
    • 3、使用区别
    • 4、DMA的应用场景
    • 5、DMA传输方式
    • 6、DMA中断
  • 二、创建项目
    • 1、STM32CubeMX创建
      • 1.1设置SYS
      • 1.2设置RCC
      • 1.3设置USART
      • 1.4DMA设置
      • 1.5时钟设置
      • 1.6文件配置
    • 2、KEIL代码配置
      • 2.1main.c文件代码
      • 2.2 while循环中代码
      • 2.3编译烧录
      • 2.4运行结果
  • 三、DMA总结
  • 四、参考

一、DMA初步应用

1、DMA含义

DMA,全称Direct MemoryAccess,即直接存储器访问
DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。转移这些数据其实是不需要CPU参与的,只需要提供一个通道,让数据之间直接进行传输。

2、 DMA传输四要素

  • 传输源:DMA数据传输的来源
  • 传输目标:DMA数据传输的目的
  • 传输数量:DMA传输数据的数量
  • 触发信号:启动一次DMA数据传输的动作

3、使用区别

**使用和不使用DMA区别:**在没有DMA之前,串口每次发送数据时都要由CPU将源地址上的数据拷贝到串口发送的相关寄存器上;串口每次接收数据时都要由CPU将发送来的数据拷贝到主存上。而加了DMA后,只需要告诉DMA源地址和目标地址,DMA通道就能够自动进行数据的转移,即CPU只需要告诉DMA:串口需要发送的数据在哪里,串口接收到的数据应该存在哪里,运输的工作则交由DMA去做,运输期间CPU就可以去处理别的事情,这就大大提高了CPU的运行效率

4、DMA的应用场景

DMA的作用就是实现数据的直接传输&#x

你可能感兴趣的:(stm32,单片机,arm)