DMA

直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

DMA控制器和Cortex™-M3核心共享系统数据总线,执行直接存储器数据传输。当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求会暂停CPU访问系统总线达若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(存储器或外设)带宽。

DMA配置过程

DMA的数据对齐

一句话,如果目标的容量存放不了源数据,则只能尽可能存放源数据(小端模式)

操作一个不支持字节或半字写的AHB设备

当DMA模块开始一个AHB的字节或半字写操作时,数据将在HWDATA[31:0]总线中未使用的部分重复。

比如一个寄存器为一个字节/一个半字,不支持字写入;而AHB总线是32位(字)的,假如写入0xAB到一个字节大小的寄存器中,则0xAB传输到AHB总线上后是0xABABABAB。

写入的数据 AHB总线上的数据(32位)
0xABCD 0xABCD ABCD
0x12 0x1212 1212

STM32CubeMX使用DMA的注意点

使用STM32CubeMX配置得工程文件中,任何使用DMA的外设初始化函数必须得再DMA初始化后再进行外设初始化。否则DMA无效

【STM32】HAL库-DMA相关推荐

  1. STM32 HAL库 串口DMA(收发)和STM32串口中断接收(接收时间管理机制)+ESP8266 wifi模组通信问题

    一.HAL库 串口 DMA+ESP8266模组通信问题 用STM32 HAL库串口的DMA发送和空闲中断接收处理数据,单片机发送AT指令给ESP8266 wifi模组问题:单片机连续几次给wifi模组 ...

  2. STM32 HAL库 串口DMA接收不定长数据

    STM32 HAL库 串口DMA接收不定长数据 整体思路:我是用的CUBEMX软件生成的工程,使能了两个串口,串口2用来接收不定长的数据,串口1用来发送串口2接收到的数据:串口2我找了一个UBLOX卫 ...

  3. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  4. STM32 HAL库详解

    STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理. 1. HAL库文件结构 对于开发人员而言,首先要清楚 HAL 库的文件结构. ...

  5. STM32 HAL库学习笔记4-SPI

    STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...

  6. STM32 HAL库组成概述

    STM32 HAL库概述 ## (一)HAL库设计思想 什么是HAL(Hardware Abstraction Layer)? from 百度百科: 硬件抽象层是位于操作系统内核与硬件电路之间的接口层 ...

  7. stm32F051 HAL库+DMA+串口空闲中断

    STM32CubeMX 配置实现参考这里. 1. 串口空闲中断 1.1 UART_DMA方式接收数据 STM32串口使用DMA方式接收数据可以减小CPU的开销. 对于接收定长数据,可以将DMA接收缓冲 ...

  8. STM32 HAL库 CUBEMX配置 ADC采集

    文章目录 STM32 HAL库 CUBEMX配置 ADC采集 软硬件型号 1.单通道不定时任意时刻采集信号 CUBEMX配置 代码添加 2.单通道ADC采集+DMA传输 CUBEMX添加配置 代码添加 ...

  9. STM32 HAL库串口同时收发,接收卡死?

    STM32 使用 HAL库串口同时收发,使用踩坑史 = =!......by 矜辰所致 目录 前言 一. HAL 库串口收发 1.1 串口发送 1.2 串口接收 1.2.1 标准库接收 1.2.1 H ...

  10. STM32 HAL库开发学习笔记: USART1串口通讯(中断方式) IDE-STM32CubeIDE

    STM32串口通讯有三种方式,分别为阻塞(轮询).中断.DMA.这里将用中断的方式开发. 笔者也是刚入门STM32 HAL库开发,该笔记致希望于能帮到初学者,文中配置步骤.代码.实验现象均是笔者实践可 ...

最新文章

  1. .so 依赖目录 cmake_cmake浅析
  2. si24r1程序_简要分析SI24R1替代兼容NRF24L01P
  3. python函数返回值_Python中函数的返回值示例浅析
  4. php 安全基础 第七章 验证与授权 密码嗅探
  5. 刚刚!阿里云宣布2021要“做厚中台”!有哪些书值得读?
  6. preferredsize JAVA_Java JScrollPane.getPreferredSize方法代码示例
  7. 汽车语音控制是什么意思 汽车语音控制怎么用
  8. WLAN加密技术详解
  9. python基础之错误、调试(异常处理)
  10. linux下Jdk版本切换
  11. Atitit.java的浏览器插件技术 Applet japplet attilax总结
  12. 集合(ArrayList、Hashtable、泛型集合)
  13. 用opencv进行图像处理-利用傅里叶变换进行图像的高通滤波和锐化
  14. python网上在线编程_在线python编程
  15. 2017 ICPCECIC 北方邀请赛 H MJF wants to work (贪心)
  16. 中鑫吉鼎|白领投资理财有哪些注意事项
  17. 大疆云台和华为P30_全面分析曝光大疆云台3和mobile有没有区别?哪个好?优缺点内幕透露...
  18. 云服务器有多少防御,高防服务器防御一般有多少?
  19. 从万达百货到家乐福中国,苏宁如何快速消化“大块头”?
  20. 真心付出的一方失恋为什么痛,甚至厌世?

热门文章

  1. 负载均衡的多种解决方案
  2. 运维自动化要点——可运维性
  3. unity 图片 粉碎效果 破碎效果
  4. 哪些真正的全光谱灯品牌?推荐五款护眼的全光谱护眼台灯
  5. java判断ipv6地址类型_IPv6地址类型与格式
  6. 个微协议,微信号二次开发/ipad协议
  7. 美国漏洞众测平台HackerOne运营模式解读与分析
  8. 【LaTex】在插入的图片下方加下标和描述
  9. 温州医科大学oracle期末试题,系统解剖学期末复习(温州医科大学)系解试题A卷.doc...
  10. CVBS接口,PAL制式信号