[stm32f103]DMA

news2024/11/27 4:38:15

       简介 

DMA Direct Memory Access )直接存储器存取
DMA 可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须 CPU 干预,节省了 CPU 的资源
12 个独立可配置的通道: DMA1 7 个通道), DMA2 5 个通道)
每个通道都支持软件触发和特定的硬件触发
STM32F103C8T6 DMA 资源: DMA1 7 个通道)
软件触发: 如把FLASH里面的数据, 转运到SRAM里面中, DMA会最快速度全部数据转运完成.
硬件触发: 如果是外设到存储器中转运. 就需要考虑一些时机, 如转运ADC数据, 就需要每个通道转换完成之后, 进行一次硬件触发DMA, 之后DMA会开始转运. 触发一次转运一次, 这样不会干预其他外设的工作.
存储器到存储器的转运, 使用软件触发, 外设到存储器的转运, 使用硬件触发.

 

存储器

ROM掉电不丢失, RAM掉电丢失数据.

DMA逻辑框图

起始地址: 数据从哪里来? 从外设, 还是存储器. 到哪里去? 数据转运到哪个地址?
数据宽度: 指定一次转运, 要按多大的数据宽度来进行. (字节Byte/ 半字HalfWord/ 字Word).
地址是否自增: 数据转运完之后, 要不要将地址移动到下一个位置中去.
传输计数器: 我要传几次?自减计数器. 减到0之后, DMA就不会转运数据了, 1就是1次.
自动重装器: 传输计数器减到零, 立即重装到原来的数值, 达到循环模式.
M2M: Memory to Memory, 选择触发模式.
硬件触发: 一般用于外设, 需要找好Timing, 然后调用函数来触发. 只能用于指定的外设通道.
软件触发: 不用调用函数触发, 用最快的速度, 连续转运, 直到结束(计数器清零). 和自动重装器只能用一个. 用于存储器到存储器的转运, 因为不需要Timing. 最快完成就行. 可以用于所有的地址.
开关控制: 开启DMA. 写传输计数器时必须关闭DMA才能写入.

DMA转运条件

1. 开启开关控制
2. 转运计数器>0
3. 必须有触发源(M2M)
代码上如果使用const修饰全局变量, 会将该变量存放在Flash里面, 如果没有const修饰, 会放到SRAM里面, 如果一些不需要改变的变量, 并且常用的, 可以放到Flash里面, 节省SRAM的空间. const修饰局部变量还是放到SRAM中.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬取今日头条热门文章

前言 今日头条文章收益是没有任何门槛,只要是你发布文章,每篇文章的阅读量超过1000就能有收益,阅读量越多收益越高。于是乎我就有了个大胆的想法。何不利用Python爬虫,爬取热门文章,然后完成自动化发布文章呢&#xf…

独立容器 Rancher Server 证书过期解决

问题 Rancher无法登录 容器报错X509:certificate has expired or is not ye valid 在某天需要发布新版本的时候,发现rancher无法登录,于是到服务器上查看rancher日志,发现以下内容: docker logs -f rancher --since10…

Large-Precision Sign using PBS

参考文献: [CLOT21] Chillotti I, Ligier D, Orfila J B, et al. Improved programmable bootstrapping with larger precision and efficient arithmetic circuits for TFHE[C]//Advances in Cryptology–ASIACRYPT 2021: 27th International Conference on the T…

【强化学习】基于蒙特卡洛MC与时序差分TD的简易21点游戏应用

1. 本文将强化学习方法(MC、Sarsa、Q learning)应用于“S21点的简单纸牌游戏”。 类似于Sutton和Barto的21点游戏示例,但请注意,纸牌游戏的规则是不同且非标准的。 2. 为方便描述,过程使用代码截图,文末附链…

JavaSE基础50题:25. 查找数组中指定元素(顺序查找)

概述 给定一个数组,再给定一个元素,找出该元素在数组中的位置。 for循环遍历 【概述】 一个一个找,比较慢。 想要快一点的方法,可以使用二分查找,在后续《JavaSE基础50题》专栏中27题中详细讲解。 【代码】 public …

MySql篇——MySql使用常见问题及解决办法

这里汇总MySql使用常见问题及解决办法,会持续更新。 问题1.ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。 含义:你设置的密码不符合当前的密码等级。 可使用 SHOW VARIABLES LIKE validate_password%; 查看…

C#中的Attribute详解(上)

C#中的Attribute详解(上) 一、Attribute是什么二、Attribute的作用三、Attribute与注释的区别四、系统Attribute范例1、如果不使用Attribute,为了区分这四类静态方法,我们只能通过注释来说明,但这样做会给系统带来很多…

