首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
物联网
›
物联网
›
【STM32F1标准库】理论——DMA数据转运
返回列表
发新帖
【STM32F1标准库】理论——DMA数据转运
[复制链接]
发表于 2025-9-17 19:07:39
|
显示全部楼层
|
阅读模式
目次
一、简介
1.DMA可以直接访问STM32内部的
存储
器
2.DMA每举行一种数据转运都须要占用一个自身的转运通道
3.每个通道都支持软件触发和特定的硬件触发
①.每个通道的硬件触发源都不同,详细查表
②.外设数据产生有肯定的机遇,须要使用硬件触发特定的DMA通道
4.DMA能举行数据转运条件
二、DMA数据转运例子
1.软件例子
2.硬件例子
三、杂谈
1.盘算机的五大构成部分
2.STM32F1
存储
器映像
3.数据转运中的数据对齐标题
4.DMA和CPU同时访问雷同地点标题
5.软件触发和主动重装不能同时开启
6.软件触发和硬件触发
7.ADC1支持DMA数据转运,ADC2不支持DMA数据转运
一、简介
1.DMA可以直接访问STM32内部的
存储
器
如运行内存SRAM,
程序存储器Flash,(平常变量被const修饰就会存储在Flash中)
各种芯片外设的数据寄存器(如ADC数据寄存器,串口数据寄存器等)
由此实现外设寄存器和存储器、存储器和存储器之间的数据转运
即从某个地点取出数据,再存到另一个地点去,
假如数据宽度不一致则须要数据对齐
2.DMA每举行一种数据转运都须要占用一个自身的转运通道
STM32F1资源
DMA1: 7通道
全部通道分时复用DMA总线,须要仲裁器仲裁
3.每个通道都支持软件触发和特定的硬件触发
①.每个通道的硬件触发源都不同,详细查表
②.外设数据产生有肯定的机遇,须要使用硬件触发特定的DMA通道
软件触发例子:存储器到存储器(SRAM<——>Flash),一股脑以最快速率全部转运完成
硬件触发例子:外设到存储器(ADC数据转运),
期待ADC每个通道转换完成后硬件触发一次DMA才举行数据的转运
4.DMA能举行数据转运条件
1.DMA使能
2.传输计数器大于0
3.有触发信号
留意:对传输计数器写值必须先关闭DMA使能
二、DMA数据转运例子
1.软件例子
数组到数组的转运:一对一的转运
2.硬件例子
将外设ADC_DR寄存器中的数据转运到数组中
每个ADC通道收罗完成后触发DMA转运ADC_DR寄存器中的数据
通道2收罗完成
——>
存入ADC_DR
——>
硬件触发DMA将其运走至ADValue[0]
通道5收罗完成
——>
存入ADC_DR,覆盖前一个数据
——>
触发DMA将其运走至ADValue[1]
通道4收罗完成
——>
存入ADC_DR,覆盖前一个数据
——>
触发DMA将其运走至ADValue[2]
……
假如ADC为连续扫描模式,DMA计数器须要主动重装
三、杂谈
1.盘算机的五大构成部分
运算器
控制器
存储器
输入装备
输出装备
运算器 + 控制器 = CPU
2.STM32F1存储器映像
ROM:只读存储器,掉电不丢失
程序存储器Flash:存储C语言编译后的程序
代码
地点:0x0800 0000
体系存储器: 存储Bootloader 0x1FFF F000
选项字节: 存储一些独立于程序
代码
的参数设置 0x1FFF F800
RAM:随机存储器,掉电丢失
运行内存SRAM:存储运行过程中的暂时变量,各种变量、数组等 0x2000 0000
外设寄存器: 存储各个外设的设置参数 0x4000 0000
内核外设寄存器:存储内核外设各个外设的设置参数,NVIC等 0xE000 0000
STM中拥有对存储器访问权限的角色
内核Dcode:只访问Flash
内核体系总线:访问各类存储器,包罗DMA的寄存器
DMA总线:访问各类存储器
3.数据转运中的数据对齐标题
源端和目的端数据宽度一致,直接转运
源端
数据宽度
小于
目的端
数据宽度,目的端高位补0
源端
数据宽度
大于
目的端
数据宽度,源端高位数据舍去
4.DMA和CPU同时访问雷同地点标题
DMA会停息CPU的访问,但仲裁器仍包管CPU至少可以得到一半的总线带宽
( 倒反天罡 Σ(;゚д゚) )
5.软件触发和主动重装不能同时开启
6.软件触发和硬件触发
软件触发例子:存储器到存储器(SRAM<——>Flash),一股脑以最快速率全部转运完成
硬件触发例子:外设到存储器(ADC数据转运),
期待ADC每个通道转换完成后硬件触发一次DMA才举行数据的转运
7.ADC1支持DMA数据转运,ADC2不支持DMA数据转运
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
浏览过的版块
人工智能
数据仓库与分析
饭宝
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表