STM32 DMA配置库函数

news2024/9/21 16:24:19

单片机学习!


目录

1. DMA_DeInit

2. DMA_Init

3. DMA_StructInit

4. DMA_Cmd

5. DMA_ITConfig

6. DMA_SetCurrDataCounter

7. DMA_GetCurrDataCounter

8. 获取/清除函数

8.1 DMA_GetFlagStatus

8.2 DMA_ClearFlag

8.3 DMA_GetITStatus

8.4 DMA_ClearITPendingBit


1. DMA_DeInit

        DMA_DeInit 函数用于恢复缺省配置。

2. DMA_Init

        DMA_Init 函数用于初始化。

DMA_PeripheralBaseAddr 参数用以定义 DMA 外设基地址。

DMA_MemoryBaseAddr 参数用以定义 DMA 内存基地址。

DMA_DIR 规定了外设是作为数据传输的目的地还是来源。

DMA_BufferSize 用以定义指定 DMA 通道的 DMA 缓存的大小,单位为数据单位。根据传输方向,数据单位等于结构中参数 DMA_PeripheralDataSize 或者参数 DMA_MemoryDataSize 的值。

DMA_PeripheralInc 用来设定外设地址寄存器递增与否。

DMA_MemoryInc 用来设定内存地址寄存器递增与否。

DMA_PeripheralDataSize 设定了外设数据宽度。

DMA_MemoryDataSize 设定了外设数据宽度。

​​​​​​​

DMA_Mode 设置了 DMA 的工作模式

DMA_Priority ​​​​​​​设定 DMA 通道 x 的软件优先级。

DMA_M2M ​​​​​​​使能 DMA 通道的内存到内存传输。

3. DMA_StructInit

        DMA_StructInit 函数用于结构体初始化。

        结构 DMA_InitStruct 的各个成员有如下的缺省值:

4. DMA_Cmd

        DMA_Cmd 函数用于DMA使能。

5. DMA_ITConfig

        DMA_ITConfig 函数用于中断输出使能。

DMA_IT  输入参数 DMA_IT 使能或者失能 DMA 通道 x 的中断。

6. DMA_SetCurrDataCounter

        DMA_SetCurrDataCounter 这个函数是DMA设置当前数据寄存器函数,是给传输计数器写数据的。

函数源码:

/**
  * @brief  Sets the number of data units in the current DMAy Channelx transfer.
  * @param  DMAy_Channelx: where y can be 1 or 2 to select the DMA and 
  *         x can be 1 to 7 for DMA1 and 1 to 5 for DMA2 to select the DMA Channel.
  * @param  DataNumber: The number of data units in the current DMAy Channelx
  *         transfer.   
  * @note   This function can only be used when the DMAy_Channelx is disabled.                 
  * @retval None.
  */
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber)
{
  /* Check the parameters */
  assert_param(IS_DMA_ALL_PERIPH(DMAy_Channelx));
  
/*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/
  /* Write to DMAy Channelx CNDTR */
  DMAy_Channelx->CNDTR = DataNumber;  
}

7. DMA_GetCurrDataCounter

        DMA_GetCurrDataCounter 函数是DMA获取当前数据寄存器函数,是返回传输计数器的值的。如果想看看还剩多少数据没有转运,就可以调用这个函数,来获取一下传输计数器就行了。

8. 获取/清除函数

8.1 DMA_GetFlagStatus

        DMA_GetFlagStatus 函数用于获取标志位状态。

DMA_FLAG 参数 DMA_FLAG 定义了待检察的标志位类型。

8.2 DMA_ClearFlag

        DMA_ClearFlag 函数用于清除标志位。

8.3 DMA_GetITStatus

        DMA_GetITStatus 函数用于获取中断状态。

DMA_IT 参数 DMA_IT 定义了待检察的 DMA 中断。

​​​​​​​

8.4 DMA_ClearITPendingBit

        DMA_ClearITPendingBit 函数用于清除中断挂起位。

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

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

相关文章

【调试笔记-20240526-Linux-在 OpenWrt-23.05 发行版上安装 cloudreve】

调试笔记-系列文章目录 调试笔记-20240526-Linux-在 OpenWrt-23.05 发行版上安装 cloudreve 文章目录 调试笔记-系列文章目录调试笔记-20240526-Linux-在 OpenWrt-23.05 发行版上安装 cloudreve 前言一、调试环境操作系统:Windows 10 专业版调试环境调试目标 二、调…

