• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32中DMA的用处?没用DMA是也照样可以发送

韩梅梅 2019-03-05 浏览量:1376
例如串口发送,没用DMA是也照样可以发送!!!!!请赐教
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • DMA就是一个搬运工,可以将数据从一个位置搬运到另一个位置。

    以UART为例,如果要接收数据,会触发UART中断,然后CPU介入,在中断中通过CPU将UART输入寄存器的值读出来,存放到内存中;

    而DMA方式,产生UART中断后,DMA直接参与,把UART输入寄存器的值搬运到内存中,CPU只需要在去检查内存的值就好了,这样提高了CPU的效率。

    • 发布于 2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:16
  • 好处是不需要mcu花时间处理,自己控制数据块传输直到完成,这段时间mcu处理单元可以做其他事情。

    想想看,当传输速度快的时候,dma就很有用了。

    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 1
    • 0

  • 但效率不同,mcu的负荷不同。
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 1
    • 0

  • DMA是硬件直接数据传输,不需要通过CPU控制。这样不仅传输速度快了,更减轻了cpu的运行负担。
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 1
    • 0

  • 用和不用当然都可以发送。不用DMA发送是需要单片机实时参与,由单片机一个一个地发送数据并进行监控。但是如果用DMA设置了起始地址,数据大小等参数后,就直接由专门的一个DMA模块进行数据发送,发送过程中单片机无需参与。发送完后会产生中断告知单片机。由此可知用DMA可以节省单片机资源,让单片可以在同一时间里干更多事。
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 1
    • 0

  • dma传输可以不利用mcv资源,你单线程是没啥区别的
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 之前没有DMA的时候串口也是正常用。不过现在有了DMA,可以减少单片机的负荷,降低资源占用,让单片机在串口接收时能干其他事情。
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA相当于是在内存和外设之间打开了一条通道,允许外设控制器直接访问内存的内容,这样从内存拷贝数据到外设控制器可以不消耗CPU的处理能力
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 速度问题和效率问题,就好像可以用IO口模拟的SPI赶不上硬件SPI,另外DMA可以减少CPU的负担,从而让CPU做更多的事情。
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 对于数据量的大的应用,有DMA可以提高效率。
    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA是一个不占用CPU即可将数据从一个地址搬运到另一个地址,可以降低CPU开销,不使用也不影响
    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA的发送是不占用CPU的时间的,CPU可以去做其他的工作的
    • 发布于2019-03-06
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA的作用是可以让CPU不专门处理串口接收,串口外设对应的DMA通道可以直接将数据放到定义的缓存里。CPU可以等收完了再去处理。
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA顾名思义直接内存访问,即不通过CPU干预,在外设和内存,内存和内存之间搭建数据传输通道,意义非凡,可以减少CPU负担。

    • 发布于2019-03-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 不用DMA发送是需要单片机实时参与由单片机一个一个地发送数据并进行监控。如果用DMA就要设置好起始地址数据大小等参数。
    • 发布于2019-03-26
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA占用CPU资源比较少,串口DMA是外设直接到内存,速率更快
    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32中DMA的用处?没用DMA是也照样可以发送