计算机图形学光线追踪大作业C++基于Optix为框架实现的光线追踪算法合集,含直射光阴影效果、漫反射阴影效果、镜面反射效果等示例

MineRay 使用Optix为框架实现的光线追踪算法。 包含4个示例,直射光阴影效果、漫反射阴影效果、镜面反射效果、折射效果 环境需求 本项目在Windows 10中测试,以下环境为Windows中的环境 CUDA 10.1 OptiX 7 SDK cmake 编译方式 使用cmake编译 打开Mi…

分布式、CAP 和 BASE 理论

在计算机科学领域,分布式系统是一门极具挑战性的研究方向,也是互联网应用中必不可少的优化实践,而 CAP 理论和 BASE 理论则是分布式系统中的两个关键的概念。 什么是分布式系统 首先,让我们来谈谈分布式系统。你可以将分布式系统…

C++进阶--继承和多态常见题目

继承和多态常见题目 概念考查问答题 概念考查 下面哪种面向对象的方法可以让你变得富有( A) A: 继承   B: 封装   C: 多态   D: 抽象 这道题说哪种面向对象的方法可以让我们更富有,也就是东西更多,那么一定是继承无疑了,因为继承可以让…

ArcGIS高程点生成等高线

基本步骤:数据清洗→创建TIN→TIN转栅格→等值线→平滑线。 1.(重要)数据清理:删除高程点中的高程异常值数据。 2.创建TIN:系统工具→3D Analyst Tools→数据管理→TIN→创建TIN(可直接搜索工具TIN)。 单击…

移动机器人规划、控制算法初识

规划与控制PNC(PlanningandControl) 1 路径规划算法: 移动机器人路径规划算法总结_机器人运动轨迹算法-CSDN博客 2 控制算法: 机器人控制算法综述_机器人控制技术综述-CSDN博客 机器人控制算法简要概述_智能控制算法-CSDN博客 学习资源: …

VSCode 未装插件

EditorConfig for VS Code:自定义代码规范,按照自己指定的规则而不是编辑器默认的格式化。 ES7 React/Redux/React-Native snippets:款苏插入React代码片段。 Material Icon Theme:文件图标主题。 Prettier - Code formatte…

自然语言处理(第16课 机器翻译4、5/5)

一、学习目标 1.学习各种粒度的系统融合方法 2.学习两类译文评估标准 3.学习语音翻译和文本翻译的不同 4.学习语音翻译实现方法 二、系统融合 以一个最简单的例子来说明系统融合,就是相当于用多个翻译引擎得到不同的翻译结果,然后选择其中最好的作为…

在VMware安装CentOS 7:详细教程

安装准备工作 本地虚拟机:我这里使用的是VMware Workstation 17 Pro centos7系统ISO镜像:我这里使用的是CentOS-7-x86_64-DVD-2009.iso,具体的下载地址是在阿里云官方镜像站:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿…

k8s的资源管理

命令行: kubectl命令行工具优点: 90%以上的场景都可以满足 对资源的增,删,查比较方便,对改不是很友好缺点:命令比较冗长,复杂难记 声明方式:k8s当中的yaml文件实现资源管理----声明式GUI:图形化工具的管理。 查看k8s的…

AIGC时代下,结合ChatGPT谈谈儿童教育

引言 都2024年了,谈到儿童教育,各位有什么新奇的想法嘛 我觉得第一要务,要注重习惯养成,我觉得聊习惯养成这件事情范围有点太大了,我想把习惯归纳于底层逻辑,我们大家都知道,在中国式教育下&a…

SAP缓存 表缓存( Table Buffering)

本文主要介绍SAP中的表缓存在查询数据,更新数据时的工作情况以及对应概念。 SAP表缓存的工作 查询数据 更新数据 删除数据 表缓存的概念 表缓存技术设置属性 不允许缓冲: 允许缓冲,但已关闭: 缓冲已激活: 已…

腾讯云价格计算器,一键计算精准报价,好用!

腾讯云价格计算器:可以计算腾讯云服务器不同CVM实例规格、CPU内存、公网带宽和系统盘费用明细表,可以一键计算出精准报价明细表,腾讯云服务器网txyfwq.com分享大家腾讯云服务器价格计算器入口链接、使用方法及限制说明: 腾讯云服…

KSO-SAP,ABAP创建远程RFC函数

文章目录 概要创建rfc函数创建函数修改函数处理类型小结 概要 (这是创建rfc ,远程调用rfc请到 KSO-SAP ABAP调用远程RFC函数详细过程) SAP RFC(Remote Function Call)是一种用于处理系统间通信的协议,允…