Adobe Animate AN v24.0.2 安装教程 (动画特效设计及合成工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 安装教程 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 安装教程 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 安装教程 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 安装…

安卓手机听书的各种免费方案

categories: Tips tags: Tips 写在前面 最近 Tencent 突然给微信读书上限制了, 普通用户一个月内仅能导入 3 本书, 这就让经常在 weread 上面听书入眠的我很无奈了. 折腾一下备选方案吧, 肯定是免费优先咯. 下面主要从支持 tts 的阅读器/ tts 免费中文引擎两个角度来讲. r…

Linux服务升级:Predixy 升级代理 Redis-cluster 集群

目录 一、实验 1.环境 2. 启动Redis服务 3.Predixy 升级代理 Redis-cluster 集群 二、问题 1. Predixy进行set操作报错 2.如何创建脚本启动predixy 3.Redis代理对比 一、实验 1.环境 (1)主机 表1 主机 系统版本节点软件IP备注CentOS7.9Redis…

沁恒CH32V307开发板移植lvgl V9版本图形库

我们在移植lvgl9版本之前也是去网上进行了大量资料的查找,发现关于lvgl的移植大多停留在8版本的基础上,所以我们绝对自己干,并把移植过程中遇到的问题总结出来,这里主要为大家总结一下移植中一些容易踩的坑,以及8版本和…

新建一个STM32的工程

一、SMT32开发方式 1、基于寄存器的方式:和51单片机开发方式一样,是用程序直接配置寄存器,来达到我们想要的功能,这种方式最底层、最直接、效率会更高一些,但是STM32的结构复杂、寄存器太多,所以不推荐基于…

深入理解 Spring 上下文(Context)层次结构

前言 在使用 Spring 框架进行应用程序开发时,Spring 上下文(Context)是一个非常重要的概念。Spring 上下文提供了一个环境,用于管理应用程序中的对象(通常称为 Bean)及其之间的依赖关系。在复杂的应用程序…

Nginx代理配置(专业版)

写在前面提醒:使用代理,如果可以,请尽量支持双协议,http、https均要支持哈。 注意:监控系统只是运行代码,是否支持https,需要运维同学在你们的服务器上配置https证书,配置好证书&…

【最新区块链论文录用资讯】CCF A — SP 2024 共17篇

Conference:45th IEEE Symposium onSecurity and Privacy CCF level:CCF A Categories:网络与信息安全 Year:2024 Num:17 Efficient Zero-Knowledge Arguments For Paillier Cryptosystem Paillier 加密系统的有效…

VUE3视频播放器 videojs-player/vue

简介 官网: https://gitcode.com/surmon-china/videojs-player/overviewhttps://github.com/surmon-china/videojs-player?tabreadme-ov-file video-player是一个基于video.js的视频播放器组件,它提供了丰富的功能,包括视频播放、暂停、快…

Vue学习笔记3——事件处理

事件处理 1、事件处理器(1)内联事件处理器(2)方法事件处理器 2、事件参数3、事件修饰符 1、事件处理器 我们可以使用v-on 指令(简写为)来监听DOM事件,并在事件触发时执行对应的JavaScript。 用法: v-on:click"me…

mysql之递归sql

mysql之递归sql 递归sql在一些公司是不允许使用的,会涉及数据库压力,所以会在代码里递归查询,但有些公司开发流程没有规定,且数据库数据量不大,之前写过好几遍了,老是记不住,记录一下 通过父级…

区块链会议投稿资讯CCF A--USENIX Security 2025 截止9.4、1.22 附录用率

会议名称:34th USENIX Security Symposium CCF等级:CCF A类学术会议 类别:网络与信息安全 录用率:2023年接收率29%,2024录用的区块链相关文章请查看 Symposium Topics System security Operating systems security …

【Spring Boot】响应式编程

响应式编程 1.WebFlux2.比较 MVC 和 WebFlux2.1 工作方式2.2 Spring MVC 与 Spring WebFlux 的区别2.3 使用 WebFlux 的好处 3.Mono 和 Flux3.1 Mono 和 Flux 是什么3.2 Mono 和 Flux 的区别 4.开发 WebFlux 的流程4.1 注解式开发流程4.2 响应式开发流程 5.用注解式开发实现 He…

抖音小店怎么对接达人合作?五种方法分享,合作成功率超级高!

大家好,我是电商糖果 有很多刚开店的小店商家,经常会出现一个问题。 那就是不会找达人合作,有的朋友说是因为他社恐,还有的说达人不好沟通等等。 理由有很多,总结下来就是找达人合作这事儿太难了,干不了…

公安知识学习与题目练习系统

一、系统概述 系统采用C用户小程序端、管理员Web端架构。通过UniappVueSpringboot主流技术实现。具体功能分为,管理侧:可以维护学习知识点、更新知识点详情;C端用户:可以学习知识点、在线刷题练习的功能。次系统在公安专业知识学习…

【全网最全】2024电工杯数学建模A题54页A题保奖成品论文+配套代码

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片链接,那是获取资料的入口! 【全网最全】2024电工杯数学建模A题成品论文前三题完整解答matlabpy代码等(后续会更新成品论文)「首先来看看目前已有的资料&am…

【电路笔记】-巴特沃斯滤波器设计

巴特沃斯滤波器设计 文章目录 巴特沃斯滤波器设计1、概述2、Decades和Octaves3、低通巴特沃斯滤波器设计4、滤波器设计 – 巴特沃斯低通5、三阶巴特沃斯低通滤波器在之前的滤波器教程中,我们研究了简单的一阶型低通和高通滤波器,这些滤波器的 RC 滤波器电路设计中仅包含一个电…

前缀和算法:提升编程效率的秘密武器(Java版)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…

2024攻防演练利器之必修高危漏洞合集

随着网络安全的发展和攻防演练工作的推进,红蓝双方的技术水平皆在实践中得到了很大的提升,但是数字化快速发展也导致了企业的影子资产增多,企业很多老旧系统依旧存在历史漏洞,与此同时,在攻防演练期间,往往…