8 DWA(一)

2023-05-16

8 DWA

DMA简介

DMA(Direct Memory Access)直接存储器存取(可以直接访问32内部存储器,包括内存SRAM,Flash)
DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源
存储器和存储器(软件触发);外设和存储器(硬件触发)
12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)
每个通道都支持软件触发和特定的硬件触发

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

8.1 DWA直接存储读取

存储器映像

类型起始地址存储器用途
ROM(只读)0x0800 0000程序存储器Flash存储C语言编译后的程序代码
0x1FFF F000系统存储器存储BootLoader,用于串口下载
0x1FFF F800选项字节存储一些独立于程序代码的配置参数
RAM(随机存储器)0x2000 0000运行内存SRAM存储运行过程中的临时变量
0x4000 0000外设寄存器存储各个外设的配置参数
0xE000 0000内核外设寄存器存储内核各个外设的配置参数(NVIC和SysTick)

DMA框图

在这里插入图片描述

DMA基本结构

在这里插入图片描述

DMA进行转运的条件:

第一,就是开关控制,DMA_Cmd必须使能;
第二,传输计数器必须大于0;
第三,触发源必须由触发信号;

DMA请求

在这里插入图片描述

数据宽度与对齐

在这里插入图片描述

数据转运+DMA

将DataA转到DataB,外设地址给DataA数组地址,有储器地址给Data B的首地址,宽度按8位字节传输,两地址都自增,传输计数器给7,无需自动重装,用软件触发,调用DMA_ Cmd( )

在这里插入图片描述

ADC扫描模式+DMA

DMA最常见的用途就是配合ADC的扫描模式

外设地址给ADC_DR地址,有储器地址在SRAM中定一个数组ADValue,以16位半字转输

在这里插入图片描述

函数解释:

void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx);		//恢复缺省配置
void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); //初始化
void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct);		//结构体初始化

void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);		//DMA通道使能
void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);	//中断输出使能
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber); //设置当前传输数据寄存器
uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);	//获取当前传输数据寄存器

FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG);	//获取标志位状态
void DMA_ClearFlag(uint32_t DMAy_FLAG);			   //清除标志位
ITStatus DMA_GetITStatus(uint32_t DMAy_IT);		   //获取中断状态
void DMA_ClearITPendingBit(uint32_t DMAy_IT);	   //清除中断挂起位
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8 DWA(一) 的相关文章

  • TI Cotex M3/4单片机关于寄存器操作详解

    TI Cotex M3 4单片机关于寄存器操作详解 前备知识寄存器与偏移量位带操作 位带区 TI单片机寄存器操作详解快速在TI的手册里面确认某外设某寄存器的确切地址寄存器操作介绍本文参考 前备知识 当前单片机的开发方式多种多样 xff0c
  • Cannot currently show the desktop

    问题解决办法篇 用VNC打开树莓派桌面时 xff0c 显示 Cannot currently show the desktop 意为当前无法显示桌面 xff0c 其实调整一下分辨率重新打开桌面就好了 法一 xff1a 有显示屏 将树莓派与显
  • 相机标定 >> 坐标系转换@内参、外参

    相机标定 gt gt 坐标系转换 64 内参 外参 1 坐标系介绍1 1 像素坐标系1 2 图像坐标系1 3 相机坐标系1 4 世界坐标系 2 相机标定2 1 内参2 1 1 内参的意义 xff08 透视映射 xff09 2 1 2 内参的
  • 2022年最新前端面试题

    js面试题 1 js数据类型 基本数据类型 Number String Boolean Null Undefined Symbol bigInt引用数据类型 object Array Date Function RegExp 2 js变量和
  • ruoyi(若依)框架使用说明(前后端分离)

    ruoyi 28 E8 8B A5 E4 BE 9D 29 E6 A1 86 E6 9E B6 E4 BD BF E7 94 A8 E8 AF B4 E6 98 8E 28 E5 89 8D E5 90 8E E7 AB AF E5 88
  • 1130 - Host XXX is not allowed to connect to this MySQL server。

    1 在用Navicat配置远程连接Mysql数据库时遇到如下报错信息 xff0c 这是由于Mysql配置了不支持远程连接引起的 2 在安装Mysql数据库的主机上登录root用户 xff1a mysql u root p 3 依次执行如下命
  • 阿里云Ubentu rsync同步文件到多台服务器

    cd usr local wget https rsync samba org ftp rsync src rsync 3 1 1 tar gz tar zxvf rsync 3 1 1 tar gz cd rsync 3 1 1 conf
  • java获取字符串最后一个字符

    第一种 String str 61 34 daipogfhjoripa1 34 char c 61 str charAt str length 1 第二种 str substring str length 1
  • 解决idea中maven依赖unknown的问题

    解决idea中maven依赖unknown的问题 1 出现问题原因 xff1a 最简单的原因是 xff0c 包名之间的横线 中英文切换问题 xff0c 改正就好 xff0c 或者忘记写版本号 从其他地方copy过来的 xff0c 仓库下载失
  • mySql中count带条件查询

    方法一 xff1a SELECT count t command name 61 39 UNLOCK 39 OR NULL unlockFrequency FROM 表 t 方法二 xff1a select count t command
  • tomcat下载安装步骤(超详细)

    下载安装 首先进入tomcat官网 https tomcat apache org 在圈住的位置点击下载自己想要的版本 我选择tomcat9 根据自己电脑下载64位或32位zip版本 下载完毕后解压到自己想放的位置 配置环境变量 在系统变量
  • 关于springboot访问tomcat,线程http-nio-8080-exec的来源问题

    最近在看并发操作时候 xff0c 例如jmeter进行接口压测 xff08 本地自己的springboot2的环境 xff09 xff0c 发现一个有趣的现象 xff0c 就是关于线程http nio 8080 exec 1 xff0c h
  • Docker容器的创建、启动、和停止及删除

    前言 xff1a 名词解释 这里有两个不同的单词 xff0c images和container 其中images很好理解 xff0c 跟平常使用的虚拟机的镜像一个意思 xff0c 相当于一个模版 xff0c 而container则是imag
  • Redis修改密码

    Redis修改密码 一开始自己使用redis一直没有使用密码 xff0c 后来在项目中要求配置密码 xff0c 每次都是在命令中修改 xff0c 单重启后悔失效 后来通过配置文件 xff0c 但重启后总是不生效 xff0c 试了好几种方法都

