stm32f407 6路串口dma配置_STM32CubeMX直接存储器访问(DMA)

本文介绍了如何使用STM32CubeMX配置STM32F407进行串口DMA传输,详细阐述了DMA的工作原理,并提供了设置DMA传输模式、通道选择、仲裁器、数据长度和指针递增等关键参数的方法。通过设置DMA1 Channel 4和5进行串口发送和接收,选择低优先级,并展示了如何在代码中实现数据发送。在实际应用中,开启串口中断对于确保数据完整发送至关重要。
摘要由CSDN通过智能技术生成

    在USART文章中讲解了串口的轮询和中断模式,本文介绍一下通过DMA模式控制串口传输。

    直接存储器访问 (DMA) 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据。这样节省的 CPU 资源可供其它操作使用。说白了DMA就是一个搬运工,将数据从一个地方搬到另一个地方而不需要CPU处理。作为一个搬运工,要他正常工作必须要确定几个重要的参数:

  • 传输模式:数据从哪里搬到哪里。三种可能的传输方向:存储器到外设、外设到存储器或存储器到存储器

  • 通道选择:就是数据传输的是走那条道路

  • 仲裁器:多个DMA传输是优先级高的优先传输

  • 数据长度:每次传输的数据长度,可以一个字节,两个字节(半字),四个字节(字)

  • 指针递增:如果使能了递增模式,则下一次传输的地址将是前一次传输的地址递增 1(对于字节)、2(对于半字)或4(对于字)

    打开STM32CubeMX重新建工程,配置和上一章配置一样。只是这个工程中,在DMA设置栏添加UASART发送TX和接收RX的DMA。发送选择 DMA1 Channel 4通道,方向从存储器到外设。优先级为低。接收选择DMA1 Channel 5通道,方向外设到存储器,优先级为低。Mode为Normal,Data Width选择Byte。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值