DMA知识

提示:文章

文章目录

  • 前言
  • 一、背景
  • 二、
    • 2.1
    • 2.2
  • 总结

前言

前期疑问:
本文目标:


一、背景

2024年3月26日23:32:43
今天看了DMA存储器到存储器的DMA传输和存储器到外设的DMA实验,在keil仿真可以看到效果。还没有在protues和开发板上实验。先记录下来。

二、

2.1 存储器到存储器

存储器到存储器
代码提交记录:

SHA-1: bea0109310e47971a4869d13784445d9ee96f536
DMA实现存储器到存储器实验

//main.c文件
int main(void)
{	//RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);/* LED 端口初始化 */LED_GPIO_Config();	 //按键初始化函数	gpio_init();//EXTI按键初始化函数bsp_exti_key_gpio_init();bsp_exti_key_nvic_init();bsp_exti_key_exti_init();//RCC初始化RCC_Init();			//USART初始化InitGPIO();InitUsart();		//包含了NVIC中断初始化//USART_Config();//DMA配置,存储器到存储器DMA_Config();char array[15] = "hello world\r\n";while (1){//key_process();	rcc_led_loop();//		for(int i = 0; i < 15; i++)
//		{
//			sendData(array[i]);
//		}
//		//Delay(1000000);printf("hello world\r\n");if(getBufferCmpResult()){printf("result is same!\r\n");}}
}
//打印信息
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();

2.2 存储器到外设

代码提交:

SHA-1: 8632c414141f7dae6c10e9617b1576f59a09d62e
DMA实现存储器到外设数据发送

//main文件
/*** @brief  主函数* @param  无  * @retval 无*/
int main(void)
{	//RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);/* LED 端口初始化 */LED_GPIO_Config();	 //按键初始化函数	gpio_init();//EXTI按键初始化函数bsp_exti_key_gpio_init();bsp_exti_key_nvic_init();bsp_exti_key_exti_init();//RCC初始化RCC_Init();			//USART初始化InitGPIO();InitUsart();		//包含了NVIC中断初始化//USART_Config();//DMA配置,存储器到存储器DMA_Config();/* 配置使用DMA模式 */USARTx_DMA_Config();printf("\r\n USART1 DMA TX 测试 \r\n");int i = 0;/*填充将要发送的数据*/for (i=0; i<SENDBUFF_SIZE; i++){SendBuff[i]  = 'P';}/*为演示DMA持续运行而CPU还能处理其它事情,持续使用DMA发送数据,量非常大,*长时间运行可能会导致电脑端串口调试助手会卡死,鼠标乱飞的情况,*或把DMA配置中的循环模式改为单次模式*//* USART1 向 DMA发出TX请求 */USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);char array[15] = "hello world\r\n";while (1){//key_process();	rcc_led_loop();//		for(int i = 0; i < 15; i++)
//		{
//			sendData(array[i]);
//		}
//		//Delay(1000000);printf("hello world\r\n");if(getBufferCmpResult()){printf("result is same!\r\n");}}
}

keil仿真实验效果
在这里插入图片描述

三、

3.1


总结

未完待续

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

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

相关文章

Linux(CentOS)/Windows-C++ 云备份项目(服务器数据管理模块设计)

数据管理模块功能&#xff1a; 后续项目需要使用的数据如下 文件实际存储路径&#xff1a;当客户端需要下载文件时&#xff0c;从这个文件中进行读取响应文件压缩包存放路径名&#xff1a;如果文件是非热点文件会被压缩 如果客户端需要下载这些文件&#xff0c;需要先进行解压…

使用Flask实现:基于midjourney-proxy的MJ绘画实现(开源)

文章目录 实现效果实现步骤完整源码 实现效果 运行mj.py&#xff0c;如下所示。输入中文&#xff0c;自动生成提示词&#xff0c;自动开始下载。用户选择是否需要变换图片&#xff0c;选择需要对哪个图片变换&#xff0c;自动保存。 之前想做一个网页版&#xff0c;只实现了…

一些常见的ClickHouse问题和答案

什么是ClickHouse&#xff1f;它与其他数据库系统有什么区别&#xff1f; ClickHouse是一个开源的列式数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;专门用于高性能、大规模数据分析。与传统的行式数据库相比&#xff0c;ClickHouse具有更高的查询性能、更高的数据…

新书速览|Django 5企业级Web应用开发实战:视频教学版

掌握Django框架开发技能&#xff0c;实战投票应用系统和内容管理系统 本书内容 《Django 5企业级Web应用开发实战&#xff1a;视频教学版》精选当前简单、实用和流行的Django实例代码&#xff0c;帮助读者学习和掌握Django 5框架及其相关技术栈的开发知识。本书系统全面、内容…

【STM32学习计划】

项目名称&#xff1a;STM32学习计划 项目目标&#xff1a; 熟悉STM32单片机的基本概念和应用掌握STM32的软硬件开发流程完成一个基于STM32的简单项目 项目任务和交付物&#xff1a; 任务 1&#xff1a;熟悉STM32单片机基本概念 学习STM32单片机的基本架构和功能特性交付物…

mysql如何存Emoji表情

如何存Emoji表情 背景解决方案一&#xff1a; 如果是自己搭建的数据库&#xff0c;参考如下。 1&#xff1a;先创建数据库&#xff0c;utf8编码2&#xff1a; 修改mysql 的配置文件 /etc/my.cnf 文件3&#xff1a;然后把你的表和字段也要支持utf8md4编码4&#xff1a;修改你连…

javaWeb教务查询系统