随机推荐

  • @ApiModel 和 @ApiModelProperty

    64 ApiModel 使用场景 xff1a 在实体类上边使用 xff0c 标记类时swagger的解析类 1 什么是Swagger OpenAPI规范 xff08 OpenAPI Specification 简称OAS xff09 是Li
  • MySQL_基本的SELECT语句

    目录 SQL概念 xff1a SQL分类 xff1a SQL语言的规则与规范 xff1a SELECT的基本语句 我是ZGB xff0c Java领域新星创作者 xff0c 阿里云专家博主 xff0c 华为云 云享专家博主 xff0c 热衷
  • springcloud之gateway服务网关

    目录 微服务中网关的作用 gateway 与 zuul springcloud gateway 简介 相关概念 工作流程 特征 快速上手 Maven 依赖 application properties 配置文件 启动类 eureka cli
  • 4438无线网络组网代码解析

    device bind process 是怎么实现绑定的 xff1f enum NOSTATE UBIND 等待接收 握手一次1 WAIT FOR TOUCH WAIT FOR CONFIRM 点击按键后 回复一次2 BIND SUCCES
  • python—函数

    函数 定义和注意事项 将可能需要反复执行的代码封装为函数 xff0c 并在需要该功能的地方进行调用 xff0c 不仅可以实现代码复用 xff0c 更重要的是可以保证代码的一致性 xff0c 只需要修改该函数代码则所有调用均受到影响 设计函数
  • ROS安装gazebo教程及报错解决,并基于gazebo仿真环境实现机器人在复杂路径下自动导航(更新中)

    安装教程 xff1a 教程 70分钟入门gazebo 报错一 xff1a E Could not get lock var lib dpkg lock frontend open 11 Resource temporarily unavai
  • UCOSIII-消息队列

    目录 1 简介 1 1消息队列 xff08 异步通信方式 xff09 1 2消息池 2 结构体 2 1消息元素os msg 2 2消息池元素osmsgpool 全局变量 2 3消息队列结构体OS Q 2 4消息列表结构体OS MSG Q 3
  • 利用Nodemcu+Arduino nano+TB6612+点灯科技APP制作简易麦克纳姆轮Wi-Fi遥控小车

    摘要 麦克纳姆轮小车由于车轮本身的特殊结构 xff0c 可以实现全向行驶 xff0c 可玩性非常强 麦克纳姆轮原理在这里不做展开 xff0c 麦克纳姆小车主要是通过控制四个轮胎的转与不转以及转动的方向来实现多方向的运动 xff0c 其中一种
  • Collecting package metadata (current_repodata.json): fail亲测成功

    在Ubantu中创建anaconda虚拟环境时报错 xff1a Collecting package metadata current repodata json failed ProxyError Conda cannot proceed
  • Vue----模板渲染语法中使用JavaScript表达式

    文章目录 3 5 模板渲染语法中使用JavaScript表达式 3 5 模板渲染语法中使用JavaScript表达式 在vue提供的模板渲染语法中 xff0c 除了支持绑定简单的数据值外 xff0c 还支持JavaScript表达式运算 用
  • 树莓派下载Ubuntu20.04.3版本 +通过设置找到wifi标志+开启vnc远程桌面+灰屏解决方法

    貌似从19版本开始就下完之后右上角没有出现wifi标志 xff0c 在csdn上也十分难找到方法 xff0c 对于网线直连的 csdn上是有十分多的方法的 xff0c 大家可以去找找看 但是对于一开始就连wifi的方法似乎特别少 xff0c
  • 字符数组和字符串数组中的‘\0‘尾零存在的问题

    一 在字符和字符串中是否必须存在 答 xff1a 在字符数组中非必要存在 xff0c 但是在字符串数组中定义的时候必须存在 字符数组 1 并不要求它的最后一个字符为 39 0 39 xff0c 甚至可以不包括 39 0 39 xff0c 像
  • FreeRTOS学习笔记一

    FreeRTOS 任务不允许以任何方式从实现函数中返回 它们绝不能有一条 return 语句 void ATaskFunction void pvParameters int iVariableExample 61 0 for 传入NULL
  • css实现loading效果

    主要利用css3特性 xff0c 以及伪元素的使用实现此功能 lt html lang 61 34 en 34 gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta http equ
  • ros学习记录:Gazebo加载速度慢,长时间停在“Preparing your world”

    前言 ros学习记录笔记 xff0c 一个小白的自留地 xff0c 欢迎大佬批评指正 一 问题描述 Gazebo加载速度慢 xff0c 长时间停在 Preparing your world 二 解决办法 1 下载模型到根文件下的 gazeb
  • ROS坐标系统,常见的坐标系和其含义

    摘自 xff1a ros基础必看之各个frame的理解 黑猫爱小鹿的博客 CSDN博客 文章目录 常见的坐标系坐标系的约定坐标系变换的计算Map之间的切换添加 ros中常见的坐标系 转载链接 1 1 现在小车进行移动 1 2 如图 1 2
  • 运行roscore报错解决(重装ROS)

    前言 一个小白的自留地 xff0c 欢迎大佬批评指正 运行roscore出现如下错误 WARNING unable to configure logging No log files will be generated Checking l
  • keil5出现‘Target not created‘

    keil5出现 Target not created 新建工程中写了main函数进行编译时出现错误的问题 xff1a Using Compiler 39 V5 06 update 5 build 528 39 folder 39 D Kei
  • 2 常见模块库(2)

    2 5 复用器与分路器模块 Mux是一种用于将多个信号组合成一个信号的模块 Mux模块的名称来源于多路复用器 xff08 Multiplexer xff09 使用Mux可以将多个输入信号组合成一个向量或矩阵 xff0c 以便在模型中传递和处
  • 8 DWA(一)

    8 DWA DMA简介 DMA xff08 Direct Memory Access xff09 直接存储器存取 xff08 可以直接访问32内部存储器 xff0c 包括内存SRAM xff0c Flash xff09 DMA可以提供外设和