当前位置:网站首页 > 数据科学与大数据 > 正文

如何设置单片机读取片内程序存储器内的代码?(如何设置单片机读取片内程序存储器内的代码数据)



DMA,全称Direct Memory Access,即直接存储器访问

DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输

DMA 这个外设是可以直接访问 STM32 内部的存储器的,包括运行内存 SRAM、程序存储器 Flash 和寄存器等等

CPU有转移数据、计算、控制程序转移等很多功能,系统运作的核心就是CPU,CPU无时不刻的在处理着大量的事务,但有些事情却没有那么重要,比方说数据的复制和存储数据,如果我们把这部分的CPU资源拿出来,让CPU去处理其他的复杂计算事务,就能够更好的利用CPU的资源,因此:转移数据(尤其是转移大量数据)是可以不需要CPU参与,比如希望外设A的数据拷贝到外设B,只要给两种外设提供一条数据通路,直接让数据由A拷贝到B 不经过CPU的处理,DMA就是基于以上设想设计的,它的作用就是解决大量数据转移过度消耗CPU资源的问题。有了DMA使CPU更专注于更加实用的操作:计算、控制等

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



DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CPU寄存器参与的环节,主要涉及四种情况的数据传输,但本质上是一样的,都是从内存的某一区域传输到内存的另一区域(外设的数据寄存器本质上就是内存的一个存储单元)

四种情况的数据传输如下:

  • 外设到内存
  • 内存到外设
  • 内存到内存
  • 外设到外设(仅限于一些高级的DMA可以实现 ,传统DMA可以实现以上三种)

数据传输,首先需要的是 ①数据的源地址 ②数据传输位置的目标地址 ,③传递数据多少的数据传输量 ,④进行多少次传输的传输模式 DMA所需 要的核心参数,便是这四个



对于大容量的STM32芯片有2个DMA控制器 两个DMA控制器(一共有 12 个独立可配置的通道),DMA1有7个通道,DMA2有5个通道,每个通道都可以配置一些外设的地址

通道就是数据转运的路径,数据从一个地方移动到另一个地方,就需要占用一个通道,各个通道之间互不干扰,每个通道都支持软件触发和特定的硬件触发(每个DMA通道的硬件触发源是不一样的)(存储器到存储器之间的转运一般使用软件触发,外设到存储器的转运一般使用硬件触发 —— 因为外设的数据是有一定时机的)

STM32F103C8T6 DMA 资源:DMA1(7个通道)

DMA是在存储器之间进行数据转运的,我们就需要了解STM32中有哪些存储器,这些存储器又是被安排到了哪些地址上

STM32中所有类型的存储器及它们所被安排的地址:

在这里插入图片描述

存储器总共分为两大类,ROM 和 RAM,ROM是只读存储器、掉电不丢失,RAM是随机存储器、掉电丢失

在这里插入图片描述

【注意】自动重装和软件触发不能同时使用

DMA数据传输有 3 个条件:

  1. 传输计数器大于0
  2. 触发源有触发信号
  3. DMA使能

数据转运 + DMA

在这里插入图片描述

ADC扫描模式 + DMA

在这里插入图片描述

 
    

关于DMA库函数更详细的介绍可以参考文章:

在这里插入图片描述

MyDMA.c

 
    

MyDMA.h

 
    
 
    

在这里插入图片描述

AD.c

 
    

AD.h

 
    
 
    

专栏文章均参考 《》教程视频

到此这篇如何设置单片机读取片内程序存储器内的代码?(如何设置单片机读取片内程序存储器内的代码数据)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 自动驾驶图片数据标注规范要求(自动驾驶数据标注教学)2026-04-19 08:54:08
  • 大数据课程岗前培访(大数据岗前培训)2026-04-19 08:54:08
  • tcpdump查看pcap文件(tcpdump查看数据包)2026-04-19 08:54:08
  • 大数据培训班一般多少钱(大数据培训班一般多少钱一个月)2026-04-19 08:54:08
  • pointnet训练自己的数据(pointnet自己的数据集)2026-04-19 08:54:08
  • druid数据库连接池配置(druid数据库连接池配置详解)2026-04-19 08:54:08
  • 数据库基础知识面试(数据库基础知识面试真题)2026-04-19 08:54:08
  • 自动驾驶 数据处理(自动驾驶数据处理标注员是干嘛的)2026-04-19 08:54:08
  • 达梦数据库连接报系统错误(达梦数据库连接6001)2026-04-19 08:54:08
  • oracle 教程书籍推荐(oracle数据库教材推荐)2026-04-19 08:54:08
  • 全屏图片