一、简介 在教育管理领域&#xff0c;教务管理系统是一个至关重要的工具&#xff0c;它能够有效地协调学校、教师和学生之间的各种活动。我设计了一个基于JavaWeb的教务管理系统&#xff0c;该系统包括三个角色&#xff1a;管理员、教师和学生。管理员拥有课程管理、学生管理、…

Spark重温笔记(五):SparkSQL进阶操作——迭代计算,开窗函数,结合多种数据源,UDF自定义函数

Spark学习笔记 前言&#xff1a;今天是温习 Spark 的第 5 天啦&#xff01;主要梳理了 SparkSQL 的进阶操作&#xff0c;包括spark结合hive做离线数仓&#xff0c;以及结合mysql&#xff0c;dataframe&#xff0c;以及最为核心的迭代计算逻辑-udf函数等&#xff0c;以及演示了几…

JWT(JSON Web Token)

JSON Web Token 是一种开放标准&#xff0c;用于在网络上安全传输信息的简洁、自包含的方式。它通常被用于身份验证和授权机制。 JWT 由三部分组成&#xff1a;头部&#xff08;Header&#xff09;、载荷&#xff08;Payload&#xff09;和签名&#xff08;Signature&#xff…

微软开源项目Garnet:Redis的竞争者还是替代者?

对于开源社区&#xff0c;最近的一大新闻就是Redis宣布从7.4版本开始&#xff0c;将采用Redis源代码可用许可证&#xff08;RSALv2&#xff09;和服务器端公共许可证&#xff08;SSPLv1&#xff09;的双重许可证&#xff0c;取代原有的BSD三条款许可证。这一变化引发了开发者社…

阿里云子域名配置,且不带端口访问

进入阿里云控制台&#xff0c;创建一个SSL证书 # 域名名称child.domain.com创建完成后&#xff0c;将返回主机记录以及记录值&#xff0c;保存好&#xff0c;用于下一步使用 创建DNS解析 创建DNS的TXT类型解析 选择记录类型&#xff1a;TXT 填写主机记录&#xff1a;_dnsa…

一些常见的与 Vim 相关的文件类型及其描述

配置文件&#xff1a; .vimrc (Unix/Linux) 或 _vimrc (Windows)&#xff1a;这是 Vim 的主要配置文件&#xff0c;用户可以在其中设置各种选项、快捷键映射、插件加载等。Vim 在启动时会自动读取这个文件&#xff0c;并根据其中的设置来配置编辑器。init.vim&#xff1a;对于 …

【CSP试题回顾】202104-2-邻域均值(优化)

CSP-202104-2-邻域均值 关键点&#xff1a;二维前缀和数组 详见&#xff1a; 【CSP考题扩展】前缀和/差分练习【CSP考点回顾】二维前缀和数组&#xff08;代码实现&#xff09; 解题思路 1.输入和初始化 首先&#xff0c;程序从输入中获取四个整数n&#xff08;矩阵的大小…

排序(冒泡/快速/归并)

冒泡排序 时间复杂度为 O(n^2) 原理 比较相邻的元素. 如果第一个比第二个大,就交换他们两个.依次比较每一对相邻的元素—>结果 : 最后的元素是这组数中最大的重复上述步骤 , 除了最后一个[]因为最后一个已经是排好序的了(这组数中最大的那个)]持续对越来越少的元素进行如上…

系列学习前端之第 7 章:一文掌握 AJAX

1、AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff08;中文名&#xff1a;阿贾克斯&#xff09;&#xff0c;就是异步的 JS 和 XML。AJAX 不是新的编程语言&#xff0c;而是一种将现有的标准组合在一起使用的新方式。AJAX 可以在浏览器中向服务器发送异步请求…

docker拉取镜像

docker 拉取镜像 命令格式 docker pull 仓库名称[:标签] 从下载过程可以看出&#xff1a; &#xff08;1&#xff09;镜像文件是由若干层组成&#xff0c;即&#xff1a;AUFS联合文件系统。这是实现增量保存与更新的基础 &#xff08;2&#xff09;下载过程会输出各层镜像的信…

面试题-Elasticsearch集群架构和调优手段(超全面)

对于Elasticsearch&#xff08;ES&#xff09;&#xff0c;我了解并有经验。在我之前的公司&#xff0c;我们有一个相对大型的ES集群&#xff0c;以下是该集群的架构和一些调优手段的概述&#xff1a; 1. 集群架构 集群规模&#xff1a;我们的ES集群由15个节点组成&#xff0c…

水果店如何开发自己的微信小程序_新鲜生活,触手可及

水果店微信小程序&#xff1a;新鲜生活&#xff0c;触手可及 在这个快节奏的时代&#xff0c;我们都在追求更高效、更便捷的生活方式。而微信小程序&#xff0c;正是这样一个让生活变得更加轻松便捷的神奇工具。今天&#xff0c;我要向大家介绍的&#xff0c;就是一家独具匠心…

独享IP可以避免被封禁或限制访问的风险

在一些网站或服务中&#xff0c;存在对共享IP的封禁或限制访问的情况&#xff0c;这给用户带来了不便。而使用独享IP可以有效规避这一问题&#xff0c;保障用户正常访问需求。例如&#xff0c;在进行搜索引擎优化、社交媒体营销或广告投放时&#xff0c;独享IP可以确保用户的网…

window下迁移SVN仓库到新的windows服务器

一、背景 一个基于 Windows 的 SVN 服务器&#xff0c;用于管理团队的代码库。该 SVN 仓库托管着公司的软件项目&#xff0c;包括多个分支和版本的代码。我们的团队规模约为 50 人&#xff0c;分布在不同的地理位置&#xff0c;他们都依赖 SVN 仓库来进行代码版本控制和协作开…